Ignore:
Timestamp:
07/04/05 17:57:51 (19 years ago)
Author:
mattausch
Message:

added item buffer queries.

Location:
trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/include/OgreOctree.h

    r135 r154  
    192192        void _updateBounds(); 
    193193 
     194        /** Sets scene node id  
     195        @param the id 
     196        */ 
     197        void setId(int id); 
     198         
     199        /** see set */ 
     200        int getId(void); 
     201 
    194202protected: 
    195203         
     
    201209        bool mVisible; 
    202210        int mDepth; 
     211        int mId; 
    203212 
    204213#endif // GTP_VISIBILITY_MODIFIED_OGRE 
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/include/OgreTerrainRenderable.h

    r131 r154  
    4747 
    4848#define MORPH_CUSTOM_PARAM_ID 77 
     49 
     50#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     51#define MAX_RENDERLEVEL_INDEX 15 
     52#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    4953 
    5054namespace Ogre 
     
    293297        /// Get the static list of indexes cached (internal use only) 
    294298        static TerrainBufferCache& _getIndexCache(void) {return msIndexCache;} 
    295                 // index of renderlevel of current pass 
    296                 static int getCurrentRenderLevelIndex() {return msCurrentRenderLevelIndex;} 
    297                 static void setCurrentRenderLevelIndex(int index) {msCurrentRenderLevelIndex = index;} 
     299 
     300#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     301                // index of renderlevel used for current pass 
     302                static int getCurrentRenderLevelIndex(); 
     303                // returns index of renderlevel 
     304                static void setCurrentRenderLevelIndex(int index); 
     305#endif // GTP_VISIBILITY_MODIFIED_OGRE 
     306 
    298307    protected: 
    299308                // index of renderlevel of current pass 
     
    355364        VertexData* mTerrain; 
    356365 
    357         /// The current LOD level: for multiple passes, up to 10 renderlevels can be saved 
    358         int mRenderLevel[10]; 
     366        /// The current LOD level 
     367#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     368        int mRenderLevel[MAX_RENDERLEVEL_INDEX]; 
     369#else 
     370                int mRenderLevel; 
     371#endif // GTP_VISIBILITY_MODIFIED_OGRE 
     372 
    359373        /// The previous 'next' LOD level down, for frame coherency 
    360374        int mLastNextLevel;  
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/src/OgreOctree.cpp

    r139 r154  
    8888      mHalfSize( 0, 0, 0 ) 
    8989#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    90         , mLastVisited(0), mVisible(false), mLastRendered(-1) 
     90        , mLastVisited(0), mVisible(false), mLastRendered(-1), mId(-1) 
    9191#endif //GTP_VISIBILITY_MODIFIED_OGRE 
    9292{ 
     
    271271        } 
    272272 } 
     273//----------------------------------------------------------------------- 
     274void Octree::setId(int id) 
     275{ 
     276        mId = id; 
     277} 
     278//----------------------------------------------------------------------- 
     279int Octree::getId() 
     280{ 
     281        return mId; 
     282} 
    273283#endif //GTP_VISIBILITY_MODIFIED_OGRE 
    274284} 
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/src/OgreOctreeSceneManager.cpp

    r139 r154  
    318318#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    319319        mNumOctreeNodes = 1; 
     320        mOctree->setId(mNumOctreeNodes); 
    320321#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    321322    mMaxDepth = depth; 
     
    468469            octant -> mChildren[ x ][ y ][ z ] = new Octree( octant ); 
    469470#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    470         mNumOctreeNodes ++; 
     471        mOctree->setId(++ mNumOctreeNodes); 
    471472#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    472473 
     
    10321033#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    10331034        mNumOctreeNodes = 1; 
     1035        mOctree->setId(mNumOctreeNodes); 
    10341036#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    10351037    mOctree->mBox = box; 
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/src/OgreTerrainRenderable.cpp

    r139 r154  
    5858    bool TerrainRenderable::mLevelInit = false; 
    5959    const TerrainOptions* TerrainRenderable::msOptions = 0; 
     60 
     61#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    6062        int TerrainRenderable::msCurrentRenderLevelIndex = 0; 
     63#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    6164    //----------------------------------------------------------------------- 
    6265    //----------------------------------------------------------------------- 
     
    177180        mInit = true; 
    178181 
    179 //#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    180                 // for up to 10 passes 
    181                 for (int i = 0; i < 10; ++i) 
     182#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     183                for (int i = 0; i < MAX_RENDERLEVEL_INDEX; ++i) 
    182184                { 
    183185                        mRenderLevel[i] = 1; 
    184186                } 
     187#else 
     188                mRenderLevel = 1; 
     189#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    185190 
    186191        mMinLevelDistSqr = new Real[ msOptions->maxGeoMipMapLevel ]; 
     
    330335        if ( mForcedRenderLevel >= 0 ) 
    331336        { 
     337#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    332338            mRenderLevel[msCurrentRenderLevelIndex] = mForcedRenderLevel; 
     339#else 
     340                        mRenderLevel = mForcedRenderLevel; 
     341#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    333342            return ; 
    334343        } 
     
    339348        Real L = diff.squaredLength(); 
    340349 
    341                 mRenderLevel[msCurrentRenderLevelIndex] = -1; 
     350#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     351            mRenderLevel[msCurrentRenderLevelIndex] = -1;; 
     352#else 
     353                        mRenderLevel = -1; 
     354#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    342355 
    343356        for ( int i = 0; i < msOptions->maxGeoMipMapLevel; i++ ) 
     
    345358            if ( mMinLevelDistSqr[ i ] > L ) 
    346359            { 
     360#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    347361                mRenderLevel[msCurrentRenderLevelIndex] = i - 1; 
     362#else 
     363                        mRenderLevel = i - 1; 
     364#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    348365                break; 
    349366            } 
    350367        } 
    351368 
     369#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    352370        if ( getRenderLevel() < 0 ) 
    353371            mRenderLevel[msCurrentRenderLevelIndex] = msOptions->maxGeoMipMapLevel - 1; 
     372#else 
     373                if ( mRenderLevel < 0 ) 
     374            mRenderLevel = msOptions->maxGeoMipMapLevel - 1; 
     375#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    354376 
    355377        if (msOptions->lodMorph) 
    356378        { 
    357379            // Get the next LOD level down 
     380#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    358381            int nextLevel = mNextLevelDown[getRenderLevel()]; 
     382#else 
     383                        int nextLevel = mNextLevelDown; 
     384#endif // GTP_VISIBILITY_MODIFIED_OGRE 
     385             
    359386            if (nextLevel == 0) 
    360387            { 
     
    668695    void TerrainRenderable::_adjustRenderLevel( int i ) 
    669696    { 
    670  
     697#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    671698        mRenderLevel[msCurrentRenderLevelIndex] = i; 
     699#else 
     700                mRenderLevel = i; 
     701#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    672702    } 
    673703    //----------------------------------------------------------------------- 
     
    14691499 
    14701500    } 
    1471  
     1501#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     1502        //----------------------------------------------------------------------- 
     1503        int TerrainRenderable::getCurrentRenderLevelIndex()  
     1504        { 
     1505                return msCurrentRenderLevelIndex; 
     1506        } 
     1507        //----------------------------------------------------------------------- 
     1508        void TerrainRenderable::setCurrentRenderLevelIndex(int index) 
     1509        { 
     1510                if (index > MAX_RENDERLEVEL_INDEX) 
     1511                        index = 0; 
     1512 
     1513                msCurrentRenderLevelIndex = index; 
     1514        } 
     1515#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    14721516 
    14731517} //namespace 
Note: See TracChangeset for help on using the changeset viewer.