source: trunk/VUT/GtpVisibilityPreprocessor/src/ViewCell.h @ 439

Revision 439, 1.1 KB checked in by mattausch, 19 years ago (diff)

added vview cell manager functionality

Line 
1#ifndef _ViewCell_H__
2#define _ViewCell_H__
3
4#include "Mesh.h"
5#include "Containers.h"
6#include "Ray.h"
7
8//namespace GtpVisibilityPreprocessor {
9 
10class BspInterior;
11class BspPvs;
12struct Triangle3;
13class BspLeaf;
14
15/**
16        View cell with an optional mesh representation
17*/
18class ViewCell: public MeshInstance
19{
20public:
21        ViewCell();
22        /** Constructor taking a mesh representing the shape of the viewcell.
23        */
24        ViewCell(Mesh *mesh);
25        /** Returns Pvs.
26        */
27        const ViewCellPvs &GetPvs() const;
28        ViewCellPvs &GetPvs();
29
30        int Type() const;
31       
32        /** Adds a passing ray to the passing ray container.
33        */
34        void AddPassingRay(const Ray &ray, const int contributions);   
35
36
37        /// Ray set description of the rays passing through this node. 
38        PassingRaySet mPassingRays;
39
40        /// Rays piercing this view cell.
41        RayContainer mPiercingRays;
42
43protected:
44
45        /// the potentially visible objects
46        ViewCellPvs mPvs;
47};
48
49class BspViewCell: public ViewCell
50{
51public:
52        BspViewCell(): mBspLeaves(0) {}
53        BspViewCell(Mesh *mesh):
54        ViewCell(mesh), mBspLeaves(0) {}
55
56        /// Leaves which hold this view cell.
57        vector<BspLeaf *> mBspLeaves;
58};
59
60#endif
Note: See TracBrowser for help on using the repository browser.