Changeset 2332 for GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
- Timestamp:
- 04/23/07 16:19:30 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
r2176 r2332 15 15 // $$JB HACK 16 16 #define KD_PVS_AREA (1e-5f) 17 18 #define TYPE_INTERIOR -2 19 #define TYPE_LEAF -3 20 17 21 18 22 namespace GtpVisibilityPreprocessor { … … 1098 1102 } 1099 1103 1100 int1101 KdTree::CollectLeafPvs()1102 {1103 1104 // matt: no more kd pvs1105 int totalPvsSize = 0;1106 /*1107 stack<KdNode *> nodeStack;1108 1109 nodeStack.push(mRoot);1110 1111 while (!nodeStack.empty()) {1112 KdNode *node = nodeStack.top();1113 nodeStack.pop();1114 if (node->IsLeaf()) {1115 KdLeaf *leaf = (KdLeaf *)node;1116 for (int j=0; j < leaf->mObjects.size(); j++) {1117 Intersectable *object = leaf->mObjects[j];1118 if (!object->Mailed()) {1119 object->Mail();1120 // add this node to pvs of all nodes it can see1121 KdPvsMap::iterator ni = object->mKdPvs.mEntries.begin();1122 for (; ni != object->mKdPvs.mEntries.end(); ni++) {1123 KdNode *node = (*ni).first;1124 // $$ JB TEMPORARY solution -> should add object PVS or explictly computed1125 // kd tree PVS1126 float contribution;1127 if (leaf->mKdPvs.AddSample(node, 1.0f, contribution))1128 totalPvsSize++;1129 }1130 }1131 }1132 } else {1133 KdInterior *interior = (KdInterior *)node;1134 nodeStack.push(interior->mFront);1135 nodeStack.push(interior->mBack);1136 }1137 }1138 */1139 return totalPvsSize;1140 }1141 1142 1104 1143 1105 KdNode * … … 1223 1185 1224 1186 1225 #define TYPE_INTERIOR -21226 #define TYPE_LEAF -31227 1228 1229 1187 void KdTree::ExportBinLeaf(OUT_STREAM &stream, KdLeaf *leaf) 1230 1188 { … … 1319 1277 OUT_STREAM stream(filename.c_str(), OUT_BIN_MODE); 1320 1278 1321 //if (!stream.is_open()) return false;1279 if (!stream.is_open()) return false; 1322 1280 1323 1281 // export binary version of mesh … … 1400 1358 DEL_PTR(mRoot); 1401 1359 1402 KdNode *node = LoadNextNode(stream, NULL, objects); 1403 mRoot = node; 1404 1405 tStack.push(TraversalData(node, mBox, 0)); 1360 mRoot = LoadNextNode(stream, NULL, objects); 1361 1362 tStack.push(TraversalData(mRoot, mBox, 0)); 1406 1363 mStat.Reset(); 1407 1364 mStat.nodes = 1;
Note: See TracChangeset
for help on using the changeset viewer.