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 );
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);
145 virtual void setPickable(
bool b);
148 virtual void setSelected(
bool b);
150 virtual const DtEntityType& environmentalType()
const;
153 virtual void setWidgetEventsEnabled(
bool b);
155 virtual void updateSymbolDecorationPosition();
158 virtual void setFillStyle(
int);
159 virtual int fillStyle()
const;
163 virtual void setPenStyle(
int);
166 virtual int penStyle()
const;
168 virtual double length()
const;
169 virtual double width()
const;
171 virtual void setLocationOffsetFromPrincipal(
const DtGeodeticCoord& offset );
172 virtual void setAltitudeOffsetFromPrincipal(
double offset );
174 virtual DtVector geocentricPosition(
int i)
const;
176 virtual std::vector<DtVector> geocentricPositions()
const;
181 std::vector<T> visualizers;
183 typename std::vector<T>::iterator iter = visualizers.begin();
185 while (iter != visualizers.end())
187 (*iter)->setWidgetEventsEnabled(b);
198 virtual void setFloor(
double);
199 virtual void clearFloorSet();
200 virtual double floor()
const;
201 bool floorSet()
const
207 virtual void setCeiling(
double);
208 virtual double ceiling()
const;
209 virtual void clearCeilingSet();
210 bool ceilingSet()
const
218 virtual void realizeFacades();
221 virtual void unrealizeFacades();
223 virtual void setProjected(
bool);
224 virtual bool projected()
const;
226 virtual void updateGeometry();
228 virtual void setSymbolDecorationPosition(
const DtVector& v);
234 virtual void setIndicatorModelDefinitions(
235 const std::string& normalTheme,
236 const std::string& activeTheme,
237 const std::string& selectedTheme,
238 const std::string& multiSelectedTheme);
240 virtual void setAlwaysRecalculateGeometry(
bool);
241 bool alwaysRecalculateGeometry()
const;
243 virtual void setArrowStyle(
int);
244 virtual int arrowStyle()
const;
246 virtual void setArrowHeadPlacement(
int);
247 virtual int arrowHeadPlacement()
const;
249 virtual void setArrowSize(
double);
250 virtual double arrowSize()
const;
253 virtual bool fixedWidthSizing()
const;
255 virtual void setLocationOffsetFromFirst(
const DtGeodeticCoord& geod,
int i);
256 const DtGeodeticCoord& locationOffsetFromFirst(
int i);
259 virtual void setShapeVertexVisible(
bool);
261 virtual void setSymbolDecorationsVisible(
bool);
262 virtual void setColor(
int rgba);
263 virtual bool colorChanged()
const;
264 virtual int color()
const;
265 virtual void setColor(
float r,
float g,
float b,
float a);
266 virtual bool isPointObject()
const;
269 virtual void setPixelLineWidth(
float);
270 virtual float pixelLineWidth()
const;
272 virtual void setPhysicalLineHeight(
float);
273 virtual float physicalLineHeight()
const;
275 virtual void setOffsetPoints(
const std::vector<DtVector>&);
277 virtual void setPhysicalLineWidth(
float);
278 virtual float physicalLineWidth()
const;
280 virtual bool physicalLineHeightChanged()
const;
281 virtual void clearPhysicalLineHeightChanged();
283 virtual bool physicalLineWidthChanged()
const;
284 virtual void clearPhysicalLineWidthChanged();
286 virtual void setDefaultCeilingHeightIfCeilingIsNotSet(
double);
289 virtual void setForce(
int);
294 ModelSetMap::iterator iter = myModelSetMap.begin();
296 while (iter != myModelSetMap.end())
298 std::vector<T*> visualizers;
299 iter->second->findVisualizersByDynamicCast(visualizers);
300 typename std::vector<T*>::iterator i =
302 typename std::vector<T*>::iterator e =
310 (*i)->setAttached(efc->
modelSetMap()[iter->first]->uniqueID());
314 (*i)->setAttached(0);
325 std::vector<T> visualizers;
327 typename std::vector<T>::iterator i = visualizers.begin();
328 typename std::vector<T>::iterator e = visualizers.end();
333 (*i)->setForceColor(color.
R, color.
G, color.
B, color.
A);
345 virtual void setElementDefinition(
const DtEntityType&,
bool preparseOnly =
false);
352 virtual double altitudeForAltitudeType(
int)
const;
354 virtual void setOrigin(
const DtVector&);
355 virtual void setOrigin(
const DtGeodeticCoord&);
357 virtual void setPoint(
const DtVector&,
int,
bool andUpdateOffset =
true);
358 virtual int addPoint(
const DtVector&,
int index = -1,
bool resetLocation =
true);
359 virtual void setPoints(
const std::vector<DtVector>&);
360 const std::vector<DtVector>& points()
const;
361 std::vector<DtVector> geocentricPoints()
const;
362 virtual void removePoint(
int);
363 DtGeodeticCoord geodeticPosition(
int)
const;
364 virtual void updateOffsets();
368 void setAltitudeAboveTerrain(
int,
double,
bool resetLocation =
true);
369 double altitudeAboveTerrain(
int = -1)
const;
371 void setAltitudeAboveSeaLevel(
int,
double,
bool resetLocation =
true);
372 double altitudeAboveSeaLevel(
int = -1)
const;
374 int numVertices()
const;
383 virtual void selectPoint(
int);
384 virtual void clearSelectedPoint();
386 int selectedPoint()
const;
388 virtual void setIconScale(
float);
390 virtual bool appearanceChanged()
const;
393 virtual double calculatedHeading()
const;
396 virtual DtVector geometricCenter()
const;
399 virtual std::vector<DtVector> rotatePointsTo(
const std::vector<DtVector>&,
double heading)
const;
403 virtual void setTopographicOrientation(
const DtTaitBryan&);
404 virtual void setLocalOrientation(
const DtTaitBryan&);
407 virtual void updateSymbolRotation(
const DtTaitBryan&);
410 virtual void updateSymbolRotation(
double);
413 virtual void setAltitudeAboveSeaLevel(
double);
414 virtual void setAltitudeAboveTerrain(
double);
416 virtual DtVector localLocation(
const DtGeodeticCoord& geodLocation)
const;
417 virtual DtVector localLocation()
const;
420 virtual bool isBox()
const;
423 virtual bool isTextBox()
const;
426 virtual bool isLine()
const;
429 virtual bool isArea()
const;
432 virtual bool isCircle()
const;
436 virtual bool isEllipse()
const;
438 virtual void setIsClosedFigure(
bool);
439 virtual bool isClosedFigure()
const;
448 virtual void updateHeading();
453 virtual void mergeExtendedData(
const std::map<std::string, std::string>&);
455 virtual void setExtendedData(
const std::map<std::string, std::string>&);
456 virtual std::map<std::string, std::string> extendedData()
const;
458 virtual void setExtendedLabels(
const std::map<int, DtString>&);
459 virtual std::map<int, DtString> extendedLabels()
const;
461 virtual void updateOffset(
const DtVector& position,
int i,
bool force =
false);
462 virtual void setAltitudeForPoint(
const DtVector& v,
int index);
483 float myDefaultColor[4];
493 typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*>
ModelSetMap;