source: GTP/trunk/Lib/Vis/Preprocessing/src/Exporter.h @ 1404

Revision 1404, 3.8 KB checked in by mattausch, 18 years ago (diff)

debugging after merge

RevLine 
[162]1#ifndef __EXPORTER_H
2#define __EXPORTER_H
3
4#include <string>
5#include <vector>
6using namespace std;
7
[860]8
[863]9
[176]10#include "Material.h"
[261]11#include "Containers.h"
[386]12#include "VssRay.h"
[176]13
[863]14namespace GtpVisibilityPreprocessor {
15
[162]16class KdTree;
[242]17class BspTree;
[162]18class SceneGraphNode;
19class Ray;
20class AxisAlignedBox3;
[176]21class Intersectable;
[360]22class BspLeaf;
[362]23class Polygon3;
[434]24class VssTree;
[448]25class VspBspTree;
[446]26class RssTree;
[486]27class Mesh;
[535]28class Beam;
[1106]29class OspTree;
[1139]30class KdIntersectable;
[1287]31class BvHierarchy;
[1344]32class TransformedMeshInstance;
[162]33
[1344]34
[162]35class Exporter
36{
37protected:
38  string mFilename;
[191]39  bool mWireframe;
[176]40  bool mUseForcedMaterial;
41  Material mForcedMaterial;
[162]42
[191]43  bool mExportRayDensity;
44 
[162]45public:
46 
[176]47  Exporter(const string filename):mFilename(filename),
[191]48                                  mWireframe(false),
49                                  mUseForcedMaterial(false),
50                                  mExportRayDensity(false)
[162]51  {
52  }
[170]53  virtual ~Exporter() {}
[162]54 
55  virtual bool ExportScene(SceneGraphNode *node) = 0;
56
57  virtual bool
58  ExportBox(const AxisAlignedBox3 &box) = 0;
59
60  virtual bool
[1197]61  ExportKdTree(const KdTree &tree, const bool exportGeometry = false) = 0;
[162]62
[438]63  virtual bool
[434]64  ExportVssTree(const VssTree &tree) = 0;
65
[162]66  virtual bool
[438]67  ExportVssTree2(const VssTree &tree,
68                                 const Vector3 direction
69                                 ) = 0;
70
71  virtual bool
[242]72  ExportBspTree(const BspTree &tree) = 0;
73
[1106]74  virtual bool
[1121]75  ExportOspTree(const OspTree &tree, const int maxPvs);// = 0;
[1106]76
[386]77//    virtual bool
78//    ExportRays(const vector<Ray> &rays,
79//           const float length=1000,
80//           const RgbColor &color = RgbColor(1,1,1)
81//           ) = 0;
[176]82 
[349]83  virtual bool
84  ExportRays(const RayContainer &rays,
[466]85                         const float length=1000,
86                         const RgbColor &color = RgbColor(1,1,1)
87                         ) = 0;
88 
89  virtual bool
[386]90  ExportRays(const VssRayContainer &rays,
[466]91                         const RgbColor &color = RgbColor(1,1,1)
92                         ) = 0;
[1112]93
94  virtual bool
95  ExportRaySets(const vector<VssRayContainer> &rays,
96                                const RgbColor &color) = 0;
97
[261]98  virtual void
[1344]99  ExportViewCells(const ViewCellContainer &viewCells);
100 
[312]101  virtual void
102  ExportViewCell(ViewCell *viewCell) = 0;
[1344]103
[162]104  virtual void
[1344]105  ExportIntersectable(Intersectable *object);
[176]106
[313]107  virtual void
108  ExportBspSplitPlanes(const BspTree &tree) = 0;
109  virtual void
[383]110  ExportBspSplits(const BspTree &tree, const bool exportDepth = false) = 0;
[448]111
[360]112  virtual void
113  ExportLeavesGeometry(const BspTree &tree, const vector<BspLeaf *> &leaves) = 0;
[448]114 
[362]115  virtual void
[448]116  ExportBspSplits(const VspBspTree &tree, const bool exportDepth = false) = 0;
117
118  virtual void
[362]119  ExportPolygons(const PolygonContainer &polys) = 0;
120
[373]121  virtual void
[396]122  ExportBspLeaves(const BspTree &tree, const int maxPvs = 0) = 0;
[373]123
[440]124  virtual void
[1404]125  ExportGeometry(const ObjectContainer &objects, const bool exportSingleMesh = false);
[440]126
[486]127  virtual void
128  ExportMesh(Mesh *mesh) = 0;
129
[448]130  virtual bool
131  ExportRssTree2(const RssTree &tree,
132                                 const Vector3 direction) = 0;
133
[535]134  virtual void ExportBeam(const Beam &beam, const AxisAlignedBox3 &box) = 0;
135
[191]136  void SetExportRayDensity(const bool d) { mExportRayDensity = d; }
137 
138  void SetWireframe() { mWireframe = true; }
139  void SetFilled() { mWireframe = false; }
[162]140
[176]141  void SetForcedMaterial(const Material &m) {
142    mForcedMaterial = m;
143    mUseForcedMaterial = true;
144  }
145  void ResetForcedMaterial() {
146    mUseForcedMaterial = false;
147  }
148   
[162]149  static Exporter *
150  GetExporter(const string filename);
151
[459]152  virtual void ExportViewpoint(const Vector3 &point, const Vector3 &direction) = 0;
[1139]153
154  void ExportKdIntersectable(const KdIntersectable &kdObj);
[1287]155  bool ExportBvHierarchy(const BvHierarchy &bvHierarchy, const int maxPvs);
[1344]156
157  virtual void ExportMeshInstance(MeshInstance *mi);
158
159  virtual void
160  ExportTransformedMeshInstance(TransformedMeshInstance *mi);
161
162  virtual void ExportPolygon(Polygon3 *poly) = 0;
[162]163};
164 
[860]165}
[162]166
167#endif
Note: See TracBrowser for help on using the repository browser.