19 #include <vlutil/vlPerformanceStats.h>
20 #include <vrfExtProtocol/simInterfaceContent.h>
22 #include <matrix/vlVector.h>
23 #include <matrix/geodeticCoord.h>
24 #include <vlpi/entityType.h>
26 #include <boost/signal.hpp>
32 class DtSimObjectEntry;
97 virtual bool createObject(
const DtEntityType& entType,
int force,
101 virtual bool createObject(
const DtString& key,
const DtString& associatedData,
112 virtual void setForce(
int);
118 virtual void removeInterfaceContentMessage(
const std::string&);
121 return myContentMessages;
127 virtual std::list<DtSimInterfaceContent*> contentMessagesToList()
const;
129 virtual void sendContentMessages();
132 virtual void setAllowCreationOnMouseClick(
bool flag);
135 virtual void setLabel(
const std::string&);
136 virtual std::string label()
const;
139 virtual bool allowCreationOnMouseClick()
const;
147 virtual DtGeodeticCoord clampToGround(
const DtGeodeticCoord&)
const;
150 virtual void setAttachObjectToMouse(
bool);
153 virtual bool attachObjectToMouse()
const;
156 virtual void setHeading(
double value);
157 virtual double heading()
const;
160 virtual void setLocation(
const DtVector& loc);
161 virtual void setLocation(
const DtVector& loc,
double altAboveGround);
167 virtual void deferredStop();
170 virtual bool createVrfObject();
174 virtual bool modifyVrfObjects();
185 virtual void initializeEventProcessor();
188 virtual void setOverlay(
const std::string& name);
189 virtual const std::string& overlay()
const;
190 virtual std::string defaultOverlayForCreatingObject()
const;
193 virtual std::string getNextCreatingName(
bool includeCurrent =
false);
196 virtual void setAltitudeAboveGL(
double alt,
bool setInProcessor =
true );
199 virtual void setAltitudeAboveSL(
double alt,
bool setInProcessor =
true );
203 void setCreating(
bool b)
208 bool creating()
const
216 virtual void setUserData(
const std::string& userData);
217 virtual const std::string& userData()
const;
219 virtual void setExtendedLabels(
const std::map<int, DtString>&);
220 virtual const std::map<int, DtString>& extendedLabels()
const;
222 virtual void setExtendedDataMap(
const std::map<std::string, std::string>& extendedData);
223 virtual void setExtendedDataMap(
const std::map<DtString, DtString>& extendedData);
224 virtual const std::map<std::string, std::string>& extendedDataMap()
const;
225 virtual void setExtendedData(
const std::string& key,
const std::string& value);
226 virtual void removeExtendedData(
const std::string& key);
227 virtual std::string extendedData(
const std::string& key)
const;
229 virtual void slot_onComplete();
232 virtual void slot_onLocationChanged(
const DtVector& location,
double altAboveGround );
233 virtual void slot_onAltitudeIsDragging(
bool);
238 virtual void setPublishObject(
bool);
239 virtual bool publishObject()
const;
242 virtual void setObjectName(
const std::string& name);
245 virtual bool isUniqueName()
const;
250 virtual double groundHeight(
const DtVector& localPosition,
DtVector* localGround = 0 )
const;
252 virtual void setAltitudeAllowed(
bool);
253 bool altitudeAllowed()
const;
255 virtual const std::string& objectName()
const;
259 virtual bool anchorMouseToOrigin()
const;
262 virtual bool anchorPositionIsMouse()
const;
267 virtual DtVector convertGeocentricToGround(
const DtVector& geoc,
double& altitude)
const;
269 virtual void setShowPropertiesDialogBeforeCreate(
bool);
270 virtual bool showPropertiesDialogBeforeCreate()
const;
273 virtual bool keywordsContain(
const std::string&)
const;
274 virtual std::string keyword(
const std::string&)
const;
275 virtual std::string value(
const std::string&)
const;
277 virtual bool waitingToStop()
const;
282 return myEditingType;
286 virtual std::vector<makVrv::DtElementID> ignoreList()
const;
289 virtual void cancel();
292 virtual void setFacadesVisible(
bool);
295 virtual bool noStyle()
const;
298 virtual DtVector centerOfMass()
const;
301 virtual void updateOffsetsBasedOnMousePosition(
const DtVector& centerOfMass,
const DtGeodeticCoord&);
304 virtual void setSignalOnMultiSelectionComplete(
bool);
308 virtual void setSelectionCount(
int);
336 entityType(omd.entityType)
337 , objectName(omd.objectName)
339 , positions(omd.positions)
340 , heading(omd.heading)
341 , clamped(omd.clamped)
342 , isAggregated(omd.isAggregated)
343 , userData(omd.userData)
344 , isPublished(omd.isPublished)
345 , extendedData(omd.extendedData)
346 , extendedLabels(omd.extendedLabels)
347 , myOwnsContentMessages(true)
349 , appearance(omd.appearance)
350 , overlay(omd.overlay)
351 , projected(omd.projected)
358 if (myOwnsContentMessages)
360 deleteContentMessages();
364 void deleteContentMessages()
366 std::list<DtSimInterfaceContent*>::iterator iter = myContentMessages.begin();
367 while (iter != myContentMessages.end())
373 myContentMessages.clear();
374 myOwnsContentMessages =
false;
379 if (myOwnsContentMessages)
381 deleteContentMessages();
384 ContentMessages::const_iterator iter = messages.begin();
385 while (iter != messages.end())
387 myContentMessages.push_back(iter->second->clone());
392 void setContentMessages(
const std::list<DtSimInterfaceContent*>& messages)
394 if (myOwnsContentMessages)
396 deleteContentMessages();
399 std::list<DtSimInterfaceContent*>::const_iterator iter = messages.begin();
400 while (iter != messages.end())
402 myContentMessages.push_back((*iter)->clone());
468 virtual void slot_onAltitudeChanged(
const DtVector&,
double);
470 virtual void slot_onHeadingChanged(
double heading );
472 virtual void slot_onCancel(
bool escPressed);
474 virtual std::string stripNumbers(
const std::string& base)
const;
480 virtual void initializeEdit();
491 bool centerOnOnlyIfMousePositionIsOffWindow =
true)
const;
494 bool resetOrigin =
false);
500 const DtVector& thisGeocLocation,
const DtTaitBryan& thisGeocOrientation,
501 const DtVector& prGeocLocation,
const DtTaitBryan& prGeocOrientation);
505 const DtVector& thisGeocLocation,
const DtVector& prGeocLocation,
bool relativeOnly =
false);
513 virtual void calculateAnchor(
const DtVector& localAnchor);
516 virtual void postCreateInitialize();
519 virtual bool clampOnPlacement()
const;
522 virtual bool clampAtClosestPolygonOnPlacement()
const;
524 virtual void parseKeywords(
const std::string&);
527 virtual void updateOffsetsBasedOnMousePosition();
591 template <
typename T>