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 
10 #pragma once
11 
13 #include <terrainInterface/terrainInterfaceDefines.h>
14 #include <terrainInterface/terrainProcessPolygonsBox.h>
15 #include <terrainInterface/vrfLine.h>
16 #include <terrainInterface/vrfPoint.h>
17 
19 #include <tbb/spin_mutex.h>
20 
22 #include <unordered_set>
23 
24 
26 class DT_DLL_terrainInterface DtDebugDrawTerrainOutputInterface : public DtTriangleOutputInterface
27 {
28 public:
29 
31  DtDebugDrawTerrainOutputInterface(const std::string& name);
32 
34  virtual ~DtDebugDrawTerrainOutputInterface();
35 
37  virtual bool processTriangles() const override;
38 
40  virtual void setprocessTriangles(bool value);
41 
43  virtual void processTriangle(const DtTerrainTriangleStruct& triangle) override;
44 
47  virtual bool processAABBs() const override;
48 
50  virtual void setProcessAABBs(bool value);
51 
54  virtual bool processQueryAABBs() const;
55 
57  virtual void setProcessQueryAABBs(bool value);
58 
60  virtual void queryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal) override;
61 
65  virtual bool objectAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal) override;
66 
68  virtual bool processElevationTiles() const override;
69 
71  virtual void setProcessElevationTiles(bool value);
72 
75  virtual bool elevationTile(const DtVector& p1, const DtVector& p2, const DtVector& p3, const DtVector& p4) override;
76 
78  virtual bool processElevationPosts() const override;
79 
81  virtual void setElevationPosts(bool value);
82 
85  virtual bool elevationPost(std::vector<DtPoint>& postArray) override;
86 
90  virtual bool forcePaging() const override;
91 
93  virtual void setForcePaging(bool value);
94 
97  virtual bool shouldExit() const override;
98 
100  virtual unsigned triangleCount() const;
101 
103  typedef std::vector<DtTerrainTriangleStruct> terrainTriangleStructList;
104  virtual terrainTriangleStructList& triangleList();
105  virtual size_t numberOfTriangles() const;
106  virtual void clearTriangleList();
107 
109  typedef std::vector<makVrf::DtLine> terrainLineList;
110  virtual terrainLineList& lineList();
111  virtual size_t numberOfLines() const;
112  virtual void clearLineList();
113 
115  typedef std::vector<makVrf::DtColorPoint> terrainPointList;
116  virtual terrainPointList& pointList();
117  virtual size_t numberOfPoints() const;
118  virtual void clearPointList();
119 
120 protected:
121 
123  virtual void addLine(const DtString& name, const DtVector& p1, const DtVector& p2,
124  unsigned red, unsigned green, unsigned blue);
125 
127  virtual bool processObjectAABB(unsigned index, const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
128 
130  virtual bool processElevationTile(unsigned index, const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
131 
133  void processQueryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
134 
135  unsigned myTriangleCount;
136  unsigned myLineCount;
137  std::unordered_set< std::shared_ptr<makVrv::DtDynamicTerrainFeature> > myFeatures;
138  bool myStopDrawFlag;
139  bool myProcessAABBs;
140  bool myProcessQueryAABBs;
141  bool myProcessElevation;
142  bool myProcessElevationPost;
143  bool myProcessTriangles;
144  bool myForcePaging;
146  terrainTriangleStructList myTriangleList;
148  terrainLineList myLineList;
150  terrainPointList myPointList;
151 
152  tbb::spin_mutex myProcessTriangleMutex;
153  tbb::spin_mutex myProcessLineMutex;
154  tbb::spin_mutex myProcessPointMutex;
155 };

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)