00001 #ifndef _SceneNodeHierarchyInterface_H__ 00002 #define _SceneNodeHierarchyInterface_H__ 00003 00004 #include "OgrePlatformHierarchyInterface.h" 00005 00006 namespace Ogre { 00007 00011 class SceneNodeHierarchyInterface: public PlatformHierarchyInterface 00012 { 00013 public: 00019 SceneNodeHierarchyInterface(SceneManager *sm, RenderSystem *rsys); 00020 00021 bool IsLeaf(GtpVisibility::HierarchyNode *node); 00022 00023 void TraverseNode(GtpVisibility::HierarchyNode *node); 00024 void RenderNode(GtpVisibility::HierarchyNode *node); 00025 void PullUpVisibility(GtpVisibility::HierarchyNode *node); 00026 bool HasGeometry(GtpVisibility::HierarchyNode *node); 00027 bool HasGreaterDistance(GtpVisibility::HierarchyNode *node1, 00028 GtpVisibility::HierarchyNode *node2); 00029 00030 void SetNodeVisible(GtpVisibility::HierarchyNode *node, const bool visible); 00031 void SetLastVisited(GtpVisibility::HierarchyNode *node, const int frameId); 00032 00033 bool IsNodeVisible(GtpVisibility::HierarchyNode *node); 00034 int LastVisited(GtpVisibility::HierarchyNode *node); 00035 00036 AxisAlignedBox *GetBoundingBox(GtpVisibility::HierarchyNode *node); 00037 00038 protected: 00039 00040 00041 }; 00042 00043 } // namespace Ogre 00044 #endif // SceneNodeHierarchyInterface_H