VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
debugDrawTerrainOutputInterface.h
Go to the documentation of this file.
1 /******************************************************************************
5 
9 #pragma once
10 
11 #include "terrainInterface/terrainInterfaceDefines.h"
12 #include "terrainInterface/vrfLine.h"
13 #include "terrainInterface/vrfPoint.h"
14 #include <terrainInterface/terrainProcessPolygonsBox.h>
15 #include <boost/unordered_set.hpp>
16 
17 #include <tbb/spin_mutex.h>
18 
20 class DT_DLL_terrainInterface DtDebugDrawTerrainOutputInterface : public DtTriangleOutputInterface
21 {
22 public:
23 
25  DtDebugDrawTerrainOutputInterface(const std::string& name);
26 
28  virtual ~DtDebugDrawTerrainOutputInterface();
29 
31  virtual bool processTriangles() const;
32 
34  virtual void setprocessTriangles(bool value);
35 
37  virtual void processTriangle(const DtTerrainTriangleStruct& triangle);
38 
41  virtual bool processAABBs() const;
42 
44  virtual void setProcessAABBs(bool value);
45 
48  virtual bool processQueryAABBs() const;
49 
51  virtual void setProcessQueryAABBs(bool value);
52 
54  virtual void queryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
55 
59  virtual bool objectAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
60 
62  virtual bool processElevationTiles() const;
63 
65  virtual void setProcessElevationTiles(bool value);
66 
69  virtual bool elevationTile(const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
70 
72  virtual bool processElevationPosts() const;
73 
75  virtual void setElevationPosts(bool value);
76 
79  virtual bool elevationPost(std::vector<DtPoint>& postArray);
80 
84  virtual bool forcePaging() const;
85 
87  virtual void setForcePaging(bool value);
88 
91  virtual bool shouldExit() const;
92 
94  virtual unsigned triangleCount() const;
95 
97  typedef std::vector<DtTerrainTriangleStruct> terrainTriangleStructList;
98  virtual terrainTriangleStructList& triangleList();
99  virtual size_t numberOfTriangles() const;
100  virtual void clearTriangleList();
101 
103  typedef std::vector<makVrf::DtLine> terrainLineList;
104  virtual terrainLineList& lineList();
105  virtual size_t numberOfLines() const;
106  virtual void clearLineList();
107 
109  typedef std::vector<makVrf::DtColorPoint> terrainPointList;
110  virtual terrainPointList& pointList();
111  virtual size_t numberOfPoints() const;
112  virtual void clearPointList();
113 
114 protected:
115 
117  virtual void addLine(const DtString& name, const DtVector& p1, const DtVector& p2,
118  unsigned red, unsigned green, unsigned blue);
119 
121  virtual bool processObjectAABB(unsigned index, const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
122 
124  virtual bool processElevationTile(unsigned index, const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
125 
127  void processQueryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
128 
129  unsigned myTriangleCount;
130  unsigned myLineCount;
131  boost::unordered_set< boost::shared_ptr<makVrv::DtDynamicTerrainFeature> > myFeatures;
132  bool myStopDrawFlag;
133  bool myProcessAABBs;
134  bool myProcessQueryAABBs;
135  bool myProcessElevation;
136  bool myProcessElevationPost;
137  bool myProcessTriangles;
138  bool myForcePaging;
140  terrainTriangleStructList myTriangleList;
142  terrainLineList myLineList;
144  terrainPointList myPointList;
145 
146  tbb::spin_mutex myProcessTriangleMutex;
147  tbb::spin_mutex myProcessLineMutex;
148  tbb::spin_mutex myProcessPointMutex;
149 };

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)