33 #include <matrix/geodeticCoord.h>
40 #include <boost/foreach.hpp>
44 class DtEnvironmentalVisualizerSet;
46 class DtVisualDefinitionSet;
60 virtual bool isGeocentric()
const;
78 virtual void setVisible(
bool visible,
bool updateOffsets =
true);
79 virtual void setVisible(
bool,
int context);
80 virtual bool isVisible()
const;
83 virtual void setUseHighestTerrainLod(
bool);
85 virtual void setHidden(
bool b);
88 virtual void setSymbolNameVisible(
bool);
92 virtual void setRespectPointAltitudePosition(
bool);
93 bool respectPointAltitudePosition()
const;
96 virtual void setupNodeMaskFlags();
99 virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs()
const;
104 virtual void setLabelIndicatorVisible(
bool);
106 virtual void setIndicatorVisible(
bool);
108 virtual void setAltitudeToOrigin(
DtVector&)
const;
114 virtual DtVector centerOfMass()
const;
116 virtual void setDisplayName(
const std::string& s);
117 virtual std::string displayName()
const;
119 virtual void setLabel(
const std::string&);
120 virtual std::string label()
const;
122 virtual void setFormattingData(
const std::string& s);
123 virtual std::string formattingData()
const;
125 virtual void setDropShadow(
bool b);
127 virtual void setOverlayName(
const std::string& s);
128 virtual std::string overlayName()
const;
131 virtual void setHatLineVisible(
bool visible );
136 virtual void setDictionaryToDisplay(
int);
141 virtual void setMaxCeilingOffsetFromFloor(
double d);
142 virtual double maxCeilingOffsetFromFloor()
const;
143 virtual void clearMaxCeilingOffsetFromFloor();
149 virtual void setPickable(
bool b);
152 virtual void setSelected(
bool b);
154 virtual const DtEntityType& environmentalType()
const;
157 virtual void setWidgetEventsEnabled(
bool b);
159 virtual void updateSymbolDecorationPosition();
162 virtual void setFillStyle(
int);
163 virtual int fillStyle()
const;
167 virtual void setPenStyle(
int);
170 virtual int penStyle()
const;
172 virtual double length()
const;
173 virtual double width()
const;
175 virtual void setTopographicOffsetBetweenPoints(
const DtGeodeticCoord&
origin,
const DtGeodeticCoord& originWithOffset,
bool resetLocation =
true);
176 virtual void setAltitudeOffsetFromPrincipal(
double offset );
178 virtual void updateTopographicOffsets();
180 virtual DtVector geocentricPosition(
int i)
const;
182 virtual std::vector<DtVector> geocentricPositions()
const;
187 std::vector<T> visualizers;
189 typename std::vector<T>::iterator iter = visualizers.begin();
191 while (iter != visualizers.end())
193 (*iter)->setWidgetEventsEnabled(b);
204 virtual void setFloor(
double);
205 virtual void clearFloorSet();
206 virtual double floor()
const;
207 bool floorSet()
const
213 virtual void setCeiling(
double);
214 virtual double ceiling()
const;
215 virtual void clearCeilingSet();
216 bool ceilingSet()
const
224 virtual void realizeFacades();
227 virtual void unrealizeFacades();
229 virtual void setProjected(
bool);
230 virtual bool projected()
const;
232 virtual void updateGeometry();
234 virtual void setSymbolDecorationPosition(
const DtVector& v);
240 virtual void setIndicatorModelDefinitions(
241 const std::string& normalTheme,
242 const std::string& activeTheme,
243 const std::string& selectedTheme,
244 const std::string& multiSelectedTheme);
246 virtual void setAlwaysRecalculateGeometry(
bool);
247 bool alwaysRecalculateGeometry()
const;
249 virtual void setArrowStyle(
int);
250 virtual int arrowStyle()
const;
252 virtual void setArrowHeadPlacement(
int);
253 virtual int arrowHeadPlacement()
const;
255 virtual void setArrowSize(
double);
256 virtual double arrowSize()
const;
259 virtual bool fixedWidthSizing()
const;
261 virtual void setTopographicOffsetFromOrigin(
const DtVector& geod,
int i);
262 const DtVector& topographicOffsetFromOrigin(
int i);
265 virtual void setShapeVertexVisible(
bool);
267 virtual void setSymbolDecorationsVisible(
bool);
268 virtual void setColor(
int rgba);
269 virtual bool colorChanged()
const;
270 virtual int color()
const;
271 virtual void setColor(
float r,
float g,
float b,
float a);
272 virtual bool isPointObject()
const;
275 virtual void setPixelLineWidth(
float);
276 virtual float pixelLineWidth()
const;
278 virtual void setPhysicalLineHeight(
float);
279 virtual float physicalLineHeight()
const;
281 virtual void setOffsetPoints(
const std::vector<DtVector>&);
283 virtual void setPhysicalLineWidth(
float);
284 virtual float physicalLineWidth()
const;
286 virtual bool physicalLineHeightChanged()
const;
287 virtual void clearPhysicalLineHeightChanged();
289 virtual bool physicalLineWidthChanged()
const;
290 virtual void clearPhysicalLineWidthChanged();
292 virtual void setDefaultCeilingHeightIfCeilingIsNotSet(
double);
295 virtual void setForce(
int);
300 ModelSetMap::iterator iter = myModelSetMap.begin();
302 while (iter != myModelSetMap.end())
304 std::vector<T*> visualizers;
305 iter->second->findVisualizersByDynamicCast(visualizers);
306 typename std::vector<T*>::iterator i =
308 typename std::vector<T*>::iterator e =
316 (*i)->setAttached(efc->
modelSetMap()[iter->first]->uniqueID());
320 (*i)->setAttached(0);
331 std::vector<T> visualizers;
333 typename std::vector<T>::iterator i = visualizers.begin();
334 typename std::vector<T>::iterator e = visualizers.end();
339 (*i)->setForceColor(color.
R, color.
G, color.
B, color.
A);
345 virtual DtGeodeticCoord locationFromTopographicOffsetLocation(
const DtGeodeticCoord&
origin,
int index)
const;
352 virtual void setElementDefinition(
const DtEntityType&,
bool preparseOnly =
false);
359 virtual double altitudeForAltitudeType(
int)
const;
361 virtual void setOrigin(
const DtVector&);
362 virtual void setOrigin(
const DtGeodeticCoord&);
364 virtual void setPoint(
const DtVector&,
int,
bool andUpdateOffset =
true);
365 virtual int addPoint(
const DtVector&,
int index = -1,
bool resetLocation =
true,
bool notifyOfAddedPoint =
false);
366 virtual void setPoints(
const std::vector<DtVector>&,
bool updateOffsets =
true);
367 const std::vector<DtVector>& points()
const;
368 std::vector<DtVector> geocentricPoints()
const;
369 virtual void removePoint(
int);
370 DtGeodeticCoord geodeticPosition(
int)
const;
371 virtual void updateOffsets();
375 void setAltitudeAboveTerrain(
int,
double,
bool resetLocation =
true);
376 double altitudeAboveTerrain(
int = -1)
const;
378 void setAltitudeAboveSeaLevel(
int,
double,
bool resetLocation =
true);
379 double altitudeAboveSeaLevel(
int = -1)
const;
381 int numVertices()
const;
390 virtual void selectPoint(
int);
391 virtual void clearSelectedPoint();
393 int selectedPoint()
const;
395 virtual void setIconScale(
float);
397 virtual bool appearanceChanged()
const;
400 virtual double calculatedHeading()
const;
403 virtual DtVector geometricCenter()
const;
406 virtual DtGeodeticCoord geodeticCenter()
const;
409 virtual std::vector<DtVector> rotatePointsTo(
const std::vector<DtVector>&,
double heading)
const;
413 virtual void setTopographicOrientation(
const DtTaitBryan&);
414 virtual void setLocalOrientation(
const DtTaitBryan&);
417 virtual void updateSymbolRotation(
const DtTaitBryan&);
420 virtual void updateSymbolRotation(
double);
423 virtual void setAltitudeAboveSeaLevel(
double);
424 virtual void setAltitudeAboveTerrain(
double);
426 virtual DtVector localLocation(
const DtGeodeticCoord& geodLocation)
const;
427 virtual DtVector localLocation()
const;
430 virtual bool isBox()
const;
433 virtual bool isTextBox()
const;
436 virtual bool isLine()
const;
439 virtual bool isArea()
const;
442 virtual bool isCircle()
const;
446 virtual bool isEllipse()
const;
448 virtual void setIsClosedFigure(
bool);
449 virtual bool isClosedFigure()
const;
458 virtual void updateHeading();
463 virtual void mergeExtendedData(
const std::map<std::string, std::string>&);
465 virtual void setExtendedData(
const std::map<std::string, std::string>&);
466 virtual std::map<std::string, std::string> extendedData()
const;
468 virtual void setExtendedLabels(
const std::map<int, DtString>&);
469 virtual std::map<int, DtString> extendedLabels()
const;
471 virtual void updateOffset(
const DtVector& position,
int i,
bool force =
false);
472 virtual void setAltitudeForPoint(
const DtVector& v,
int index);
483 virtual int clampTypeFor(
int index)
const;
497 float myDefaultColor[4];
508 typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*>
ModelSetMap;