Ignore:
Timestamp:
07/21/08 03:12:51 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r2847 r2848  
    4545                LODLevel *lod = mLODLevels[i]; 
    4646 
    47                 if (lod->mSquaredDistance > distance) 
     47                if (lod->GetSquaredDistance() > distance) 
    4848                        break; 
    4949 
    5050                mCurrentLODLevel = i; 
    5151        } 
     52} 
    5253 
    53         /*if (mLODLevels.size() > 1) 
     54 
     55int SceneEntity::GetCurrentLODLevel() 
     56{ 
     57        if (mLODLastUpdated != LODLevel::sFrameId) 
    5458        { 
    55                 Debug << "dist: " << distance << " numshapes: " << mLODLevels[mCurrentLODLevel]->mShapes.size() << " lod: " << mCurrentLODLevel << " of " << mLODLevels.size() << endl; 
    56         }*/ 
     59                mLODLastUpdated = LODLevel::sFrameId; 
     60                UpdateLODs(LODLevel::sViewPoint); 
     61        } 
     62 
     63        return mCurrentLODLevel; 
    5764} 
     65 
    5866 
    5967void SceneEntity::GetCurrentLODLevel(ShapeContainer::iterator &start,  
     
    6674        } 
    6775 
    68         start = mLODLevels[mCurrentLODLevel]->mShapes.begin();  
    69         end = mLODLevels[mCurrentLODLevel]->mShapes.end(); 
     76        start = mLODLevels[mCurrentLODLevel]->GetShapes().begin();  
     77        end   = mLODLevels[mCurrentLODLevel]->GetShapes().end(); 
    7078} 
    7179 
     
    7785        LODLevel *lod = mLODLevels[level]; 
    7886 
    79         start = lod->mShapes.begin(); 
    80         end = lod->mShapes.end(); 
     87        start = lod->GetShapes().begin(); 
     88        end = lod->GetShapes().end(); 
    8189} 
    8290 
     
    130138        if (lodLevel == -1) 
    131139        { 
    132                 GetCurrentLODLevel(sit, sit_end); 
    133         } 
    134         else 
    135         { 
    136                 GetLODLevel(lodLevel, sit, sit_end); 
     140                lodLevel = GetCurrentLODLevel(); 
    137141        } 
    138142 
    139  
    140         for (; sit != sit_end; ++ sit) 
    141         { 
    142                 numTriangles += (*sit)->GetGeometry()->GetNumTriangles(); 
    143         } 
    144  
    145         return numTriangles; 
     143        return mLODLevels[lodLevel]->GetNumTriangles(); 
    146144} 
    147145 
     
    168166        Matrix4x4 *mat = mTransform->GetMatrix(); 
    169167 
    170         if (!mat) 
    171                 return mCenter; 
     168        if (!mat) return mCenter; 
    172169 
    173170        return (*mat) * mCenter; 
Note: See TracChangeset for help on using the changeset viewer.