Changeset 1594 for GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
- Timestamp:
- 10/10/06 00:59:59 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
r1584 r1594 1392 1392 } 1393 1393 1394 1395 } 1394 KdIntersectable * 1395 KdTree::GetOrCreateKdIntersectable(KdNode *node) 1396 { 1397 1398 if (node == NULL) 1399 return NULL; 1400 1401 // search nodes 1402 std::map<KdNode *, KdIntersectable *>:: 1403 const_iterator it = mKdIntersectables.find(node); 1404 1405 if (it != mKdIntersectables.end()) 1406 { 1407 return (*it).second; 1408 } 1409 1410 // not in map => create new entry 1411 KdIntersectable *kdObj = new KdIntersectable(node); 1412 mKdIntersectables[node] = kdObj; 1413 1414 return kdObj; 1415 } 1416 1417 KdNode * 1418 KdTree::GetNode(const Vector3 &point, 1419 const float maxArea) const 1420 { 1421 KdNode *node = mRoot; 1422 1423 while (!node->IsLeaf() && (GetSurfaceArea(node) > maxArea) ) { 1424 KdInterior *inter = (KdInterior *)node; 1425 if (point[inter->mAxis] < inter->mPosition) 1426 node = inter->mBack; 1427 else 1428 node = inter->mFront; 1429 } 1430 1431 return node; 1432 } 1433 1434 1435 }
Note: See TracChangeset
for help on using the changeset viewer.