OgreOctreeHierarchyInterface.h

Go to the documentation of this file.
00001 #ifndef _OctreeHierarchyInterface_H__
00002 #define _OctreeHierarchyInterface_H__
00003 
00004 #include <OgreOctree.h>
00005 #include "OgrePlatformHierarchyInterface.h"
00006 
00007 namespace Ogre {
00011 class OctreeHierarchyInterface : public PlatformHierarchyInterface
00012 {
00013 public:
00014         OctreeHierarchyInterface(SceneManager *sm, RenderSystem *rsys);
00015         
00020         void SetNumOctreeNodes(unsigned int num);
00021 
00026         //bool getOption( const String &, void * );
00027         //bool getOptionKeys( StringVector &refKeys );
00028         void PullUpVisibility(GtpVisibility::HierarchyNode *node);
00033         void TraverseNode(GtpVisibility::HierarchyNode *node);
00034         void RenderNode(GtpVisibility::HierarchyNode *node);
00035         bool IsLeaf(GtpVisibility::HierarchyNode *node);
00036         bool HasGeometry(GtpVisibility::HierarchyNode *node);
00037         bool HasGreaterDistance(GtpVisibility::HierarchyNode *node1, 
00038                                                     GtpVisibility::HierarchyNode *node2);
00039         
00040         void SetNodeVisible(GtpVisibility::HierarchyNode *node, const bool visible);
00041         void SetLastVisited(GtpVisibility::HierarchyNode *node, const int frameId);
00042 
00043         bool IsNodeVisible(GtpVisibility::HierarchyNode *node);
00044         int LastVisited(GtpVisibility::HierarchyNode *node);
00045 
00046 protected:
00051         AxisAlignedBox *GetBoundingBox(GtpVisibility::HierarchyNode *node);
00056         Real GetSquaredViewDepth(const Camera* cam, const AxisAlignedBox* box) const;
00057         unsigned int mNumOctreeNodes;
00058 };
00059 } // namespace Ogre
00060 
00061 #endif // OctreeHierarchyInterface_H

Generated on Fri Apr 29 19:47:56 2005 for GameTools Visibility Modules by  doxygen 1.4.2