Changeset 1884 for GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.cpp
- Timestamp:
- 12/13/06 01:13:15 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.cpp
r1883 r1884 1922 1922 1923 1923 GenerateLeafRay(params, rays, node->bbox, node->dirBBox); 1924 1925 1926 1924 } 1927 1925 … … 3117 3115 3118 3116 3119 3120 3121 } 3117 bool 3118 RssBasedDistribution::GenerateSample(SimpleRay &ray) 3119 { 3120 float r[5]; 3121 3122 if (mRssTree == NULL) 3123 return false; 3124 3125 mHalton.GetNext(5, r); 3126 3127 SimpleRayContainer rays; 3128 mRssTree->GenerateRay(r, rays); 3129 ray = rays[0]; 3130 3131 return false; 3132 } 3133 3134 void 3135 RssBasedDistribution::Update(VssRayContainer &vssRays) 3136 { 3137 if (mRssTree == NULL) { 3138 mRssTree = new RssTree; 3139 mRssTree->SetPass(mPass); 3140 3141 /// compute view cell contribution of rays if view cells manager already constructed 3142 // mViewCellsManager->ComputeSampleContributions(mVssRays, true, false); 3143 3144 mRssTree->Construct(mPreprocessor.mObjects, vssRays); 3145 mRssTree->stat.Print(mPreprocessor.mStats); 3146 cout<<"RssTree root PVS size = "<<mRssTree->GetRootPvsSize()<<endl; 3147 3148 } else { 3149 Debug<<"Adding rays...\n"<<flush; 3150 mRssTree->AddRays(vssRays); 3151 Debug<<"done.\n"<<flush; 3152 if (1) { 3153 // if (mUpdateSubdivision) { 3154 Debug<<"Updating rss tree...\n"<<flush; 3155 int subdivided = mRssTree->UpdateSubdivision(); 3156 Debug<<"done.\n"<<flush; 3157 cout<<"subdivided leafs = "<<subdivided<<endl; 3158 cout<<"#total leaves = "<<mRssTree->stat.Leaves()<<endl; 3159 } 3160 } 3161 mPass++; 3162 } 3163 3164 }
Note: See TracChangeset
for help on using the changeset viewer.