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

RevLine 
[372]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);
[419]25        /** Returns Pvs.
[372]26        */
[419]27        const ViewCellPvs &GetPvs() const;
[372]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
[366]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.
[372]57        vector<BspLeaf *> mBspLeaves;
58};
59
60#endif
Note: See TracBrowser for help on using the repository browser.