Changeset 171 for trunk/VUT/Ogre/include


Ignore:
Timestamp:
07/13/05 00:47:40 (19 years ago)
Author:
mattausch
Message:

fixed visibilityQueries

Location:
trunk/VUT/Ogre/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/include/OgreOcclusionQueriesQueryManager.h

    r159 r171  
    77   
    88/** 
    9         Class which implements the QueryManager for Ogre scene queries using occlusion queries. 
     9        Class which implements a query manager for Ogre scene queries using occlusion queries. 
    1010*/ 
    1111class __declspec(dllexport) OcclusionQueriesQueryManager: public PlatformQueryManager 
     
    1515                on different hierarchy types, while reusing the implementation of the query methods. 
    1616    */ 
    17         OcclusionQueriesQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp); 
     17        OcclusionQueriesQueryManager(PlatformHierarchyInterface *hierarchyInterface,  
     18                                         Viewport *vp, 
     19                                                                 bool renderPatches, 
     20                                         bool useItemBufferForGeometry); 
    1821     
    1922    void ComputeCameraVisibility(const Camera &camera, 
     
    3336                               bool relativeVisibility = false); 
    3437     
    35         bool ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine = false);   
     38 
     39protected: 
     40 
     41        void CollectGeometryVisibility(GtpVisibility::QueryList::iterator &visQueryIt,  
     42                                                                   GtpVisibility::QueryList::iterator &projQueryIt, 
     43                                                                   GtpVisibility::GeometryList *geometryList,  
     44                                                                   InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry, 
     45                                                                   bool relativeVisibility); 
     46 
     47        void CollectNodeVisibility(GtpVisibility::QueryList::iterator &visQueryIt,  
     48                                                           GtpVisibility::QueryList::iterator &projQueryIt, 
     49                                                           GtpVisibility::HierarchyNodeList *nodeList,  
     50                                                           InfoContainer<GtpVisibility::NodeInfo> *visibleNodes, 
     51                                                           bool relativeVisibility); 
     52 
     53        void CollectRelativeGeometryVisibilityForItemBuffer(GtpVisibility::QueryList::iterator &projQueryIt, 
     54                                                                                                GtpVisibility::GeometryList *geometryList,  
     55                                                                                                InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry); 
     56 
     57        void CollectRelativePatchVisibilityForItemBuffer( 
     58                                                                        GtpVisibility::QueryList::iterator &projQueryIt, 
     59                                                                        GtpVisibility::PatchList *patchList,  
     60                                                                        InfoContainer<GtpVisibility::PatchInfo> *visiblePatches); 
     61 
     62        void CollectPatchVisibility(GtpVisibility::QueryList::iterator &visQueryIt,  
     63                                                                GtpVisibility::QueryList::iterator &projQueryIt, 
     64                                                                GtpVisibility::PatchList *patchList,  
     65                                                                InfoContainer<GtpVisibility::PatchInfo> *visiblePatches, 
     66                                                                bool relativeVisibility); 
     67 
     68        void RemoveDuplicateNodes(InfoContainer<GtpVisibility::NodeInfo> *visibleNodes); 
     69        void RemoveDuplicateGeometry(InfoContainer<GtpVisibility::MeshInfo> *visibleMesh); 
     70 
     71        bool mUseItemBuffer; 
    3672}; 
    3773 
  • trunk/VUT/Ogre/include/OgrePlatformQueryManager.h

    r159 r171  
    1515public: 
    1616    /** Constructor taking a hierarchy interface as an argument. This allows to operate 
    17         onm different hierarchy types, while reusing the implementation of the query methods. 
     17            on different hierarchy types, while reusing the implementation of the query methods. 
    1818    */ 
    19         PlatformQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp); 
     19        PlatformQueryManager(PlatformHierarchyInterface *hierarchyInterface,  
     20                                 Viewport *vp, 
     21                                                 bool renderPatches); 
    2022     
    2123    /**  
     
    2830                                   InfoContainer<GtpVisibility::PatchInfo> *visiblePatches, 
    2931                               bool relativeVisibility = false); 
    30      
    31   /**  
    32       Ray shooting interface: finds an intersection with objects in the scene. 
    33  
    34       @param ray The given input ray (assuming the ray direction is normalized) 
    35  
    36       @param visibleMeshes List of meshes intersecting the ray 
    37  
    38       @param isGlobalLine If false only first intersection with opaque object is returned. 
    39       Otherwise all intersections of the ray with the scene are found. 
    40  
    41       @return true if there is any intersection.  
    42         */ 
    43     virtual bool 
    44     ShootRay(const Ray &ray, 
    45              std::vector<Mesh *> *visibleMeshes, 
    46              bool isGlobalLine = false 
    47              );   
     32   
     33        void ComputeCameraVisibility(const Camera &camera, 
     34                               InfoContainer<GtpVisibility::NodeInfo> *visibleNodes, 
     35                               InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry, 
     36                                   InfoContainer<GtpVisibility::PatchInfo> *visiblePatches, 
     37                               bool relativeVisibility = false); 
     38   
     39        bool ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine = false);   
    4840 
    4941        /** Sets a viewport for rendering. 
     
    5244         
    5345protected: 
     46 
     47        void InitItemBuffer(InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry, 
     48                                                InfoContainer<GtpVisibility::PatchInfo> *visiblePatches); 
     49 
    5450        Viewport *mViewport; 
    5551        bool mWasInitialised; 
     52        bool mRenderPatches; 
    5653}; 
    5754 
Note: See TracChangeset for help on using the changeset viewer.