#include "HierarchyInterface.h" #include namespace GtpVisibility { //----------------------------------------------------------------------- HierarchyInterface::HierarchyInterface(): mFrameId(0), mNumTraversedNodes(0), mSceneRoot(0), mPreviousNode(0), mCurrentTestIdx(0), mUseOptimization(false) //, mIsShadowPass(false) { mDistanceQueue = new DistanceQueue(GreaterDistance(this)); } //----------------------------------------------------------------------- HierarchyInterface::~HierarchyInterface() { delete mDistanceQueue; } //----------------------------------------------------------------------- void HierarchyInterface::SetSceneRoot(HierarchyNode *root) { mSceneRoot = root; } //----------------------------------------------------------------------- void HierarchyInterface::InitFrame(HierarchyNode *root) { ++ mFrameId; mCurrentTestIdx = 0; mNumTraversedNodes = 0; mRenderedNodes.clear(); SetSceneRoot(root); mDistanceQueue->push(mSceneRoot); } //----------------------------------------------------------------------- unsigned int HierarchyInterface::GetFrameId() const { return mFrameId; } //----------------------------------------------------------------------- DistanceQueue *HierarchyInterface::GetQueue() { return mDistanceQueue; } //----------------------------------------------------------------------- bool HierarchyInterface::CheckFrustumVisible(HierarchyNode *node) { bool intersects = false; return CheckFrustumVisible(node, intersects); } //----------------------------------------------------------------------- HierarchyNode *HierarchyInterface::GetSceneRoot() const { return mSceneRoot; } //----------------------------------------------------------------------- unsigned int HierarchyInterface::GetNumTraversedNodes() { return mNumTraversedNodes; } //----------------------------------------------------------------------- unsigned int HierarchyInterface::GetNumRenderedNodes() { return (unsigned int)mRenderedNodes.size(); } //----------------------------------------------------------------------- void HierarchyInterface::SetUseOptimization(bool useOptimization) { mUseOptimization = useOptimization; } //----------------------------------------------------------------------- std::vector *HierarchyInterface::GetRenderedNodes() { return &mRenderedNodes; } } // namespace GtpVisibility