20 #include <vlutil/vlPerformanceStats.h>
23 #include <matrix/vlVector.h>
24 #include <matrix/geodeticCoord.h>
25 #include <vlpi/entityType.h>
27 #include <boost/signal.hpp>
33 class DtSimObjectEntry;
101 virtual bool createObject(
const DtEntityType& entType,
int force,
105 virtual bool createObject(
const DtString& key,
const DtString& associatedData,
117 virtual bool canSetActivationTime()
const;
120 virtual void setForce(
int);
124 virtual void setEventProcessingEnabled(
bool value );
127 virtual bool embarkationAllowed()
const;
128 virtual void setEmbarkationAllowed(
bool);
133 virtual bool canEmbark()
const;
136 virtual void setCanEmbark(
bool);
139 virtual void setDoNotClamp(
bool);
140 bool doNotClamp()
const;
143 virtual bool needsEmbarkOnCheck()
const;
146 virtual void setIgnoreNextLeftButtonRelease(
bool b);
147 virtual void setEditStartedByDoubleClick(
bool);
152 virtual DtUUID uuid()
const;
157 virtual void removeInterfaceContentMessage(
const std::string&);
160 return myContentMessages;
166 virtual std::list<DtSimInterfaceContent*> contentMessagesToList()
const;
168 virtual void sendContentMessages();
171 virtual VrfObjectEditFacadeList objectFacades()
const;
174 virtual void setAllowCreationOnMouseClick(
bool flag);
177 virtual void setLabel(
const std::string&);
178 virtual std::string label()
const;
181 virtual bool allowCreationOnMouseClick()
const;
189 virtual DtGeodeticCoord clampToGround(
const DtGeodeticCoord&)
const;
192 virtual void setAttachObjectToMouse(
bool);
195 virtual bool attachObjectToMouse()
const;
198 virtual void setHeading(
double value);
199 virtual double heading()
const;
202 virtual void setLocation(
const DtVector& loc);
203 virtual void setLocation(
const DtVector& loc,
double altAboveGround);
209 virtual void deferredStop();
212 virtual int objectCount()
const;
215 virtual bool createVrfObject();
219 virtual bool modifyVrfObjects();
234 virtual void initializeEventProcessor();
237 virtual void setOverlay(
const std::string& name);
238 virtual const std::string& overlay()
const;
239 virtual std::string defaultOverlayForCreatingObject()
const;
242 virtual std::string getNextCreatingName(
bool includeCurrent =
false);
245 virtual void setAltitudeAboveGL(
double alt,
bool setInProcessor =
true );
248 virtual void setAltitudeAboveSL(
double alt,
bool setInProcessor =
true );
252 void setCreating(
bool b)
257 bool creating()
const
265 virtual void setUserData(
const std::string& userData);
266 virtual const std::string& userData()
const;
268 virtual void setExtendedLabels(
const std::map<int, DtString>&);
269 virtual const std::map<int, DtString>& extendedLabels()
const;
271 virtual void setExtendedDataMap(
const std::map<std::string, std::string>& extendedData);
272 virtual void setExtendedDataMap(
const std::map<DtString, DtString>& extendedData);
273 virtual const std::map<std::string, std::string>& extendedDataMap()
const;
274 virtual void setExtendedData(
const std::string& key,
const std::string& value);
275 virtual void removeExtendedData(
const std::string& key);
276 virtual std::string extendedData(
const std::string& key)
const;
278 virtual void slot_onComplete();
281 virtual void slot_onLocationChanged(
const DtVector& location,
double altAboveGround );
282 virtual void slot_onAltitudeIsDragging(
bool);
287 virtual void setPublishObject(
bool);
288 virtual bool publishObject()
const;
291 virtual void setObjectName(
const std::string& name);
294 virtual bool isUniqueName()
const;
299 virtual double groundHeight(
const DtVector& localPosition,
DtVector* localGround = 0,
300 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>())
const;
302 virtual void setAltitudeAllowed(
bool);
303 bool altitudeAllowed()
const;
305 virtual const std::string& objectName()
const;
309 virtual bool anchorMouseToOrigin()
const;
312 virtual bool anchorPositionIsMouse()
const;
315 virtual void setAnchorPosition(
const DtGeodeticCoord&);
320 virtual DtVector convertGeocentricToGround(
const DtVector& geoc,
double& altitude)
const;
322 virtual void setShowPropertiesDialogBeforeCreate(
bool);
323 virtual bool showPropertiesDialogBeforeCreate()
const;
326 virtual bool keywordsContain(
const std::string&)
const;
327 virtual std::string keyword(
const std::string&)
const;
328 virtual std::string value(
const std::string&)
const;
329 virtual void addKeyword(
const std::string&);
330 virtual void removeKeyword(
const std::string&);
332 virtual bool waitingToStop()
const;
337 return myEditingType;
346 virtual std::vector<makVrv::DtElementID> ignoreList()
const;
349 virtual const std::vector<makVrv::DtElementID>& unifiedIgnoreList()
const;
351 virtual void slot_onAltitudeChanged(
const DtVector&,
double);
354 virtual void cancel();
357 virtual void setFacadesVisible(
bool);
360 virtual bool noStyle()
const;
362 virtual void slot_onHeadingChanged(
double heading );
365 virtual void setHeadingOffset(
double d);
368 virtual void disconnectPlacement();
372 virtual void setGroundClampOnPlacement(
bool);
373 virtual bool groundClampOnPlacement()
const;
376 virtual void connectPlacement();
379 virtual DtVector centerOfMass()
const;
383 virtual DtVector sumOfAllLocations()
const;
386 virtual void updateOffsetsBasedOnMousePosition(
const DtVector& centerOfMass,
const DtGeodeticCoord&,
387 bool usImagePoints =
false);
390 virtual void setSignalOnMultiSelectionComplete(
bool);
393 virtual void setKeywords(
const std::string&);
397 virtual void setSelectionCount(
int);
399 virtual void parseKeywords(
const std::string&);
401 virtual bool warpMouseToOrigin()
const;
402 virtual void setWarpMouseToOrigin(
bool);
432 physicalLineHeight(0.), physicalLineWidth(0.), isClosedFigure(false) , embarkId(0), useSlotIfAvailable(false) {};
435 entityType(omd.entityType)
436 , createdEntityType(omd.createdEntityType)
437 , objectName(omd.objectName)
439 , positions(omd.positions)
440 , heading(omd.heading)
441 , isClosedFigure(omd.isClosedFigure)
442 , clamped(omd.clamped)
443 , isAggregated(omd.isAggregated)
444 , userData(omd.userData)
445 , isPublished(omd.isPublished)
446 , extendedData(omd.extendedData)
447 , extendedLabels(omd.extendedLabels)
448 , myOwnsContentMessages(true)
450 , appearance(omd.appearance)
451 , overlay(omd.overlay)
452 , projected(omd.projected)
453 , physicalLineHeight(omd.physicalLineHeight)
454 , physicalLineWidth(omd.physicalLineWidth)
455 , embarkId(omd.embarkId)
456 , useSlotIfAvailable(omd.useSlotIfAvailable)
463 if (myOwnsContentMessages)
465 deleteContentMessages();
469 void deleteContentMessages()
471 std::list<DtSimInterfaceContent*>::iterator iter = myContentMessages.begin();
472 while (iter != myContentMessages.end())
478 myContentMessages.clear();
479 myOwnsContentMessages =
false;
484 if (myOwnsContentMessages)
486 deleteContentMessages();
489 ContentMessages::const_iterator iter = messages.begin();
490 while (iter != messages.end())
492 myContentMessages.push_back(iter->second->clone());
497 void setContentMessages(
const std::list<DtSimInterfaceContent*>& messages)
499 if (myOwnsContentMessages)
501 deleteContentMessages();
504 std::list<DtSimInterfaceContent*>::const_iterator iter = messages.begin();
505 while (iter != messages.end())
507 myContentMessages.push_back((*iter)->clone());
582 virtual void slot_onCancel(
bool escPressed);
584 virtual std::string stripNumbers(
const std::string& base)
const;
592 virtual void initializeEdit();
603 bool centerOnOnlyIfMousePositionIsOffWindow =
true)
const;
606 bool resetOrigin =
false);
612 const DtVector& thisGeocLocation,
const DtTaitBryan& thisGeocOrientation,
613 const DtVector& prGeocLocation,
const DtTaitBryan& prGeocOrientation);
617 const DtVector& thisGeocLocation,
const DtVector& prGeocLocation,
bool relativeOnly =
false);
625 virtual void calculateAnchor(
const DtVector& localAnchor);
628 virtual void initializeAltitudeAboveTerrainForEdit(
double curAlt,
const DtVector& curPos,
634 virtual bool clampOnPlacement()
const;
637 virtual bool clampAtClosestPolygonOnPlacement()
const;
640 virtual void updateOffsetsBasedOnMousePosition();
721 template <
typename T>