Ignore:
Timestamp:
06/20/06 13:02:00 (18 years ago)
Author:
gumbau
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/vmi/src/change.cpp

    r1009 r1024  
    332332} 
    333333 
     334namespace VMI{ 
     335std::map<int, INTVECTOR> inversemap; 
     336} 
     337 
    334338//      Save simplification sequence in Geometry Game Tools format. 
    335339extern void     VMI::saveSimplificationSequence(Change  *c) 
    336340{ 
    337         vmiStep step; 
    338         step.mV0        =       c->u; 
    339         step.mV1        =       c->v; 
    340  
    341         //      If only one triangle has been deleted. 
    342         if (c->numDel == 1) 
    343         { 
    344                 step.mT0        =       c->deleted[0].id; 
    345                 step.mT1        =       c->deleted[0].id; 
    346         } 
    347         //      If two triangles have been deleted. 
    348         else 
    349         { 
    350                 step.mT0        =       c->deleted[0].id; 
    351                 step.mT1        =       c->deleted[1].id; 
    352         } 
    353  
    354         step.x  =       0.0; 
    355         step.y  =       0.0; 
    356         step.z  =       0.0; 
    357  
    358         //      Write obligatory field. 
    359         step.obligatory =       0; 
    360  
    361         //      List of new triangles. 
    362         //      For each modified triangle. 
    363         for (int        i = 0;  i < c->numMod;  i++) 
    364         { 
    365                 step.mModfaces.push_back(c->modified[i].id); 
    366         } 
    367  
    368         //      Add step to list of changes. 
    369         mVMISteps.push_back(step); 
    370 } 
    371  
     341 
     342        int stepnum= 1; 
     343        for(INTVECTOR::iterator it= inversemap[c->u].begin(); it!=inversemap[c->u].end(); it++) 
     344        { 
     345                vmiStep step; 
     346                step.mV0        =       *it; 
     347                step.mV1        =       c->v; 
     348 
     349                //      If only one triangle has been deleted. 
     350                if (c->numDel == 1) 
     351                { 
     352                        step.mT0        =       c->deleted[0].id; 
     353                        step.mT1        =       c->deleted[0].id; 
     354                } 
     355                //      If two triangles have been deleted. 
     356                else 
     357                { 
     358                        step.mT0        =       c->deleted[0].id; 
     359                        step.mT1        =       c->deleted[1].id; 
     360                } 
     361 
     362                step.x  =       0.0; 
     363                step.y  =       0.0; 
     364                step.z  =       0.0; 
     365 
     366                //      Write obligatory field. 
     367                if (stepnum==inversemap[c->u].size()) 
     368                        step.obligatory =       0; 
     369                else 
     370                        step.obligatory =       1; 
     371                stepnum++; 
     372 
     373                //      List of new triangles. 
     374                //      For each modified triangle. 
     375                for (int        i = 0;  i < c->numMod;  i++) 
     376                { 
     377                        step.mModfaces.push_back(c->modified[i].id); 
     378                } 
     379 
     380                //      Add step to list of changes. 
     381                mVMISteps.push_back(step); 
     382        } 
     383} 
Note: See TracChangeset for help on using the changeset viewer.