Ignore:
Timestamp:
09/29/06 11:19:25 (18 years ago)
Author:
gumbau
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoLodStripsLibrary.cpp

    r1530 r1541  
    1313 
    1414using namespace Geometry; 
     15using   namespace       std; 
    1516 
    1617//----------------------------------------------------------------------------- 
     
    8283void LodStripsLibrary::GoToLod(float lodfactor) 
    8384{ 
    84         register        int                             j; 
    85         register        int                             offset; 
     85        register        int                     j; 
     86        register        int                     offset; 
    8687        long                    int                     i; 
    8788        long                    int                     k; 
    8889        long                    int                     b_change_ok     =       1; 
    89         unsigned long   int                     lod; 
     90        unsigned long   int     lod; 
    9091        long                    int                     t; 
    9192        long                    int                     r; 
     
    9596        long                    int                     total_changes; 
    9697        long                    int                     totalR; 
    97         SmallIntVector                          *strip; 
     98        SmallIntVector                                          *strip; 
    9899        SmallIntVector::iterator        start; 
    99100 
     
    104105 
    105106        lodFactor=lodfactor; 
    106 //      LODRegisterType * lastLOD = mCurrentRegLOD; 
    107107     
    108108        if (newLOD != mCurrentLod) 
     
    112112                        //      Forwards. 
    113113                        //      Increments LOD (decreases level of detail) 
    114                         for (lod = mCurrentLod; lod < newLOD || (mCurrentRegLOD->obligatory==1 && mCurrentLod<mLods-1); lod++) 
    115                         { 
    116                                 next                    =       mVertex[lod]; 
     114                        for (   lod     =       mCurrentLod; 
     115                                                (lod < newLOD) 
     116                                                || 
     117                                                ((mCurrentRegLOD->obligatory == 1) && (lod < (mLods - 1))); 
     118                                                lod++) 
     119                        { 
     120                                next                                    =       mVertex[lod]; 
    117121                                total_changes   =       mPChanges[lod]; 
    118122 
     
    120124                                { 
    121125                                        //      Strip change. 
    122                                         t               =       mCurrentRegLOD->strip;  
     126                                        t                       =       mCurrentRegLOD->strip; 
    123127                                        strip   =       &(mStrips[t]); 
    124                                         start   =       strip->begin();                          
     128                                        start   =       strip->begin(); 
     129 
    125130                                        int stripsize_ini = strip->size(); 
    126131                                 
     
    188193                        mCurrentRegLOD--; 
    189194                        mCurrentData--; 
    190                          
     195 
     196 
    191197                        //      Decrements LOD. 
    192                         for (lod = mCurrentLod; lod > newLOD || (mCurrentRegLOD->obligatory==1 && mCurrentLod>0); lod--) 
    193                         { 
     198                        for (   lod     =       mCurrentLod; 
     199                                                (lod > newLOD) 
     200                                                || 
     201                                                ((mCurrentRegLOD->obligatory == 1) && (lod > 0)) 
     202                                                || 
     203                                                ((mCurrentRegLOD[1].obligatory == 1) && (lod > 0)); 
     204                                                lod--) 
     205                        { 
     206 
    194207                                total_changes   =       mPChanges[lod - 1]; 
    195208                                 
     
    252265                                        int stripsize_end = strip->size(); 
    253266                                        indices_x_submesh[submesh_x_strip[t]] += (stripsize_end - stripsize_ini); 
    254  
    255267                                }                        
    256268                                 
    257                                 //      Update LOD.                              
     269                                //      Update LOD. 
    258270                                mCurrentLod     =       lod - 1; 
     271 
     272                                //      Debug. 
     273                                cout    <<      "Obligatory: " 
     274                                                        <<      (int)mCurrentRegLOD->obligatory 
     275                                                        <<      endl; 
    259276                        } 
    260277                         
Note: See TracChangeset for help on using the changeset viewer.