Ignore:
Timestamp:
07/20/06 09:51:26 (18 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r1143 r1144  
    947947                if (obj)  
    948948                { 
    949                         // potentially visible kd cells 
    950949                        if (mStoreKdPvs) 
    951950                        { 
     951                                // potentially visible kd cells 
    952952                                KdLeaf *leaf = mOspTree->GetLeaf(ray->mTermination, ray->mTerminationNode); 
    953953                                AddKdLeafToPvs(leaf, vc, ray->mPdf, contribution); 
     
    10761076                // add objects without the objects which are in several kd leaves 
    10771077                pvsSize += (int)(leaf->mObjects.size() - leaf->mMultipleObjects.size()); 
     1078                //Debug << "here11 " << (int)leaf->mObjects.size() << " " << leaf->mMultipleObjects.size() << endl; 
    10781079        } 
    10791080        else 
     
    11161117        RayInfoContainer::const_iterator ri, ri_end = rays.end(); 
    11171118 
    1118         //-- set all kd nodes as belonging to the front pvs 
     1119        //-- set all kd nodes / objects as belonging to the front pvs 
    11191120 
    11201121        for (ri = rays.begin(); ri != ri_end; ++ ri) 
     
    12141215                Intersectable *object = *oit; 
    12151216 
    1216                 // object not previously in left pvs 
     1217                // object not previously in pvs 
    12171218                if (!object->Mailed()) 
    12181219                { 
     
    19461947        nodeStack.push(mRoot); 
    19471948 
    1948         const AxisAlignedBox3 box = GetBBox(n); 
     1949        const AxisAlignedBox3 box = GetBoundingBox(n); 
    19491950 
    19501951        while (!nodeStack.empty()) 
     
    20072008                        VspNode *next; 
    20082009                         
    2009                         if (GetBBox(interior->GetBack()).Side(plane) < 0) 
     2010                        if (GetBoundingBox(interior->GetBack()).Side(plane) < 0) 
    20102011                        { 
    20112012                                next = interior->GetFront(); 
     
    20132014            else 
    20142015                        { 
    2015                                 if (GetBBox(interior->GetFront()).Side(plane) < 0) 
     2016                                if (GetBoundingBox(interior->GetFront()).Side(plane) < 0) 
    20162017                                { 
    20172018                                        next = interior->GetBack(); 
     
    25492550 
    25502551 
    2551 AxisAlignedBox3 VspTree::GetBBox(VspNode *node) const 
     2552AxisAlignedBox3 VspTree::GetBoundingBox(VspNode *node) const 
    25522553{ 
    25532554        if (!node->GetParent()) 
     
    25842585                nodeStack.pop(); 
    25852586 
    2586                 const AxisAlignedBox3 bbox = GetBBox(node); 
     2587                const AxisAlignedBox3 bbox = GetBoundingBox(node); 
    25872588 
    25882589                if (bbox.Includes(box)) 
     
    36933694 
    36943695 
    3695 AxisAlignedBox3 OspTree::GetBBox(KdNode *node) const 
     3696AxisAlignedBox3 OspTree::GetBoundingBox(KdNode *node) const 
    36963697{ 
    36973698        if (!node->mParent) 
     
    38143815KdLeaf *OspTree::GetLeaf(const Vector3 &pt, KdNode *node) const 
    38153816{ 
     3817        // start from root of tree 
    38163818        if (node == NULL) 
    38173819        { 
     
    38353837                else     
    38363838                {        
     3839                        // find point 
    38373840                        KdInterior *interior = dynamic_cast<KdInterior *>(node); 
    38383841         
    3839                         // random decision 
    3840                         if (interior->mPosition < pt[interior->mAxis]) 
     3842                        if (interior->mPosition > pt[interior->mAxis]) 
    38413843                        { 
    38423844                                nodeStack.push(interior->mBack); 
     
    39423944{ 
    39433945        // search nodes 
    3944         std::map<KdNode *, KdIntersectable *>::const_iterator it = mKdIntersectables.find(node); 
     3946        std::map<KdNode *, KdIntersectable *>:: 
     3947                const_iterator it = mKdIntersectables.find(node); 
    39453948 
    39463949        if (it != mKdIntersectables.end())  
     
    40544057                                                                                          RayInfoContainer &rays) 
    40554058{ 
    4056         // get clipped rays 
    4057         mOspTree.ProcessRays(sampleRays, rays); 
    4058  
    40594059        // store pointer to this tree 
    40604060        OspTree::OspSplitCandidate::sOspTree = &mOspTree; 
    40614061        mOspTree.mOspStats.nodes = 1; 
    40624062         
     4063        // compute bounding box from objects 
    40634064        mOspTree.ComputeBoundingBox(objects, forcedObjectSpace); 
    40644065 
     
    40664067        mGlobalCostMisses = 0; 
    40674068 
     4069        // get clipped rays 
     4070        mOspTree.ProcessRays(sampleRays, rays); 
    40684071 
    40694072        // add first candidate for view space partition 
     
    40864089 
    40874090                 
    4088         //mOspTree.ProcessMultipleRefs(NULL, kdleaf, NULL); 
    4089  
    40904091        // compute first split candidate 
    40914092        OspTree::OspSplitCandidate *oSplitCandidate =  
    40924093                new OspTree::OspSplitCandidate(oData); 
     4094 
    40934095    mOspTree.EvalSplitCandidate(*oSplitCandidate); 
    40944096 
     
    42524254        ///////////////////////////////////////////////////////////// 
    42534255 
    4254  
     4256        Debug << "**************** osp construction **************" << endl; 
    42554257        cout << "starting osp contruction ... " << endl; 
     4258 
    42564259        startTime = GetTime(); 
    42574260 
Note: See TracChangeset for help on using the changeset viewer.