source: trunk/VUT/GtpVisibility/include/VisibilityInfo.h @ 150

Revision 150, 1.9 KB checked in by mattausch, 19 years ago (diff)

added item buffer functionality

RevLine 
[65]1#ifndef _VisibilityInfo_H__
2#define _VisibilityInfo_H__
3
4#include <vector>
5
6#include "VisibilityMesh.h"
7#include "HierarchyInterface.h"
8
9namespace GtpVisibility {
10 
[145]11/** Class storing visibility information.
[71]12*/
[145]13class VisibilityInfo
[71]14{
15public:
[145]16        VisibilityInfo(const int visiblePixels, const int projectedPixels);
[65]17
[145]18        int GetVisiblePixels() const;
19        int GetProjectedPixels() const;
[130]20
[145]21        void SetVisiblePixels(int vis);
22        void SetProjectedPixels(int vis);
23       
24        /** Computes ratio of visible to projected pixels. */
25        float ComputeRelativeVisibility();
[143]26
[145]27        /** Adds visibility to current visibility information.
28        */
29        void AddVisibility(const VisibilityInfo &info);
[150]30        /** Adds visibility to current visibility information.
31        */
32        void AddVisibility(const int visiblePixels, const int vrojectedPixels);
[143]33
[145]34protected:
[150]35        /** number of visible pixels.
36        */
[145]37    int mVisiblePixels;
[150]38        /** number of projected pixels
39        */
[145]40        int mProjectedPixels;
41};
42/** Class storing the visibility information of a hierarchy node.
43*/
44class NodeInfo: public VisibilityInfo
45{
46public:
47    NodeInfo(HierarchyNode *node, const int visiblePixels, const int projectedPixels);
48
49        void SetNode(HierarchyNode *node);
50        HierarchyNode *GetNode() const;
[143]51        //bool operator<(const NodeInfo& rhs) const {return mNode < rhs.mNode;}
52
[71]53protected:
[141]54
[145]55    /** Pointer to the hierarchy nnode.
56        */
[65]57    HierarchyNode *mNode;
[71]58};
[65]59 
[71]60/** Class storing the visibility information of a mesh.
61*/
[145]62class MeshInfo: public VisibilityInfo
[71]63{
64public:
[145]65        MeshInfo(Mesh *mesh, const int visiblePixels, const int projectedPixels);
[65]66
[145]67        Mesh *GetMesh() const;
68        void SetMesh(Mesh *mesh);
[130]69
[145]70        //bool operator<(const MeshInfo& rhs) const {return mMesh < rhs.mMesh;}
[141]71        //bool operator==(const MeshInfo& rhs) const {return mMesh == rhs.mMesh;}
72       
[71]73protected:
[141]74
[71]75    /** Pointer to the mesh.
76        */
[65]77    Mesh *mMesh;
[71]78};
[65]79 
[71]80//TODO: this define shall be replaced by template typedef
[143]81#define InfoContainer std::vector
82//#define InfoContainer std::set
[65]83};
84
85
86#endif
Note: See TracBrowser for help on using the repository browser.