VR-Forces 4.10 Class Documentation
 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/terrainProcessPolygonsBox.h>
14 #include <boost/unordered_set.hpp>
15 
16 #include <tbb/spin_mutex.h>
17 
19 class DT_DLL_terrainInterface DtDebugDrawTerrainOutputInterface : public DtTriangleOutputInterface
20 {
21 public:
22 
24  DtDebugDrawTerrainOutputInterface(const std::string& name);
25 
27  virtual ~DtDebugDrawTerrainOutputInterface();
28 
30  virtual bool processTriangles() const;
31 
33  virtual void setprocessTriangles(bool value);
34 
36  virtual void processTriangle(const DtTerrainTriangleStruct& triangle);
37 
40  virtual bool processAABBs() const;
41 
43  virtual void setProcessAABBs(bool value);
44 
47  virtual bool processQueryAABBs() const;
48 
50  virtual void setProcessQueryAABBs(bool value);
51 
53  virtual void queryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
54 
58  virtual bool objectAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
59 
61  virtual bool processElevationTiles() const;
62 
64  virtual void setProcessElevationTiles(bool value);
65 
68  virtual bool elevationTile(const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
69 
73  virtual bool forcePaging() const;
74 
76  virtual void setForcePaging(bool value);
77 
80  virtual bool shouldExit() const;
81 
83  virtual unsigned triangleCount() const;
84 
86  typedef std::vector<DtTerrainTriangleStruct> terrainTriangleStructList;
87  virtual terrainTriangleStructList& triangleList();
88  virtual size_t numberOfTriangles() const;
89  virtual void clearTriangleList();
90 
92  typedef std::vector<makVrf::DtLine> terrainLineList;
93  virtual terrainLineList& lineList();
94  virtual size_t numberOfLines() const;
95  virtual void clearLineList();
96 
97 protected:
98 
100  virtual void addLine(const DtString& name, const DtVector& p1, const DtVector& p2,
101  unsigned red, unsigned green, unsigned blue);
102 
104  virtual bool processObjectAABB(unsigned index, const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
105 
107  virtual bool processElevationTile(unsigned index, const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
108 
110  void processQueryAABB(const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
111 
112  unsigned myTriangleCount;
113  unsigned myLineCount;
114  boost::unordered_set< boost::shared_ptr<makVrv::DtDynamicTerrainFeature> > myFeatures;
115  bool myStopDrawFlag;
116  bool myProcessAABBs;
117  bool myProcessQueryAABBs;
118  bool myProcessElevation;
119  bool myProcessTriangles;
120  bool myForcePaging;
122  terrainTriangleStructList myTriangleList;
124  terrainLineList myLineList;
125 
126  tbb::spin_mutex myProcessTriangleMutex;
127  tbb::spin_mutex myProcessLineMutex;
128 };

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)