Ignore:
Timestamp:
07/16/08 17:19:25 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneEntity.cpp

    r2841 r2842  
    99 
    1010 
     11using namespace std; 
     12 
     13 
    1114namespace CHCDemoEngine  
    1215{ 
     16 
    1317 
    1418SceneEntity::SceneEntity(Transform3 *trafo): mTransform(trafo) 
     
    2630        ShapeContainer::const_iterator sit, sit_end; 
    2731 
    28         if (mLODInfos->empty()) 
     32        if (mLODInfos.empty()) 
    2933        { 
    3034                sit = mShapes.begin(); sit_end = mShapes.end(); 
     
    3539        int i = 0; 
    3640 
    37         LODInfo *info; 
    38  
    3941        LODInfoContainer::const_iterator lid, lid_end = mLODInfos.end(); 
    4042 
    4143        for (lid = mLODInfos.begin(); lid != lid_end; ++ lid) 
    4244        { 
    43                 info = *lid; 
     45                LODInfo *lodInfo = *lid; 
    4446 
    45                 if (info->mDistance > mDistance) 
     47                if (lodInfo->mSquaredDistance > mDistance) 
    4648                { 
    47                         sit = info->mShapes.begin();  
    48                         sit_end = info->mShapes.end(); 
     49                        sit = lodInfo->mShapes.begin();  
     50                        sit_end = lodInfo->mShapes.end(); 
    4951                        break; 
    5052                } 
     
    7072        ShapeContainer::const_iterator sit, sit_end = shapes.end(); 
    7173 
    72         for (; sit != sit_end; ++ sit) 
     74        for (sit = shapes.begin(); sit != sit_end; ++ sit) 
    7375        { 
    7476                (*sit)->Render(state); 
     
    101103 
    102104 
    103 AxisAlignedBox3 SceneEntity::GetBoundingBox() const 
     105int SceneEntity::CountNumTriangles() 
    104106{ 
    105 #ifdef TODO 
    106         AxisAlignedBox3 box = mGeometry->GetBoundingBox(); 
    107         if (mTransform) Transform(box, *mTransform); 
    108 #else 
    109         AxisAlignedBox3 box; 
    110 #endif 
    111          
     107        int numTriangles = 0; 
     108        static ShapeContainer shapes; 
     109        shapes.clear(); 
    112110 
    113         return box; 
     111        GetCurrentLODLevel(shapes); 
     112 
     113        ShapeContainer::const_iterator sit, sit_end = shapes.end(); 
     114 
     115        for (sit = shapes.begin(); sit != sit_end; ++ sit) 
     116        { 
     117                numTriangles += (*sit)->GetGeometry()->GetNumTriangles(); 
     118        } 
     119 
     120        return numTriangles; 
    114121} 
    115122 
Note: See TracChangeset for help on using the changeset viewer.