25 #include <matrix/vlVector.h>
26 #include <matrix/vlTaitBryan.h>
35 class DtVisualDefinitionSet;
36 class DtAgentManagerInterface;
38 class DtStatePropertyDecorationVisualizer;
39 class DtBaseConnection;
44 class DtBoundingVolumeSupportPointCalculator;
88 virtual bool isVisualized()
const;
91 virtual void setupNodeMaskFlags()
const;
94 virtual void setSetupNodeMaskFlags(
bool);
99 virtual std::map<int, std::vector<int> > modelStates(
int modelSet)
const;
103 virtual std::vector<int> artParts(
int modelSet)
const;
106 virtual void enableArtPart(
int modelSet,
int artPart,
bool enable,
const DtVector& translationRate = DtVector::zero(),
107 const DtVector& rotationalRate = DtVector::zero());
110 virtual void getArtPartInformation(
int modelSet,
int artPart,
DtVector& minRotation,
DtVector& maxRotation,
DtVector& minTranslation,
DtVector& maxTranslation);
114 virtual void setModelState(
int modelSet,
int,
int);
117 virtual void setTopographicOrientation(
const DtTaitBryan& orientation);
119 virtual void setTopographicOffsetFromPrincipal(
const DtVector&,
bool resetLocation =
true);
122 virtual void setLocalOrientation(
const DtTaitBryan& orientation);
125 virtual void setOrigin(
const DtVector& v);
126 virtual void setOrigin(
const DtGeodeticCoord& v);
129 virtual void setOriginAndSeaLevel(
const DtVector& v);
130 virtual void setOriginAndSeaLevel(
const DtGeodeticCoord& v);
132 virtual bool hasOccupant()
const;
134 virtual void setDropShadow(
bool b);
135 virtual void setAltitudeOffsetFromPrincipal(
double offset,
bool resetLocation =
true );
138 virtual void setForceId(
int);
140 virtual bool hasForceChange()
const;
143 virtual double initialAltitudeAboveTerrain()
const;
148 void setHatLineVisible(
bool visible );
151 void setTrackHistoryVisible(
bool visible );
154 virtual void setVisible(
bool b,
bool updateOffsets =
true);
155 virtual void setVisible(
bool,
int context);
156 virtual bool isVisible()
const;
159 virtual void setUseHighestTerrainLod(
bool);
162 virtual void setPickable(
bool b);
165 virtual void setSelected(
bool b);
168 virtual void setLabel(
const std::string& label);
169 virtual std::string label()
const;
170 virtual bool hasLabelChange()
const;
173 virtual void setExtendedLabels(
const std::map<int, DtString>& labels);
174 virtual std::map<int, DtString> extendedLabels()
const;
175 virtual bool hasExtendedLabelsChange()
const;
178 virtual void setOverlayName(
const std::string&);
179 virtual std::string overlayName()
const;
182 virtual void setIndicatorVisible(
bool b);
185 virtual Dt3dBoundingVolume boundingVolume(
int modelSet = 0)
const;
192 virtual void detach();
196 virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs()
const;
199 virtual void setMarkingDecal(
const std::string& annotation,
const std::string& value);
200 const std::map<std::string, std::string>& markingDecalMap()
const
202 return myMarkingDecals;
205 virtual void clearMarkingDecals();
208 virtual bool hasMultipleLODs(
int modelSet = 0)
const;
211 virtual void setWidgetEventsEnabled(
bool b);
214 virtual void setGroundClamping(
bool b);
215 virtual void setDeadReckoning(
bool position,
bool velocity,
bool orientation);
218 virtual void setSymbolDecorationOffset(
double x,
double y);
221 virtual void setAutoEnableGroundClamping(
bool b);
224 virtual void realizeFacades();
227 virtual void unrealizeFacades();
231 virtual void setDictionaryToDisplay(
int);
236 virtual bool hasProjectedModel(
int modelSet)
const;
248 virtual void setElementDefinition(
const DtEntityType&);
251 void setSmoothingEnabled(
bool enabled);
254 void setMotionModel(
const std::string&);
257 virtual void setLabelIndicatorVisible(
bool);
260 virtual void setHeadingIndicatorVisible(
bool);
263 virtual void setHeadingIndicatorSize(
float l);
266 virtual bool isDiGuy()
const {
return myIsDiGuy; };
274 virtual void setEffectsVisible(
bool);
277 virtual bool shouldEnableTrailEffects()
const;
280 virtual void enableTrailEffect(
bool);
284 virtual void setAltitudeAboveTerrain(
double d);
288 virtual void setAltitudeAboveSeaLevel(
double d);
291 virtual bool hasWakeModel(
int set);
292 virtual void setWakeLOD(
double);
293 virtual void setShowWakes(
bool b,
int modelSet = -1);
295 virtual void setShowSmoke(
bool b,
int modelSet = -1);
296 virtual void setShowFlames(
bool b,
int modelSet = -1);
298 virtual void setShowOccupants(
bool b);
300 virtual const DtVector32& velocity()
const;
301 virtual void setVelocity(
const DtVector32& v);
304 template <
typename T>
void visualizers(
int modelSet, std::vector<T>& visualizers)
const
306 if (myModelSetMap.find(modelSet) == myModelSetMap.end())
311 myModelSetMap.find(modelSet)->second->findVisualizersByDynamicCast(visualizers);
322 std::vector<T> visualizers;
325 return (visualizers.size() != 0);
329 virtual void setIconScale(
float);
332 std::vector<T> visualizers;
334 typename std::vector<T>::iterator i = visualizers.begin();
335 typename std::vector<T>::iterator e = visualizers.end();
340 (*i)->setIconScale(scale);
345 virtual void setExtendedData(
const std::map<std::string, std::string>&);
346 virtual std::map<std::string, std::string> extendedData()
const;
354 virtual bool hasBoundingVolumes()
const;
357 virtual void setEntityExtentsVisible(
bool,
int modelSet = -1);
360 std::vector<T> visualizers;
362 typename std::vector<T>::iterator i = visualizers.begin();
363 typename std::vector<T>::iterator e = visualizers.end();
378 std::vector<T> visualizers;
380 typename std::vector<T>::iterator i = visualizers.begin();
381 typename std::vector<T>::iterator e = visualizers.end();
386 (*i)->setScale(scale);
393 std::vector<T> visualizers;
395 typename std::vector<T>::iterator i = visualizers.begin();
396 typename std::vector<T>::iterator e = visualizers.end();
401 (*i)->setForceColor(color.
R, color.
G, color.
B, color.
A);
408 std::vector<T> visualizers;
410 typename std::vector<T>::iterator i = visualizers.begin();
411 typename std::vector<T>::iterator e = visualizers.end();
416 (*i)->setColor(color.
R, color.
G, color.
B, color.
A);
421 void setBoundingExtentColor(
float r,
float g,
float b,
float a);
424 virtual std::string diGuyCharacter()
const;
427 virtual std::string diGuyAppearance()
const;
430 virtual std::string diGuyHandItem()
const;
432 virtual std::string diGuyHead()
const;
435 virtual void setAppearance(
int);
436 virtual DtAppearance appearance()
const;
438 virtual void setLifeFormState(
unsigned int,
bool paused =
false);
439 virtual void setCharacterWeaponAiming(
bool aiming);
440 virtual void setEnableAnimationSmoothing(
bool);
441 virtual void setCharacterAction(
const std::string& animation,
bool paused =
false);
442 virtual const std::string& characterAction()
const;
444 virtual void setCharacterModel(
const std::string& animation);
445 virtual std::string characterModel()
const;
447 virtual void setCharacterBodyWeight(
double);
448 virtual void setCharacterAlive(
bool);
450 virtual void setCharacterAppearance(
const std::string& animation);
451 virtual void setCharacterHandItem(
const std::string& item);
452 virtual void setCharacterHead(
const std::string& head);
455 virtual void setDisplayName(
const std::string& displayName );
458 virtual void setSymbolNameVisible(
bool);
461 virtual void setStatePropertyDecorationsVisible(
bool);
463 virtual void setSymbolDecorationsVisible(
bool);
465 virtual bool isAggregate()
const
467 return myIsAggregate;
471 virtual void updateSymbolRotation(
const DtTaitBryan&);
474 virtual void updateSymbolRotation(
double);
477 virtual void setRotateToHeading(
bool);
478 bool rotateToHeading()
const
480 return myRotateToHeading;
483 virtual void slot_visualizerCreationDisabled(
int modelSet,
int visualType );
484 virtual void slot_visualizerCreationEnabled(
int modelSet,
int visualType );