Changeset 1600


Ignore:
Timestamp:
10/10/06 16:04:06 (18 years ago)
Author:
gumbau
Message:

Fixed simplification bug when simplifying to extremely a low factor

Location:
GTP/trunk/Lib/Geom/shared/GTGeometry/src
Files:
5 edited

Legend:

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

    r1578 r1600  
    12571257 
    12581258        //      Copy new vertices. 
     1259        std::vector<VertexBoneAssignment> newbones; 
    12591260        for (unsigned   int     i       =       0;      i < mGeoMeshSQ->mNewVertices.size();    i++) 
    12601261        { 
     
    12731274                                vba.vertexIndex = mGeoMeshSQ->mNewVertices[i].id; 
    12741275                                vba.weight = it->weight; 
    1275                                 mGeoMesh->mBones.push_back(vba); 
    1276                         } 
    1277                 } 
    1278         } 
     1276                                newbones.push_back(vba); 
     1277                        } 
     1278                } 
     1279        } 
     1280 
     1281        for (std::vector<VertexBoneAssignment>::iterator it = newbones.begin(); it != newbones.end(); it++) 
     1282                mGeoMesh->mBones.push_back(*it); 
     1283 
    12791284 
    12801285        //      For each submesh. 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/AdjPrims.h

    r1526 r1600  
    9393 
    9494                // SUS 
    95                 int vID; // this can be -1 when the vertex becomes non-valid 
     95                int vID; 
    9696        }; 
    9797 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/SimplificationMethod.cpp

    r1599 r1600  
    684684                if (twin_found) 
    685685                { 
    686                         //      Extract twin edge from heap. 
    687                         top             =       heap->extract(i); 
    688                         pair    =       (simplif::pair_info *)top->obj; 
     686                        heap->kill(i); 
    689687 
    690688                        //      Copy candidate. 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools/Heap.h

    r1526 r1600  
    6767                heap_node *extract(); 
    6868 
    69                 //      Overhead method. 
    70                 heap_node *extract(int i); 
    71  
    7269                heap_node *top() { return size<1 ? (heap_node *)NULL : &ref(0); } 
    7370                heap_node *kill(int i); 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools/heap.cxx

    r1526 r1600  
    100100} 
    101101 
    102 //      Overhead method. 
    103 heap_node *Heap::extract(int i) 
    104 { 
    105         if( size<1 ) return 0; 
    106  
    107         swap(i,size-1); 
    108         size--; 
    109  
    110         downheap(i); 
    111  
    112         ref(size).obj->notInHeap(); 
    113  
    114         return &ref(size); 
    115 } 
    116  
    117102heap_node *Heap::kill(int i) 
    118103{ 
Note: See TracChangeset for help on using the changeset viewer.