source: trunk/VUT/Ogre/include/OgreSceneNodeHierarchyInterface.h @ 155

Revision 155, 2.0 KB checked in by mattausch, 19 years ago (diff)

added node traversal interface

Line 
1#ifndef _SceneNodeHierarchyInterface_H__
2#define _SceneNodeHierarchyInterface_H__
3
4#include "OgrePlatformHierarchyInterface.h"
5#include "VisibilityInfo.h"
6#include "QueryManager.h"
7
8
9namespace Ogre {
10
11/**
12        This class implements the hierarchy interface for the Ogre scene node hierarchy.
13*/
14class SceneNodeHierarchyInterface: public PlatformHierarchyInterface
15{
16public:
17        /** Construction taking the current scene manager and the current
18                rendersystem as argument
19                @param sm current scene manager
20                @param rsys current render system
21        */
22        SceneNodeHierarchyInterface(SceneManager *sm, RenderSystem *rsys);
23       
24        bool IsLeaf(GtpVisibility::HierarchyNode *node) const;
25       
26        void TraverseAndRenderNode(GtpVisibility::HierarchyNode *node);
27        void RenderNode(GtpVisibility::HierarchyNode *node);
28        void PullUpVisibility(GtpVisibility::HierarchyNode *node);
29        bool HasGeometry(GtpVisibility::HierarchyNode *node) const;
30        float GetSquaredDistance(GtpVisibility::HierarchyNode *node) const;
31
32        void SetNodeVisible(GtpVisibility::HierarchyNode *node, const bool visible);
33        void SetLastVisited(GtpVisibility::HierarchyNode *node,
34                                                const unsigned int frameId);
35
36        bool IsNodeVisible(GtpVisibility::HierarchyNode *node) const;
37        unsigned int LastVisited(GtpVisibility::HierarchyNode *node) const;
38
39        AxisAlignedBox *GetBoundingBox(GtpVisibility::HierarchyNode *node);
40
41        void VisualizeCulledNode(GtpVisibility::HierarchyNode *node,
42                                                        GtpVisibility::CullingType type);
43
44        /*bool FindVisibleObjects(GtpVisibility::HierarchyNode *node,   
45                                                        InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry,
46                                                        bool includeChildren = false);*/
47       
48        void GetNodeGeometryList(GtpVisibility::HierarchyNode *node,   
49                                         GtpVisibility::GeometryList *geometryList,
50                                         bool includeChildren);
51
52        void SetNodeId(GtpVisibility::HierarchyNode *node, int id);
53       
54        int GetNodeId(GtpVisibility::HierarchyNode *node);
55
56        GtpVisibility::HierarchyNode *GetNextNode();
57};
58
59} // namespace Ogre
60#endif // SceneNodeHierarchyInterface_H
Note: See TracBrowser for help on using the repository browser.