VR-Forces 4.10 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrfobjcore
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 Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (
www.mak.com
)