#ifndef __CHCPLUSPLUSTRAVERSER_H #define __CHCPLUSPLUSTRAVERSER_H #include "RenderTraverser.h" namespace CHCDemo { /** Class implementing traversal using the CHC++ algorithm. */ class CHCPlusPlusTraverser: public RenderTraverser { public: CHCPlusPlusTraverser(); //~CHCPlusPlusTraverser(); protected: /** Traverses and renders the scene with the specified method */ virtual void Traverse(); void QueryPreviouslyInvisibleNodes(BvhNode *node); void IssueMultiQueries(); /** Handles the result of an occlusion query. */ void HandleQueryResult(OcclusionQuery *query); ////////////// /// the query queue QueryQueue mQueryQueue; BvhNodeQueue mIQueue; BvhNodeQueue mVQueue; }; } #endif // __CHCPLUSPLUSTRAVERSER_H