Ignore:
Timestamp:
06/14/05 02:50:05 (19 years ago)
Author:
mattausch
Message:

added visibility queries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibility/include/HierarchyInterface.h

    r112 r130  
    33 
    44#include "DistanceQueue.h" 
     5#include "VisibilityMesh.h" 
    56 
    67namespace GtpVisibility { 
    78 
    89enum  CullingType {QUERY_CULLED, FRUSTUM_CULLED}; 
     10 
     11typedef std::vector<HierarchyNode *> HierarchyNodeList; 
     12typedef std::vector<GtpVisibility::Mesh *> GeometryList; 
     13typedef std::pair<HierarchyNode *, OcclusionQuery *> QueryPair; 
     14typedef std::queue<QueryPair> QueryQueue; 
    915 
    1016/**     Class which implements a hierarchy interface for a scene hierarchy. 
     
    2632        */ 
    2733        virtual void TraverseNode(HierarchyNode *node) = 0; 
    28         /** Renders current scene node . 
    29                 @param node current scene node to be rendered 
     34        /** Renders current hierarchy node. 
     35                @param node current hierarchy node to be rendered 
    3036        */ 
    3137        virtual void RenderNode(HierarchyNode *node) = 0; 
     
    119125                CullingType type) = NULL; 
    120126 
     127        /** Returns vector of previously rendered hierarchy nodes. 
     128        */ 
     129        std::vector<HierarchyNode *> *GetRenderedNodes(); 
     130        /** Returns vector of previoulsy rendered geometry. 
     131        */ 
     132         
     133        /** Issue a occlusion query for this mesh. 
     134                @param node the current mesh 
     135                @returns occlusion query for this node 
     136        */ 
     137        virtual GtpVisibility::OcclusionQuery *IssueOcclusionQuery(GtpVisibility::Mesh *mesh) = 0; 
     138 
     139        /** Returns geometry of hierarchy node.  
     140        */ 
     141        virtual void GetGeometry(GtpVisibility::HierarchyNode *node,     
     142                                                         GeometryList *geometryList,  
     143                                                         bool includeChildren) = 0; 
     144 
     145 
     146        /** Renders geometry. 
     147        */ 
     148        virtual void RenderGeometry(GtpVisibility::Mesh *geom) = 0; 
     149 
    121150protected: 
    122151         
     
    128157        //--- statistics 
    129158        unsigned int mNumTraversedNodes; 
    130         unsigned int mNumRenderedNodes; 
    131159 
    132160        DistanceQueue *mDistanceQueue; 
     
    134162        HierarchyNode *mPreviousNode; 
    135163 
    136          
     164        std::vector<HierarchyNode *> mRenderedNodes; 
    137165}; 
    138166} // namespace GtpVisibility 
Note: See TracChangeset for help on using the changeset viewer.