18 #include <vrvCore/DtBaseConnection.h>
19 #include <vrvCore/DtAggregateStateListener.h>
20 #include <vrvCore/DtSharedModelSetSettings.h>
21 #include <vrvCore/DtVisualizerSet.h>
22 #include <vrvUtil/DtUnicode.h>
23 #include <vrvVrl/DtForceManager.h>
25 #include <matrix/vlVector.h>
26 #include <matrix/vlTaitBryan.h>
35 class DtVisualDefinitionSet;
36 class DtAgentManagerInterface;
72 virtual void visualize(
const makVrv::DtUnicode& type,
73 const makVrv::DtSharedModelSetSettings::ModelSetVisualizedMap& sets);
86 virtual void setOrientation(
const DtTaitBryan& orientation);
89 virtual void setOrigin(
const DtVector& v);
90 virtual void setOrigin(
const DtGeodeticCoord& v);
93 virtual void setOriginAndSeaLevel(
const DtVector& v);
94 virtual void setOriginAndSeaLevel(
const DtGeodeticCoord& v);
97 virtual void setForceId(
int);
99 virtual bool hasForceChange()
const;
101 virtual makVrv::DtBaseConnection& baseConnection()
const;
104 void setHatLineVisible(
bool visible );
107 virtual void setVisible(
bool b);
110 virtual void setPickable(
bool b);
113 virtual void setSelected(
bool b);
116 virtual void setLabel(
const std::string& label);
117 virtual std::string label()
const;
118 virtual bool hasLabelChange()
const;
121 virtual void setOverlayName(
const std::string&);
122 virtual std::string overlayName()
const;
125 virtual void setIndicatorVisible(
bool b);
128 virtual Dt3dBoundingVolume boundingVolume()
const;
130 virtual void setUniqueID(makVrv::DtUniqueID);
131 makVrv::DtUniqueID uniqueID()
const;
134 virtual void setWidgetEventsEnabled(
bool b);
137 virtual void setGroundClamping(
bool b);
140 virtual void setSymbolDecorationOffset(
double x,
double y);
143 virtual void setAutoEnableGroundClamping(
bool b);
146 virtual void realizeFacades();
149 virtual void unrealizeFacades();
153 virtual bool hasProjectedModel(
int modelSet)
const;
158 virtual void setElementDefinition(
const makVrv::DtUnicode& elementName);
161 virtual const makVrv::DtUnicode& elementDefinition()
const;
165 virtual void setElementDefinition(
const DtEntityType&);
168 void setSmoothingEnabled(
bool enabled);
171 void setMotionModel(
const std::string&);
174 virtual void setHeadingIndicatorVisible(
bool);
177 virtual void setHeadingIndicatorSize(
float l);
180 virtual bool isDiGuy()
const {
return myIsDiGuy; };
185 virtual makVrv::DtUniqueID uniqueIDForModelSet(
int set)
const;
188 virtual void setEffectsVisible(
bool);
191 virtual bool shouldEnableTrailEffects()
const;
194 virtual void enableTrailEffect(
bool);
198 virtual void setAltitudeAboveTerrain(
double d);
202 virtual void setAltitudeAboveSeaLevel(
double d);
205 template <
typename T>
bool hasVisualizer(makVrv::DtVisualizerSet* s)
const
207 std::vector<T> visualizers;
208 s->findVisualizersByDynamicCast(visualizers);
210 return (visualizers.size() != 0);
214 virtual void setIconScale(
float);
215 template <
typename T>
void setIconScale(makVrv::DtVisualizerSet* s,
float scale)
217 std::vector<T> visualizers;
218 s->findVisualizersByDynamicCast(visualizers);
219 typename std::vector<T>::iterator i = visualizers.begin();
220 typename std::vector<T>::iterator e = visualizers.end();
225 (*i)->setIconScale(scale);
230 virtual void destroySchema(
const makVrv::DtVisualizerSchema&);
233 virtual void setEntityExtents(
const DtVector& volume,
const DtVector& offset);
236 virtual bool hasBoundingVolumes()
const;
239 virtual void setEntityExtentsVisible(
bool,
int modelSet = -1);
240 template <
typename T>
void setEntityExtentsVisible(makVrv::DtVisualizerSet* s,
bool b,
int modelSet = -1)
242 std::vector<T> visualizers;
243 s->findVisualizersByDynamicCast(visualizers);
244 typename std::vector<T>::iterator i = visualizers.begin();
245 typename std::vector<T>::iterator e = visualizers.end();
258 template <
typename T>
void setScale(makVrv::DtVisualizerSet* s,
float scale)
260 std::vector<T> visualizers;
261 s->findVisualizersByDynamicCast(visualizers);
262 typename std::vector<T>::iterator i = visualizers.begin();
263 typename std::vector<T>::iterator e = visualizers.end();
268 (*i)->setScale(scale);
273 template <
typename T>
void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
275 std::vector<T> visualizers;
276 s->findVisualizersByDynamicCast(visualizers);
277 typename std::vector<T>::iterator i = visualizers.begin();
278 typename std::vector<T>::iterator e = visualizers.end();
283 (*i)->setForceColor(color.R, color.G, color.B, color.A);
288 template <
typename T>
void setColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
290 std::vector<T> visualizers;
291 s->findVisualizersByDynamicCast(visualizers);
292 typename std::vector<T>::iterator i = visualizers.begin();
293 typename std::vector<T>::iterator e = visualizers.end();
298 (*i)->setColor(color.R, color.G, color.B, color.A);
304 virtual std::string diGuyCharacter()
const;
307 virtual void setAppearance(
int);
308 virtual void setLifeFormState(
unsigned int,
bool paused =
false);
309 virtual void setCharacterAction(
const std::string& animation,
bool paused =
false);
310 virtual void setCharacterModel(
const std::string& animation);
311 virtual void setCharacterAppearance(
const std::string& animation);
314 virtual void setDisplayName(
const std::string& displayName );
316 virtual void setSymbolDecorationsVisible(
bool);
318 virtual bool isAggregate()
const
320 return myIsAggregate;