1 | #ifndef _RandomViewCellsHandler_H__
|
---|
2 | #define _RandomViewCellsHandler_H__
|
---|
3 |
|
---|
4 | #include "Containers.h"
|
---|
5 | #include "SimpleRay.h"
|
---|
6 |
|
---|
7 |
|
---|
8 | namespace GtpVisibilityPreprocessor {
|
---|
9 |
|
---|
10 | class ViewCell;
|
---|
11 | class ViewCellsManager;
|
---|
12 |
|
---|
13 | typedef pair<ViewCell *, SimpleRayContainer> ViewCellPoints;
|
---|
14 | typedef vector<ViewCellPoints *> ViewCellPointsList;
|
---|
15 |
|
---|
16 |
|
---|
17 | /** This class functions define a system to generate, export and import a list
|
---|
18 | of random view cells and valid view points.
|
---|
19 | */
|
---|
20 |
|
---|
21 | class RandomViewCellsHandler
|
---|
22 | {
|
---|
23 | //friend class ViewCellsManager;
|
---|
24 |
|
---|
25 | public:
|
---|
26 |
|
---|
27 | RandomViewCellsHandler(ViewCellsManager *vcManager);
|
---|
28 | ~RandomViewCellsHandler();
|
---|
29 |
|
---|
30 | /** Exports list of random view cells.
|
---|
31 | */
|
---|
32 | bool ExportRandomViewCells(const string &filename);
|
---|
33 | /** Returns the stored list of view cells and view points.
|
---|
34 | */
|
---|
35 | ViewCellPointsList *GetViewCellPointsList();
|
---|
36 | /** Load list of view cells using the current list of view points.
|
---|
37 | */
|
---|
38 | bool ImportViewCellsList(const string &filename);
|
---|
39 |
|
---|
40 |
|
---|
41 | protected:
|
---|
42 |
|
---|
43 | bool GenerateRandomViewCells(ViewCellContainer &viewCells,
|
---|
44 | const int numViewCells);
|
---|
45 |
|
---|
46 | bool GenerateRandomViewCells(ViewCellPointsList &viewCells,
|
---|
47 | const int nViewCells,
|
---|
48 | const int nViewPoints);
|
---|
49 |
|
---|
50 |
|
---|
51 | /** Generates a list of random view points in a view cells.
|
---|
52 | @param viewCell the view cells
|
---|
53 | @param numViewPoints the number of view points
|
---|
54 | @param viewPoints returns view points in this container.
|
---|
55 | */
|
---|
56 | bool GenerateViewPoints(ViewCell *viewCell,
|
---|
57 | const int numViewPoints,
|
---|
58 | SimpleRayContainer &viewPoints);
|
---|
59 |
|
---|
60 | /** Load list of view cells and view points.
|
---|
61 | */
|
---|
62 | bool ImportViewCellsList(const string &filename,
|
---|
63 | vector<ViewCellPoints *> &viewCells);
|
---|
64 |
|
---|
65 | /** Exports list of random view cells and valid view points.
|
---|
66 | */
|
---|
67 | bool ExportRandomViewCells(const string &filename,
|
---|
68 | const vector<ViewCellPoints *> &viewCells);
|
---|
69 |
|
---|
70 | /** Generates a new valid random view point.
|
---|
71 | */
|
---|
72 | bool GenerateViewPoint(ViewCell *viewCell, SimpleRay &ray);
|
---|
73 |
|
---|
74 | /** Returns true if this view cell is in valid view space.
|
---|
75 | */
|
---|
76 | bool IsValidViewSpace(ViewCell *vc);
|
---|
77 |
|
---|
78 |
|
---|
79 | protected:
|
---|
80 |
|
---|
81 | ViewCellsManager *mViewCellsManager;
|
---|
82 |
|
---|
83 | ViewCellPointsList mViewCellPointsList;
|
---|
84 | };
|
---|
85 |
|
---|
86 | }
|
---|
87 |
|
---|
88 |
|
---|
89 | #endif
|
---|