当前位置: 首页>>代码示例>>C++>>正文


C++ OctreeElementPointer::getOrCreateChildElementAt方法代码示例

本文整理汇总了C++中OctreeElementPointer::getOrCreateChildElementAt方法的典型用法代码示例。如果您正苦于以下问题:C++ OctreeElementPointer::getOrCreateChildElementAt方法的具体用法?C++ OctreeElementPointer::getOrCreateChildElementAt怎么用?C++ OctreeElementPointer::getOrCreateChildElementAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OctreeElementPointer的用法示例。


在下文中一共展示了OctreeElementPointer::getOrCreateChildElementAt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: getOrCreateChildElementAt

// TODO: consider removing this, or switching to using getOrCreateChildElementContaining(const AACube& box)...
OctreeElementPointer OctreeElement::getOrCreateChildElementAt(float x, float y, float z, float s) {
    OctreeElementPointer child = NULL;
    // If the requested size is less than or equal to our scale, but greater than half our scale, then
    // we are the Element they are looking for.
    float ourScale = getScale();
    float halfOurScale = ourScale / 2.0f;

    if(s > ourScale) {
        qCDebug(octree, "UNEXPECTED -- OctreeElement::getOrCreateChildElementAt() s=[%f] > ourScale=[%f] ",
                (double)s, (double)ourScale);
    }

    if (s > halfOurScale) {
        return shared_from_this();
    }

    int childIndex = getMyChildContainingPoint(glm::vec3(x, y, z));

    // Now, check if we have a child at that location
    child = getChildAtIndex(childIndex);
    if (!child) {
        child = addChildAtIndex(childIndex);
    }

    // Now that we have the child to recurse down, let it answer the original question...
    return child->getOrCreateChildElementAt(x, y, z, s);
}
开发者ID:Giugiogia,项目名称:hifi,代码行数:28,代码来源:OctreeElement.cpp


注:本文中的OctreeElementPointer::getOrCreateChildElementAt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。