18 #include <boost/signal.hpp>
19 #include <matrix/vlVector.h>
20 #include <matrix/geodeticCoord.h>
21 #include <matrix/3dBoundingVolume.h>
22 #include <matrix/vlTaitBryan.h>
24 #include <vlpi/entityType.h>
27 class DtReferenceEllipsoid;
45 class DtVrfObjectManipulationHandlerBaseClass;
54 virtual const std::string& entityId()
const
59 virtual void setEntityId(
const std::string& i)
64 virtual void setTopographicOffsetBetweenPoints(
const DtGeodeticCoord&
origin,
const DtGeodeticCoord& originWithOffset,
bool resetLocation =
true);
65 virtual void setTopographicOffsetFromPrincipal(
const DtVector&,
bool resetLocation =
true);
66 const DtVector& topographicOffsetFromPrincipal()
const;
68 virtual DtVector convertGeodeticOffsetFromOriginToTopographicOffsetFromOrigin(
const DtGeodeticCoord&)
const;
69 virtual DtGeodeticCoord locationFromTopographicOffsetFromCenterPoint(
const DtGeodeticCoord&
origin)
const;
70 virtual DtVector convertGeodeticOffsetToTopographicOffset(
const DtGeodeticCoord&
origin,
const DtGeodeticCoord& position)
const;
72 virtual double headingOffsetFromPrincipal()
const;
73 virtual void setHeadingOffsetFromPrincipal(
double offset );
75 virtual const DtEntityType& entityType()
const;
77 virtual Dt3dBoundingVolume boundingVolume(
int modelSet = 0)
const;
79 virtual DtGeodeticCoord modifyPointByTopographicOffset(
const DtGeodeticCoord&
origin,
const DtVector& topographicOffset)
const;
80 virtual double altitudeOffsetFromPrincipal()
const;
81 virtual void setAltitudeOffsetFromPrincipal(
double offset,
bool resetLocation =
true );
85 virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs()
const = 0;
89 virtual void setOverrideIdsToIgnore(
const std::vector<makVrv::DtUniqueID>& overrideIgnore);
92 virtual const std::vector<makVrv::DtUniqueID>& idsToIgnore()
const;
97 virtual std::string displayName()
const;
98 virtual void setDisplayName(
const std::string& displayName );
100 virtual void setUUID(
const DtUUID&);
101 virtual const DtUUID& uuid()
const;
103 virtual DtGeodeticCoord currentGeodeticOrigin()
const;
106 virtual DtGeodeticCoord currentGeodeticPosition()
const;
108 virtual DtGeodeticCoord convertToGeodetic(
const DtVector& v)
const;
110 virtual double currentHeading()
const;
111 virtual void setCurrentHeading(
double currentHeading );
112 virtual void setHeadingChanged(
bool b);
115 virtual void setSelected(
bool);
121 return myAttachPoint;
124 const DtTaitBryan& attachedOrientation()
126 return myAttachOrientation;
134 virtual bool attachedTo()
const;
135 virtual void detach();
138 virtual std::string overlayName()
const;
141 virtual double currentAltitude()
const;
144 virtual DtVector centerOfMass()
const;
146 virtual DtVector geocentricLocation()
const;
147 virtual DtVector localLocation()
const;
148 virtual DtVector localLocation(
const DtGeodeticCoord& geodLocation)
const;
151 virtual double initialAltitudeAboveTerrain()
const;
154 virtual DtVector reviseLocation(
const DtVector& loc,
int clampType = -1)
const;
157 virtual DtTaitBryan localOrientation()
const;
160 virtual void setExtendedData(
const std::map<std::string, std::string>&)
164 virtual void mergeExtendedData(
const std::map<std::string, std::string>&)
168 virtual std::map<std::string, std::string> extendedData()
const
170 return std::map<std::string, std::string>();
172 virtual std::map<int, DtString> extendedLabels()
const
174 return std::map<int, DtString>();
183 virtual void setOrigin(
const DtGeodeticCoord&);
184 virtual void setOrigin(
const DtVector&);
186 virtual void setSymbolNameVisible(
bool) = 0;
188 virtual void setPickable(
bool) = 0;
189 virtual void setIndicatorVisible(
bool) = 0;
190 virtual void setWidgetEventsEnabled(
bool) = 0;
191 virtual void setHatLineVisible(
bool) = 0;
196 virtual void setVisible(
bool,
bool updateOffsets =
true);
197 virtual bool isVisible()
const;
200 virtual void setTopographicOrientation(
const DtTaitBryan&) = 0;
201 virtual void setLocalOrientation(
const DtTaitBryan&) = 0;
204 virtual void unrealizeFacades() = 0;
207 virtual void realizeFacades() = 0;
209 virtual bool hasNameChange()
const
211 return myDisplayNameChanged;
214 virtual void clearLocationChange()
216 myLocationChanged =
false;
219 virtual bool hasLocationChange()
const
221 return myLocationChanged;
224 virtual bool hasAltitudeChange()
const
226 return myAltitudeChanged;
229 virtual bool hasHeadingChange()
const
231 return myHeadingChanged;
234 virtual void clearFlags();
239 return myAltitudeClampType;
242 virtual void setAltitudeAboveTerrain(
double);
243 virtual double altitudeAboveTerrain()
const
245 return myAltitudeAboveGL;
248 virtual void setAltitudeAboveSeaLevel(
double);
249 virtual double altitudeAboveSeaLevel()
const
251 return myAltitudeAboveSL;
254 virtual void setIsAnchor(
bool);
255 virtual bool isAnchor()
const
260 virtual void setUserData(
const std::string& userData);
261 virtual std::string userData()
const;
262 bool userDataChanged()
const
264 return myUserDataChanged;
269 return myModelSetOnly;
272 bool supportsModelSet(
int i)
const
274 return ((myModelSetOnly == -1) || (i == myModelSetOnly));
285 virtual void setEmbarkationAllowed(
bool);
286 bool embarkationAllowed()
const;
288 virtual void setDoNotClamp(
bool b)
300 bool doNotClamp()
const
302 return (myAltitudeClampType ==
NoClamp);
305 virtual void setClampToClosestPolygon(
bool b)
307 myClampToClosestPolygon = b;
310 bool clampToClosestPolygon()
const
312 return myClampToClosestPolygon;
316 virtual void setCurrentGroundLocation(
const DtGeodeticCoord& currentGroundLocation );