VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
debugDrawManager.h
Go to the documentation of this file.
1 /******************************************************************************
5 
10 #pragma once
11 
12 #include <vrfobjcore/vrfobjcoreDefines.h>
13 
14 #include <terrainInterface/terrainProcessPolygonsBox.h>
15 #include <vrfDebugDrawConnector/vrfMessage.h>
16 #include <vrfDebugDrawConnector/vrfDebugDrawConnector.h>
17 #include <terrainInterface/vrfLine.h>
18 #include <vrfNavigation/navArea.h>
19 #include <vrfutil/sphere2.h>
20 #include <vrfmsgs/ifDebugDrawTerrain.h>
21 #include <features/featureGeometry.h>
22 #include <features/featureSet.h>
23 #include <features/feature.h>
24 #include <tbb/spin_mutex.h>
25 #include <tbb/atomic.h>
26 #include <boost/shared_ptr.hpp>
27 #include <string>
28 
29 class DtSimManager;
30 class DtSimMessage;
31 class DtIfDebugDrawFeature;
32 
36 class DT_DLL_vrfobjcore DtDebugDrawManager
37 {
38 public:
39  //CTOR
40  DtDebugDrawManager(DtSimManager* simManager);
41  //DTOR
42  virtual ~DtDebugDrawManager();
43 
44 
46  virtual void tick();
47 
50  static void tickCallback(void* args);
51 
53  static void messageConectorCallback(DtSimMessage* msg, void* usr);
54 
56  static void messageTerrainCallback(DtSimMessage* msg, void* usr);
57 
59  static void messageFeatureCallback(DtSimMessage* msg, void* usr);
60 
62  static void messageNavMeshCallback(DtSimMessage* msg, void* usr);
63 
65 
67  virtual void sendDrawTerrainSkinRequest(const std::string& EntityId, std::vector<DtTerrainTriangleStruct>& triangles,
68  DtIfDebugDrawTerrain::DtSkinColorMode skinDrawMode, float colorAlpha);
70  virtual void sendDeleteTerrainSkinRequest(const std::string& EntityId);
72  virtual void sendDrawTerrainNormalRequest(const std::string& EntityId, std::vector<DtTerrainTriangleStruct>& triangles);
74  virtual void sendDeleteTerrainNormalRequest(const std::string& EntityId);
76  virtual void sendElevationTileRequest(const std::string& EntityId, std::vector<makVrf::DtLine>& lines);
78  virtual void sendDeleteElevationTileRequest(const std::string& EntityId);
80  virtual void sendProceduralTreeTileRequest(const std::string& EntityId, std::vector<makVrf::DtLine>& lines);
82  virtual void sendDeleteProceduralTreeTileRequest(const std::string& EntityId);
84  virtual void sendCollisionRequest(const std::string& EntityId, std::vector<makVrf::DtLine>& lines);
86  virtual void sendDeleteCollisionRequest(const std::string& EntityId);
88  virtual void sendQueryRequest(const std::string& EntityId, std::vector<makVrf::DtLine>& lines);
90  virtual void sendDeleteQueryRequest(const std::string& EntityId);
92  virtual void sendPageOutNodeBSRequest(const std::string& EntityId, DtNodeBoundingList& nodeBoundingList);
94  virtual void sendDeletePageOutNodeBSRequest(const std::string& EntityId);
96  virtual void sendPageInNodeBSRequest(const std::string& EntityId, DtNodeBoundingList& nodeBoundingList);
98  virtual void sendDeletePageInNodeBSRequest(const std::string& EntityId);
99 
101 
103  virtual void sendFeatureLinearRequest(const std::string& EntityId, std::vector<makVrf::DtLine>& lines);
105  virtual void sendDeleteFeatureLinearRequest(const std::string& EntityId);
107  virtual void addLinearFeatures(MAKVRinTerra::DtFeatureGeometry& geom, float offset, bool addToAreal, bool& upVectorInit, DtVector& upVector, unsigned red, unsigned green, unsigned blue);
109  virtual void addPointFeatures(MAKVRinTerra::DtFeatureGeometry& geom, float offset, unsigned red, unsigned green, unsigned blue);
110 
112 
114  virtual void offsetNavMesh(std::list<DtNavArea::DtNavTriangleInfo>& triangles, float offset);
116  virtual void sendDrawNavMeshRequest(const std::string& EntityId, std::list<DtNavArea::DtNavTriangleInfo>& triangles,
117  bool enableColor, float alpha);
119  virtual void sendDeleteNavMeshRequest(const std::string& EntityId);
120 
121 
122 protected:
123 
125  virtual bool init();
127  virtual void connect();
129  virtual void disconnect();
131  virtual void setIp(const std::string& serverAddress);
133  virtual void setPort(unsigned int port);
134 
136  virtual void color(unsigned& rmix, unsigned& gmix, unsigned& bmix);
138  void newFilterArea(DtIfDebugDrawFeature* msgContent);
141  void addFeature(const MAKVRinTerra::DtFeature& feature);
143  virtual void checkForAddedFeature();
145  virtual void deleteLinearFeature();
147  virtual void sendFeatures(std::vector< boost::shared_ptr<MAKVRinTerra::DtFeature> >& newFeatures);
149  virtual DtSimManager* simManager();
150 
152  virtual DtTerrainProcessPolygonsBox boundingBox(DtVector topLeftCorner,
153  DtVector topRightCorner, DtVector bottomLeftCorner, DtVector bottomRightCorner);
154 
156  virtual void handleConnection(makVrf::DtDebugDrawConnector* connection);
158  virtual void handleDisconnection(makVrf::DtDebugDrawConnector* connection);
160  virtual void handleTerrainAreaResponse(makVrf::DtBaseMessage* msg);
162  virtual void handleFeatureResponse(makVrf::DtBaseMessage* msg);
164  DtSimManager* mySimManager;
166  std::string myServerAddress;
168  unsigned int myPort;
170  bool myIsConnected;
172  unsigned int myVisId;
174  makVrf::DtDebugDrawConnector* myConnector;
176  boost::scoped_ptr<MAKVRinTerra::DtFeatureSet> myFeatureSet;
178  MAKVRinTerra::DtFeatureSet::DetachCallback myDetacher;
180  std::string myFeatureQuery;
182  float myFeatureOffset;
184  mutable tbb::spin_mutex myMutex;
186  std::vector<makVrf::DtLine> myFeaturePoint;
188  std::vector<makVrf::DtLine> myFeatureLinear;
190  std::vector<makVrf::DtLine> myFeatureAreal;
192  std::vector< boost::shared_ptr<MAKVRinTerra::DtFeature> > myPendingPageInFeatures;
194  bool myInit;
196  tbb::atomic<unsigned> myNumEmptyTick;
198  bool myFeatureToSend;
200  bool myCheckForAddedFeature;
202  bool myDrawPointFeature;
204  bool myDrawLinearFeature;
206  bool myDrawArealFeature;
207 };

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)