本文整理汇总了C++中T::GetAxis方法的典型用法代码示例。如果您正苦于以下问题:C++ T::GetAxis方法的具体用法?C++ T::GetAxis怎么用?C++ T::GetAxis使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类T
的用法示例。
在下文中一共展示了T::GetAxis方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetNodes
// return all nodes matching the volume-query
// description, starting search at the subtree
// with node-index <nodeNum>
//
// NOTE: do not call before balancing the tree
void GetNodes(NodeVolumeQuery<T>* query, size_t nodeNum, unsigned int depth = 0) {
if (nodeNum >= nodes.size()) {
return;
}
const T nodeInst = nodes[nodeNum];
float nodeDist = 0.0f;
if ((nodeNum << 1) < nodes.size()) {
// if in the left half of the array, we can examine child nodes
nodeDist = query->GetPos()[nodeInst->GetAxis()] - nodeInst->GetPos()[nodeInst->GetAxis()];
if (nodeDist > 0.0f) {
// search right of the axis-plane first
GetNodes(query, (nodeNum << 1) + 1, depth + 1);
if ((nodeDist * nodeDist) < query->GetMaxNodeDist()) {
GetNodes(query, (nodeNum << 1), depth + 1);
}
} else {
// search left of the axis-plane first
GetNodes(query, (nodeNum << 1), depth + 1);
if ((nodeDist * nodeDist) < query->GetMaxNodeDist()) {
GetNodes(query, (nodeNum << 1) + 1, depth + 1);
}
}
}
query->AddNode(nodeInst);
}