VR-Forces 5.0.2 Developer's Guide
Home
Modules
Namespaces
Classes
Files
Examples
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 <terrainInterface/vrfPoint.h>
19
#include <vrfNavigation/navArea.h>
20
#include <vrfutil/sphere2.h>
21
#include <vrfmsgs/ifDebugDrawTerrain.h>
22
#include <features/featureGeometry.h>
23
#include <features/featureSet.h>
24
#include <features/feature.h>
25
#include <tbb/spin_mutex.h>
26
#include <tbb/atomic.h>
27
#include <boost/shared_ptr.hpp>
28
#include <string>
29
30
class DtSimulationServices;
31
class DtSimMessage;
32
class DtIfDebugDrawFeature;
33
37
class DT_DLL_vrfobjcore DtDebugDrawManager
38
{
39
public:
40
//CTOR
41
DtDebugDrawManager(DtSimulationServices* simManager);
42
//DTOR
43
virtual ~DtDebugDrawManager();
44
45
47
virtual void tick();
48
51
static void tickCallback(void* args);
52
54
static void messageConectorCallback(DtSimMessage* msg, void* usr);
55
57
static void messageTerrainCallback(DtSimMessage* msg, void* usr);
58
60
static void messageFeatureCallback(DtSimMessage* msg, void* usr);
61
63
static void messageNavMeshCallback(DtSimMessage* msg, void* usr);
64
66
68
virtual void sendDrawTerrainSkinRequest(const std::string& EntityId, const std::vector<DtTerrainTriangleStruct>& triangles,
69
DtIfDebugDrawTerrain::DtSkinColorMode skinDrawMode, float colorAlpha);
71
virtual void sendDeleteTerrainSkinRequest(const std::string& EntityId);
73
virtual void sendDrawTerrainNormalRequest(const std::string& EntityId, const std::vector<DtTerrainTriangleStruct>& triangles);
75
virtual void sendDeleteTerrainNormalRequest(const std::string& EntityId);
77
virtual void sendElevationTileRequest(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines, const std::vector<makVrf::DtColorPoint>& points);
79
virtual void sendDeleteElevationTileRequest(const std::string& EntityId);
81
virtual void sendProceduralTreeTileRequest(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines);
83
virtual void sendDeleteProceduralTreeTileRequest(const std::string& EntityId);
85
virtual void sendLastIntersections(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines, const std::vector<makVrf::DtColorPoint>& pointList);
87
virtual void sendDeleteLastIntersections(const std::string& EntityId, int refresh);
89
virtual void sendCollisionRequest(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines);
91
virtual void sendDeleteCollisionRequest(const std::string& EntityId);
93
virtual void sendQueryRequest(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines);
95
virtual void sendDeleteQueryRequest(const std::string& EntityId);
97
virtual void sendPageOutNodeBSRequest(const std::string& EntityId, const DtNodeBoundingList& nodeBoundingList);
99
virtual void sendDeletePageOutNodeBSRequest(const std::string& EntityId);
101
virtual void sendPageInNodeBSRequest(const std::string& EntityId, const DtNodeBoundingList& nodeBoundingList);
103
virtual void sendDeletePageInNodeBSRequest(const std::string& EntityId);
104
106
108
virtual void sendFeatureLinearRequest(const std::string& EntityId, const std::vector<makVrf::DtLine>& lines);
110
virtual void sendDeleteFeatureLinearRequest(const std::string& EntityId);
112
virtual void addLinearFeatures(MAKVRinTerra::DtFeatureGeometry& geom, float offset, bool& upVectorInit, DtVector& upVector, unsigned red, unsigned green, unsigned blue);
114
virtual void addPointFeatures(MAKVRinTerra::DtFeatureGeometry& geom, float offset, unsigned red, unsigned green, unsigned blue);
116
virtual void addArealFeatures(MAKVRinTerra::DtFeatureGeometry& geom, float offset, bool& upVectorInit, DtVector& upVector, unsigned red, unsigned green, unsigned blue);
117
119
121
virtual void offsetNavMesh(std::list<DtNavArea::DtNavTriangleInfo>& triangles, float offset);
123
virtual void sendDrawNavMeshRequest(const std::string& EntityId, const std::list<DtNavArea::DtNavTriangleInfo>& triangles,
124
bool enableColor, float alpha);
126
virtual void sendDeleteNavMeshRequest(const std::string& EntityId);
127
128
129
protected:
130
132
virtual bool init();
134
virtual void connect();
136
virtual void disconnect();
138
virtual void setIp(const std::string& serverAddress);
140
virtual void setPort(unsigned int port);
141
143
virtual void color(unsigned& rmix, unsigned& gmix, unsigned& bmix);
145
void newFilterArea(DtIfDebugDrawFeature* msgContent);
148
void addFeature(const MAKVRinTerra::DtFeature& feature);
150
virtual void checkForAddedFeature();
152
virtual void deleteLinearFeature();
154
virtual void sendFeatures(std::vector< boost::shared_ptr<MAKVRinTerra::DtFeature> >& newFeatures);
156
DtSimulationServices* simulationServices() const { return mySimulationServices; };
157
159
virtual DtTerrainProcessPolygonsBox boundingBox(DtVector topLeftCorner,
160
DtVector topRightCorner, DtVector bottomLeftCorner, DtVector bottomRightCorner);
161
163
virtual void handleConnection(makVrf::DtDebugDrawConnector* connection);
165
virtual void handleDisconnection(makVrf::DtDebugDrawConnector* connection);
167
virtual void handleTerrainAreaResponse(makVrf::DtBaseMessage* msg);
169
virtual void handleFeatureResponse(makVrf::DtBaseMessage* msg);
170
171
protected:
172
DtSimulationServices* mySimulationServices;
174
std::string myServerAddress;
176
unsigned int myPort;
178
bool myIsConnected;
180
unsigned int myVisId;
182
makVrf::DtDebugDrawConnector* myConnector;
184
boost::scoped_ptr<MAKVRinTerra::DtFeatureSet> myFeatureSet;
186
MAKVRinTerra::DtFeatureSet::DetachCallback myDetacher;
188
std::string myFeatureQuery;
190
float myFeatureOffset;
192
mutable tbb::spin_mutex myMutex;
194
std::vector<makVrf::DtLine> myFeaturePoint;
196
std::vector<makVrf::DtLine> myFeatureLinear;
198
std::vector<makVrf::DtLine> myFeatureAreal;
200
std::vector< boost::shared_ptr<MAKVRinTerra::DtFeature> > myPendingPageInFeatures;
202
bool myInit;
204
tbb::atomic<unsigned> myNumEmptyTick;
206
bool myFeatureToSend;
208
bool myCheckForAddedFeature;
210
bool myDrawPointFeature;
212
bool myDrawLinearFeature;
214
bool myDrawArealFeature;
215
};
Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (
www.mak.com
)