Ignore:
Timestamp:
03/07/06 11:09:10 (19 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp

    r676 r678  
    186186        mSplitCandidates = new vector<SortableEntry>; 
    187187 
    188         Debug << "here3" << endl; 
    189188        Debug << endl; 
    190189} 
     
    463462 
    464463        // first node is kd node, i.e. an axis aligned box 
    465         if (1) 
     464        if (0) 
    466465        tData.mIsKdNode = true; 
    467466        else 
     
    13481347        if (1) 
    13491348        { 
    1350                 PolygonContainer::const_iterator it, it_end = tData.mGeometry->mPolys.end(); 
    1351  
    1352                 for(it = tData.mGeometry->mPolys.begin(); it < it_end; ++ it) 
     1349                PolygonContainer::const_iterator it, it_end = tData.mGeometry->GetPolys().end(); 
     1350 
     1351                for(it = tData.mGeometry->GetPolys().begin(); it < it_end; ++ it) 
    13531352                        box.Include(*(*it)); 
    13541353        } 
     
    14021401                                        pos = box.Max(); pos[axis] = nPosition[axis]; 
    14031402                                        AxisAlignedBox3 bBox(box.Min(), pos); 
    1404                                         bBox.ExtractPolys(nBackGeom[axis]->mPolys); 
    1405                                          
     1403                                        // TODO 
     1404#if 0 
     1405                                                bBox.ExtractPolys(nBackGeom[axis]->GetPolys()); 
     1406#endif                                   
    14061407                                        pos = box.Min(); pos[axis] = nPosition[axis]; 
    14071408                                        AxisAlignedBox3 fBox(pos, box.Max()); 
    1408                                         fBox.ExtractPolys(nFrontGeom[axis]->mPolys); 
     1409                                        // TODO 
     1410#if 0 
     1411                                                fBox.ExtractPolys(nFrontGeom[axis]->GetPolys()); 
     1412#endif 
    14091413                                } 
    14101414                                else 
     
    15691573                DEL_PTR(bGeom); 
    15701574        } 
    1571          
    1572  
    1573 #ifdef _DEBUG 
     1575     
     1576 
     1577        if (lowestCost > 10) 
     1578                Debug << "warning!! lowest cost: " << lowestCost << endl; 
     1579         
     1580//#ifdef _DEBUG 
    15741581        Debug << "plane lowest cost: " << lowestCost << endl; 
    1575 #endif 
     1582//#endif 
    15761583 
    15771584        if (lowestCost > mTermMaxCostRatio) 
     
    17161723                        Debug << "vol f " << pFront << " b " << pBack << " p " << pOverall << endl; 
    17171724                        Debug << "real vol f " << pFront << " b " << geomBack.GetVolume() << " p " << pOverall << endl; 
    1718                         Debug << "polys f" << (int)geomFront.mPolys.size() << " b " << (int)geomFront.mPolys.size() << " data " << (int)data.mGeometry->mPolys.size() << endl; 
     1725                        Debug << "polys f " << geomFront.Size() << " b " << geomBack.Size() << " data " << data.mGeometry->Size() << endl; 
    17191726                } 
    17201727 
     
    18071814                                                                  candidatePlane, 
    18081815                                                                  mBox, 
    1809                                                                   0.0000001f); 
     1816                                                                  0.000000001f); 
    18101817                                                                  //mEpsilon); 
    18111818 
     
    18201827                if (1) 
    18211828                { 
    1822                         if (pFront <= 0) 
    1823                         { 
    1824                                 //Debug << "error f: " << pFront << endl; 
    1825                                 return 999; 
    1826                         } 
    1827  
    1828                         if (pBack <= 0)  
    1829                         { 
    1830                                 //Debug << "error b: " << pBack << endl; 
     1829                        if ((pFront <= 0) || (pBack <= 0) ||  
     1830                                !geomFront.Valid() || !geomBack.Valid()) 
     1831                        { 
     1832                                Debug << "error f: " << pFront << " b: " << pBack << endl; 
    18311833                                return 999; 
    18321834                        } 
     
    25272529 
    25282530        PolygonContainer candidatePolys; 
     2531        vector<Plane3> candidatePlanes; 
    25292532 
    25302533        // bounded planes are added to the polygons (reverse polygons 
    2531         // as they have to be outfacing 
     2534        // as they have to be outfacing) 
    25322535        for (int i = 0; i < (int)halfSpaces.size(); ++ i) 
    25332536        { 
     
    25372540                { 
    25382541                        candidatePolys.push_back(p->CreateReversePolygon()); 
     2542                        // Why? 
     2543                        Plane3 candidatePlane = p->GetSupportingPlane(); //halfSpaces[i]; 
     2544                        //candidatePlane.ReverseOrientation(); 
     2545                        candidatePlanes.push_back(candidatePlane); 
     2546 
    25392547                        DEL_PTR(p); 
    25402548                } 
     
    25492557                        vertices.push_back(mBox.GetFace(i).mVertices[j]); 
    25502558 
    2551                 candidatePolys.push_back(new Polygon3(vertices)); 
     2559                Polygon3 *poly = new Polygon3(vertices); 
     2560 
     2561                candidatePolys.push_back(poly); 
     2562                candidatePlanes.push_back(poly->GetSupportingPlane()); 
    25522563        } 
    25532564 
     
    25872598                                        DEL_PTR(backPoly); 
    25882599                                        break; 
     2600 
    25892601                                case Polygon3::BACK_SIDE: 
    25902602                                        DEL_PTR(candidatePolys[i]); 
     
    25992611 
    26002612                if (candidatePolys[i]) 
    2601                         geom.mPolys.push_back(candidatePolys[i]); 
     2613                { 
     2614                        geom.Add(candidatePolys[i], candidatePlanes[i]); 
     2615                        //      geom.mPolys.push_back(candidates[i]); 
     2616                } 
    26022617        } 
    26032618} 
     
    26672682                                        { 
    26682683                                                const int cf = 
    2669                                                         Polygon3::ClassifyPlane(geom->mPolys, 
     2684                                                        Polygon3::ClassifyPlane(geom->GetPolys(), 
    26702685                                                                                                        halfSpaces[i], 
    26712686                                                                                                        mEpsilon); 
     
    26812696                                        // TODO: why is this wrong?? 
    26822697                                        // test all planes of current node if still adjacent 
    2683                                         for (int i = 0; (i < (int)nodeGeom.mPolys.size()) && isAdjacent; ++ i) 
     2698                                        for (int i = 0; (i < nodeGeom.Size()) && isAdjacent; ++ i) 
    26842699                                        { 
    2685                                                 Polygon3 *poly = nodeGeom.mPolys[i]; 
     2700                                                Polygon3 *poly = nodeGeom.GetPolys()[i]; 
    26862701 
    26872702                                                const int cf = 
    2688                                                         Polygon3::ClassifyPlane(geom->mPolys, 
     2703                                                        Polygon3::ClassifyPlane(geom->GetPolys(), 
    26892704                                                                                                        poly->GetSupportingPlane(), 
    26902705                                                                                                        mEpsilon); 
     
    27072722                        BspInterior *interior = dynamic_cast<BspInterior *>(node); 
    27082723 
    2709                         const int cf = Polygon3::ClassifyPlane(nodeGeom.mPolys, 
     2724                        const int cf = Polygon3::ClassifyPlane(nodeGeom.GetPolys(), 
    27102725                                                                                                   interior->GetPlane(), 
    27112726                                                                                                   mEpsilon); 
     
    27992814                        BspInterior *interior = dynamic_cast<BspInterior *>(node); 
    28002815 
    2801                         const int cf = Polygon3::ClassifyPlane(nodeGeom.mPolys, 
     2816                        const int cf = Polygon3::ClassifyPlane(nodeGeom.GetPolys(), 
    28022817                                                                                                   interior->GetPlane(), 
    28032818                                                                                                   mEpsilon); 
     
    28702885 
    28712886                        const int cf =  
    2872                                 Polygon3::ClassifyPlane(geom.mPolys, halfspace, mEpsilon); 
     2887                                Polygon3::ClassifyPlane(geom.GetPolys(), halfspace, mEpsilon); 
    28732888 
    28742889                        if (cf == Polygon3::BACK_SIDE) 
Note: See TracChangeset for help on using the changeset viewer.