Ignore:
Timestamp:
08/28/06 03:42:51 (18 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r1233 r1288  
    672672 
    673673                // cost ratio of cost decrease / totalCost 
    674                 float costRatio = splitCandidate.GetPriority() / mTotalCost; 
     674                float costRatio = splitCandidate.mRenderCostDecr / mTotalCost; 
    675675 
    676676                //Debug << "cost ratio: " << costRatio << endl; 
    677  
    678677                if (costRatio < mTermMinGlobalCostRatio) 
    679678                        ++ mGlobalCostMisses; 
     
    10411040 
    10421041 
    1043 /* 
    1044 void VspBspTree::EvalSubdivisionCandidate(VspBspTraversalData &tData, 
    1045                                                                         VspBspSubdivisionCandidate &splitData) 
     1042void VspBspTree::EvalSubdivisionCandidate(VspBspSubdivisionCandidate &splitCandidate) 
    10461043{ 
    10471044        VspBspTraversalData frontData; 
    10481045        VspBspTraversalData backData; 
    1049  
    1050         BspLeaf *leaf = dynamic_cast<BspLeaf *>(tData.mNode); 
    1051  
     1046         
     1047        BspLeaf *leaf = dynamic_cast<BspLeaf *>(splitCandidate.mParentData.mNode); 
     1048         
    10521049        // compute locally best split plane 
    1053     bool success = SelectPlane(splitData.mSplitPlane, leaf, tData,  
    1054                                                            frontData, backData, splitData.mSplitAxis); 
    1055  
    1056         // TODO: reuse 
    1057         delete frontData.mGeometry; 
    1058         delete backData.mGeometry; 
    1059          
    1060         // compute global decrease in render cost 
    1061         splitData.mPriority = EvalRenderCostDecrease(splitData.mSplitPlane, tData); 
    1062         splitData.mParentData = tData; 
    1063         splitData.mMaxCostMisses = success ? tData.mMaxCostMisses : tData.mMaxCostMisses + 1; 
    1064 } 
    1065 */ 
    1066  
    1067 void VspBspTree::EvalSubdivisionCandidate(VspBspSubdivisionCandidate &splitCandidate) 
    1068 { 
    1069         VspBspTraversalData frontData; 
    1070         VspBspTraversalData backData; 
    1071          
    1072         BspLeaf *leaf = dynamic_cast<BspLeaf *>(splitCandidate.mParentData.mNode); 
    1073          
    1074         // compute locally best split plane 
    1075     bool success = SelectPlane(splitCandidate.mSplitPlane, leaf, splitCandidate.mParentData,  
    1076                                                            frontData, backData, splitCandidate.mSplitAxis); 
     1050    const bool costRatioViolated =  
     1051                SelectPlane(splitCandidate.mSplitPlane,  
     1052                                        leaf,  
     1053                                        splitCandidate.mParentData,  
     1054                                        frontData,  
     1055                                        backData,  
     1056                                        splitCandidate.mSplitAxis); 
     1057 
     1058        // max cost threshold violated? 
     1059        splitCandidate.mMaxCostMisses = costRatioViolated ?  
     1060                splitCandidate.mParentData.mMaxCostMisses :  
     1061                splitCandidate.mParentData.mMaxCostMisses + 1; 
    10771062 
    10781063        float oldRenderCost; 
     
    11011086         
    11021087        splitCandidate.mPriority = priority; 
    1103  
    1104         // max cost threshold violated? 
    1105         splitCandidate.mMaxCostMisses =  
    1106                 success ? splitCandidate.mParentData.mMaxCostMisses : splitCandidate.mParentData.mMaxCostMisses + 1; 
    11071088} 
    11081089 
Note: See TracChangeset for help on using the changeset viewer.