VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectManipulationHandlerBaseClass.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrvCore/DtUniqueID.h>
20 #include <vlutil/vlPerformanceStats.h>
22 
23 #include <matrix/vlVector.h>
24 #include <matrix/geodeticCoord.h>
25 #include <vlpi/entityType.h>
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtChannel;
31  class DtSimObjectEntry;
32 }
33 
34 class DtEntityType;
35 class DtString;
38 class DtModelSetEntry;
39 
40 namespace makVrf
41 {
43  {
44  Mouse = 0,
49  };
50 
53  {
54  Box,
69  User_Base = 100
70  };
71 
74  {
81  };
82 
83  class DtVrfObjectManipulationEventProcessor;
84 
89  {
90  public:
91  typedef std::vector<DtVrfObjectFacadeInterface*> VrfObjectEditFacadeList;
92  typedef std::map<std::string, DtSimInterfaceContent*> ContentMessages;
93 
94  public:
97 
98  public:
99 
104  virtual bool createObject(const DtEntityType& entType, int force,
105  DtCreationSignalType creationSignal=DtNoCreationSignal, const std::string& keywords = "");
106 
108  virtual bool createObject(const DtString& key, const DtString& associatedData,
109  DtCreationSignalType creationSignal=DtNoCreationSignal, const std::string& keywords = "");
110 
114  virtual void editSelectedObjects( const makVrv::DtUniqueID& editId,
115  makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0.,
117 
120  virtual bool canSetActivationTime() const;
121 
123  virtual bool canShowForces() const;
124 
126  virtual void setForce(int);
127  int force() const;
128 
130  virtual void monitorObjectRemoval(bool);
131 
134  virtual bool isDoubleClickSupportedForCurrentObject() const;
135 
137  virtual void setEventProcessingEnabled( bool value );
138 
140  virtual void clearEventProcessor();
141 
143  virtual bool embarkationAllowed() const;
144  virtual void setEmbarkationAllowed(bool);
145 
149  virtual bool canEmbark() const;
150 
152  virtual void setCanEmbark(bool);
153 
155  virtual void setDoNotClamp(bool);
156  bool doNotClamp() const;
157 
159  virtual bool needsEmbarkOnCheck() const;
160 
162  virtual void setIgnoreNextLeftButtonRelease(bool b);
163  virtual void setEditStartedByDoubleClick(bool);
164 
166  virtual void setCreationEndedWithDoubleClick(bool creationEndedWithDoubleClick);
167 
169  virtual bool isCreationEndedWithDoubleClick() const;
170 
173  virtual bool isObjectValidForCreation();
174 
175  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
176 
177  virtual DtSimObjectReference principalSimEntry() const;
178 
180  virtual DtUUID uuid() const;
181 
184  virtual void setInterfaceContentMessage(const std::string& name, const DtSimInterfaceContent&);
185  virtual void removeInterfaceContentMessage(const std::string&);
187  {
188  return myContentMessages;
189  }
190 
192  virtual HandlerType type() const = 0;
193 
194  virtual std::list<DtSimInterfaceContent*> contentMessagesToList() const;
195 
196  virtual void sendContentMessages();
197 
199  virtual VrfObjectEditFacadeList objectFacades() const;
200 
202  virtual void setAllowCreationOnMouseClick(bool flag);
203 
205  virtual void setLabel(const std::string&);
206  virtual std::string label() const;
207 
209  virtual bool allowCreationOnMouseClick() const;
210 
213  virtual void setEventProcessor(DtVrfObjectManipulationEventProcessor*);
214 
216  virtual DtVector clampToGround(const DtVector&, int clampFlag = -1, bool* foundClamp = nullptr) const;
217  virtual DtGeodeticCoord clampToGround(const DtGeodeticCoord&, int clampFlag = -1, bool* foundClamp = nullptr) const;
218 
220  virtual void setAttachObjectToMouse(bool);
221 
223  virtual bool attachObjectToMouse() const;
224 
226  virtual void setHeading(double value);
227  virtual double heading() const;
228 
230  virtual void setPitch(double value);
231  virtual double pitch() const;
232 
234  virtual void setLocation(const DtVector& loc);
235  virtual void setLocation(const DtVector& loc, double altAboveGround);
236 
238  virtual void stop();
239 
241  virtual void deferredStop();
242 
244  virtual int objectCount() const;
245 
247  virtual bool createVrfObject();
248  virtual bool createVrfObject(DtVrfObjectFacadeInterface* objectImage);
249 
251  virtual bool modifyVrfObjects();
252  virtual bool modifyVrfObject(DtVrfObjectFacadeInterface* objectImage);
253 
256  virtual DtVrfObjectFacadeInterface* createAndAddLocalRepresentation(DtSimObjectReference stateView = DtSimObjectReference::nullReference());
257  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtSimObjectReference idw = 0) = 0;
258 
260  virtual DtVrfObjectFacadeInterface* createAndAddLocalRepresentation(DtSimObjectReference editStateView,
261  makVrv::DtUniqueID sceneObjectId, DtSimObjectReference principalStateView);
262  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtSimObjectReference editStateView,
263  makVrv::DtUniqueID sceneObjectId, DtSimObjectReference principalStateView) = 0;
264 
266  virtual void initializeEventProcessor();
267 
269  virtual void setOverlay(const std::string& name);
270  virtual std::string overlay() const;
271  virtual std::string defaultOverlayForCreatingObject() const;
272 
274  virtual std::string getNextCreatingName(bool includeCurrent = false);
275 
277  virtual void setAltitudeAboveGL( double alt, bool setInProcessor = true );
278 
280  virtual void setAltitudeAboveGLForAll( double alt, bool setInProcessor = true );
281 
283  virtual void setAltitudeAboveSL( double alt, bool setInProcessor = true );
284 
286  virtual void setAltitudeAboveSLForAll( double alt, bool setInProcessor = true );
287 
289  virtual bool hasObjectFacade(makVrv::DtUniqueID) const;
290 
291  virtual void setAltitudeClampType( DtAltitudeClampType type );
293  {
294  return myAltitudeClampType;
295  }
296 
297  virtual void setCreating(bool b);
298 
299  bool creating() const
300  {
301  return myCreating;
302  }
303 
305  virtual makVrv::DtUniqueID simulatedObjectedId() const;
306  virtual DtVrfObjectFacadeInterface* principalObjectImage() const;
307  virtual makVrv::DtUniqueID principalObjectID() const;
308  virtual std::set<makVrv::DtUniqueID> elementIDs() const;
309 
310  virtual void setUserData(const std::string& userData);
311  virtual const std::string& userData() const;
312 
313  virtual void setExtendedLabels(const std::map<int, DtString>&);
314  virtual const std::map<int, DtString>& extendedLabels() const;
315 
316  virtual void setExtendedDataMap(const std::map<std::string, std::string>& extendedData);
317  virtual void setExtendedDataMap(const std::map<DtString, DtString>& extendedData);
318  virtual const std::map<std::string, std::string>& extendedDataMap() const;
319  virtual void setExtendedData(const std::string& key, const std::string& value);
320  virtual void removeExtendedData(const std::string& key);
321  virtual std::string extendedData(const std::string& key) const;
322 
323  virtual void slot_onComplete();
324  virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector&, double altAboveGround);
325  virtual void slot_onEditComplete(makVrv::DtUniqueID, const DtVector&, double altAboveGround);
326  virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround );
327  virtual void slot_onAltitudeIsDragging(bool);
328 
329  virtual void hideObject( const makVrv::DtUniqueID& id, bool hide );
330 
332  virtual void setPublishObject(bool);
333  virtual bool publishObject() const;
334 
336  virtual void setObjectName(const std::string& name);
337 
339  virtual void setUUIDForCreation(const DtUUID&);
340  virtual const DtUUID& uuidForCreation() const;
341 
343  virtual bool isUniqueName() const;
344 
348  virtual double groundHeight( const DtVector& localPosition, DtVector* localGround = 0,
349  const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>()) const;
350 
351  virtual void setAltitudeAllowed(bool);
352  bool altitudeAllowed() const;
353 
355  bool pitchAllowed() const;
356 
357  virtual const std::string& objectName() const;
358 
361  virtual bool anchorMouseToOrigin() const;
362 
364  virtual bool anchorPositionIsMouse() const;
365 
367  virtual void setAnchorPosition(const DtGeodeticCoord&);
368 
370  virtual DtVector localLocation();
371 
372  virtual DtVector convertGeocentricToGround(const DtVector& geoc, double& altitude) const;
373 
374  virtual void setShowPropertiesDialogBeforeCreate(bool);
375  virtual bool showPropertiesDialogBeforeCreate() const;
376 
378  virtual bool keywordsContain(const std::string&) const;
379  virtual std::string keyword(const std::string&) const;
380  virtual std::string value(const std::string&) const;
381  virtual void addKeyword(const std::string&);
382  virtual void removeKeyword(const std::string&);
383  virtual bool keywordValue(const std::string&, double& value) const;
384 
385  const std::vector<std::string>& keywords() const
386  {
387  return myKeywords;
388  }
389 
390  virtual bool waitingToStop() const;
391 
392  virtual void setEditingType(DtEditingType);
394  {
395  return myEditingType;
396  }
397 
400  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
401  virtual makVrv::DtUniqueID embarkedOn() const;
402 
404  virtual std::vector<makVrv::DtElementID> ignoreList() const;
405 
408  virtual void setOverrideIdsToIgnore(const std::vector<makVrv::DtUniqueID>& overrideIgnore);
409 
411  virtual const std::vector<makVrv::DtElementID>& unifiedIgnoreList() const;
412 
413  virtual void slot_onAltitudeChanged(const DtVector&, double);
414 
416  virtual void cancel();
417 
419  virtual void setFacadesVisible(bool);
420 
422  virtual bool noStyle() const;
423 
424  virtual void slot_onHeadingChanged( double heading );
425  virtual void slot_onPitchChanged( double heading );
426 
428  virtual void setHeadingOffset(double d);
429 
431  virtual void setPitchOffset(double d);
432 
434  virtual void disconnectPlacement();
435 
438  virtual void setGroundClampOnPlacement(bool);
439  virtual bool groundClampOnPlacement() const;
440 
442  virtual void notifyOnFinalFacade(DtVrfObjectManipulationHandlerBaseClass*);
443  virtual void removeNotifyOnFinalFacade(DtVrfObjectManipulationHandlerBaseClass*);
444 
446  virtual void connectPlacement();
447 
449  virtual DtVector centerOfMass() const;
450 
453  virtual DtVector sumOfAllLocations() const;
454 
456  virtual void updateOffsetsBasedOnMousePosition(const DtVector& centerOfMass, const DtGeodeticCoord&,
457  bool usImagePoints = false);
458 
460  virtual void setSignalOnMultiSelectionComplete(bool);
461 
463  virtual void setKeywords(const std::string&);
464 
467  virtual void setSelectionCount(int);
469  virtual void parseKeywords(const std::string&);
470 
471  virtual bool warpMouseToOrigin() const;
472  virtual void setWarpMouseToOrigin(bool);
473 
475  boost::signals2::signal<void ()> signal_preObjectCreation;
476 
478  boost::signals2::signal<void (bool)> signal_embarkationAllowedChanged;
479 
485  boost::signals2::signal<void (bool, bool)> signal_showPropertiesDialog;
486 
488  boost::signals2::signal<void (bool)> signal_attachObjectToMouse;
489 
491  boost::signals2::signal<void (DtVrfObjectFacadeInterface*, DtSimObjectReference editStateView)> signal_preVisualization;
492 
495  boost::signals2::signal<void (DtVrfObjectFacadeInterface*, bool)> signal_objectFacadeCreated;
496 
498  boost::signals2::signal<void (const DtEntityType&, int)> signal_started;
499 
501  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_multiSelectonCreationComplete;
502 
504  {
505  ObjectManipulationData() : myOwnsContentMessages(false), color(0), appearance(0), projected(false),
506  physicalLineHeight(0.), physicalLineWidth(0.), isClosedFigure(false) , isProjected(false), embarkId(0), useSlotIfAvailable(false), initialUUID(DtUUID::nullUUID()) {};
507 
509  entityType(omd.entityType)
510  , createdEntityType(omd.createdEntityType)
511  , objectName(omd.objectName)
512  , force(omd.force)
513  , positions(omd.positions)
514  , heading(omd.heading)
515  , pitch(omd.pitch)
516  , isProjected(omd.isProjected)
517  , isClosedFigure(omd.isClosedFigure)
518  , clamped(omd.clamped)
519  , isAggregated(omd.isAggregated)
520  , userData(omd.userData)
521  , isPublished(omd.isPublished)
522  , extendedData(omd.extendedData)
523  , extendedLabels(omd.extendedLabels)
524  , myOwnsContentMessages(true)
525  , color(omd.color)
526  , appearance(omd.appearance)
527  , overlay(omd.overlay)
528  , projected(omd.projected)
529  , physicalLineHeight(omd.physicalLineHeight)
530  , physicalLineWidth(omd.physicalLineWidth)
531  , embarkId(omd.embarkId)
532  , useSlotIfAvailable(omd.useSlotIfAvailable)
533  , initialUUID(omd.initialUUID)
534  {
535  setContentMessages(omd.myContentMessages);
536  }
537 
539  {
540  if (myOwnsContentMessages)
541  {
542  deleteContentMessages();
543  }
544  }
545 
547  {
548  std::list<DtSimInterfaceContent*>::iterator iter = myContentMessages.begin();
549  while (iter != myContentMessages.end())
550  {
551  delete *iter;
552  ++iter;
553  }
554 
555  myContentMessages.clear();
556  myOwnsContentMessages = false;
557  }
558 
559  void setContentMessages(const ContentMessages& messages)
560  {
561  if (myOwnsContentMessages)
562  {
563  deleteContentMessages();
564  }
565 
566  ContentMessages::const_iterator iter = messages.begin();
567  while (iter != messages.end())
568  {
569  myContentMessages.push_back(iter->second->clone());
570  ++iter;
571  }
572  }
573 
574  void setContentMessages(const std::list<DtSimInterfaceContent*>& messages)
575  {
576  if (myOwnsContentMessages)
577  {
578  deleteContentMessages();
579  }
580 
581  std::list<DtSimInterfaceContent*>::const_iterator iter = messages.begin();
582  while (iter != messages.end())
583  {
584  myContentMessages.push_back((*iter)->clone());
585  ++iter;
586  }
587  }
588 
590  {
591  myContentMessages.push_back(message.clone());
592  }
593 
595  DtEntityType entityType;
596  DtEntityType createdEntityType;
597  std::string objectName;
598  int force;
599  std::vector<DtVector> positions;
600  double heading;
601  double pitch;
602  bool clamped;
605  std::string userData;
607  unsigned int color;
608  unsigned int appearance;
609  bool projected;
613  std::map<std::string, std::string> extendedData;
614  std::map<int, DtString> extendedLabels;
615  std::list<DtSimInterfaceContent*> myContentMessages;
617  std::string overlay;
621  };
622 
624  boost::signals2::signal<void (bool)> signal_altitudeAllowedChanged;
625 
627  boost::signals2::signal<void ( const ObjectManipulationData& )> signal_createObject;
628 
630  boost::signals2::signal<void (const DtString&, const DtString&)> signal_createTerrainProp;
631 
633  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_stopped;
634 
636  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_eventProcessorRemoved;
637 
639  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_complete;
640 
642  boost::signals2::signal<void (const DtVector& )> signal_locationChanged;
643 
645  boost::signals2::signal<void (double)> signal_headingChanged;
646 
648  boost::signals2::signal<void (double)> signal_pitchChanged;
649 
651  boost::signals2::signal<void (double)> signal_altitudeChanged;
652 
654  boost::signals2::signal<void (const DtVector&)> signal_placement;
655 
658  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_restoreSelectionState;
659 
661  boost::signals2::signal<void (const makVrv::DtUniqueID&)> signal_principalStateViewUpdated;
662 
664  boost::signals2::signal<void (DtVrfObjectFacadeInterface*)> signal_objectFacadeAboutToBeRemoved;
665 
667  boost::signals2::signal<void (int)> signal_forceChanged;
668 
669  protected:
670  virtual void clearConnections();
671  virtual void slot_onPrincipalStateViewUpdated();
672  virtual void slot_onStateViewUpdated(DtSimObjectReference editStateView, makVrv::DtUniqueID sceneObjectId,
673  DtSimObjectReference principalStateView);
674 
676  virtual void slot_simObjectEntryToBeRemoved(DtSimObjectReference);
677 
679  virtual bool typeIsValidForEditingByHandler(const makVrv::DtElementEntry::ElementType&, const DtEntityType&) const;
680 
681  virtual void slot_onCancel(bool escPressed);
682 
683  virtual std::string stripNumbers(const std::string& base) const;
684 
685  virtual double defaultAltitudeOffsetFor(DtVrfObjectFacadeInterface* i) const;
686 
687  virtual void warpMouseToLocation( makVrv::DtChannel* channel, const DtVector& location ) const ;
688 
691  virtual void initializeEdit();
692 
694  virtual void initializeLocationChangeConnections();
695 
698  virtual bool centerOn(const makVrv::DtUniqueID& id, DtVector* centerPos = 0, const DtVector* centerHere = 0,
699  bool centerOnOnlyIfMousePositionIsOffWindow = true) const;
700 
701  virtual void setObjectImageAsAnchor(DtVrfObjectFacadeInterface* objectImage, const DtVector& geocLocation,
702  bool resetOrigin = false);
703 
704  virtual void setHeading(DtVrfObjectFacadeInterface* objectImage, double heading);
705  virtual void setPitch(DtVrfObjectFacadeInterface* objectImage, double heading);
706  virtual std::string defaultOverlayFor() const;
707  virtual std::string defaultOverlayFor(const DtModelSetEntry* e) const;
708 
709  virtual bool continueWithHandlerCancelOnLastObjectRemoval();
710  virtual bool isOkToStopEditing();
711  virtual void handlerDisabled();
712 
713  virtual void setObjectImageRelativeToPrincipal(DtVrfObjectFacadeInterface* objectImage,
714  const DtVector& thisGeocLocation, const DtTaitBryan& thisGeocOrientation,
715  const DtVector& prGeocLocation, const DtTaitBryan& prGeocOrientation);
716 
718  virtual void setObjectImageRelativeTo(DtVrfObjectFacadeInterface* objectImage,
719  const DtVector& thisGeocLocation, const DtVector& prGeocLocation, bool relativeOnly = false);
720 
722  virtual void setObjectImageRelativeToAltitudeOnly(DtVrfObjectFacadeInterface* objectImage,
723  const DtVector& thisGeocLocation, const DtVector& prGeocLocation);
724 
725  virtual void initializeInterfaceForEdit(DtVrfObjectFacadeInterface*, makVrv::DtUniqueID, DtSimObjectReference,
726  const DtVector& principalLocation, const DtTaitBryan& principalOrientation);
727  virtual void calculateAnchor(const DtVector& localAnchor);
728  virtual void calculateAnchorBasedOnMousePosition(makVrv::DtChannel& channel);
729 
730  virtual void initializeAltitudeAboveTerrainForEdit(double curAlt, const DtVector& curPos,
732 
733  virtual void postCreateInitialize(DtVrfObjectFacadeInterface*);
734 
736  virtual bool clampOnPlacement() const;
737 
739  virtual bool clampAtClosestPolygonOnPlacement() const;
740 
742  virtual void updateOffsetsBasedOnMousePosition();
743 
744  virtual bool setupIgnoreLists();
745 
746  virtual void removeObjectBecauseOfDeletion(DtVrfObjectFacadeInterface*);
747 
749  virtual void slot_elementsCreated(const std::vector<makVrv::DtElementID>&);
750 
751  protected:
754  int myForce;
758  std::string myObjectName;
759  std::string myOverlay;
760 
767 
768  std::string myUserData;
769  std::map<std::string, std::string> myExtendedData;
770  std::map<int, DtString> myExtendedLabels;
771 
772  std::string myKey;
773  std::string myKeyData;
775 
777 
779 
780  boost::signals2::connection myObjectRemovalConnection;
781 
783  DtReferenceEllipsoid* myReferenceForConversion;
785 
789  DtGeodeticCoord myAnchorPosition;
790  DtTimedSection* myDeferredStopTimer;
794 
796  std::vector<std::string> myKeywords;
797 
801 
804 
807 
809 
815 
818 
819  mutable bool myCheckedEmbark;
820  mutable bool myCanEmbark;
822 
823  mutable std::vector<makVrv::DtElementID> myUnifiedIgnoreList;
824  mutable std::set<makVrv::DtUniqueID> myDIGuyIdsIgnored;
825  mutable std::vector<makVrv::DtUniqueID> myModelIds;
826 
827  std::vector<makVrv::DtElementID> myOverrideIdsToIgnore;
828  std::vector<DtVrfObjectManipulationHandlerBaseClass*> myNotifyOnFinalFacade;
829 
831  };
832 
834  {
835  public:
836  virtual DtVrfObjectManipulationHandlerBaseClass* create() const = 0;
837  };
838 
839  template <typename T>
841  {
842  public:
844  : myDe(de)
845  {
846  }
847 
849  {
850  }
851 
853  return new T(myDe);
854  }
855 
856  protected:
858  };
859 
860 }
Definition: vrfObjectManipulationHandlerBaseClass.h:61
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool myPublishObject
Definition: vrfObjectManipulationHandlerBaseClass.h:795
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
Equivalent to context except when determining anchor position. Anchor position will be the principal ...
Definition: vrfObjectManipulationHandlerBaseClass.h:48
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_objectFacadeAboutToBeRemoved
Sent when object facade interface is about to be removed.
Definition: vrfObjectManipulationHandlerBaseClass.h:664
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_restoreSelectionState
Sent when the handler has been notified that its attribute changes (show) requests have been made...
Definition: vrfObjectManipulationHandlerBaseClass.h:658
Manage the tick and mouse events when editing or placing a Vrf object.
Definition: vrfObjectManipulationEventProcessor.h:37
Definition: vrfObjectManipulationHandlerBaseClass.h:55
double myDeferStopFor
Definition: vrfObjectManipulationHandlerBaseClass.h:792
std::map< std::string, std::string > extendedData
Definition: vrfObjectManipulationHandlerBaseClass.h:613
Definition: vrfObjectManipulationHandlerBaseClass.h:45
int mySelectionCount
Definition: vrfObjectManipulationHandlerBaseClass.h:805
virtual ~ObjectManipulationData()
Definition: vrfObjectManipulationHandlerBaseClass.h:538
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_multiSelectonCreationComplete
If flag is set to signal this, signals when the creation of all objects for a multi-select is complet...
Definition: vrfObjectManipulationHandlerBaseClass.h:501
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_stopped
Sent when entity creation has stopped.
Definition: vrfObjectManipulationHandlerBaseClass.h:633
bool myOwnsEventProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:762
bool myOverlayHasBeenSet
Definition: vrfObjectManipulationHandlerBaseClass.h:816
Definition: vrfObjectManipulationHandlerBaseClass.h:62
DtReferenceEllipsoid * myReferenceForConversion
Definition: vrfObjectManipulationHandlerBaseClass.h:783
bool myGroundClampOnPlacement
Definition: vrfObjectManipulationHandlerBaseClass.h:793
DtVrfObjectManipulationEventProcessor * myEventProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:761
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, DtSimObjectReference editStateView)> signal_preVisualization
Signal sent before any visualizers are created on the interface.
Definition: vrfObjectManipulationHandlerBaseClass.h:491
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, bool)> signal_objectFacadeCreated
signal sent after the facade is created. If the boolean is true, this was created for an edit mode ...
Definition: vrfObjectManipulationHandlerBaseClass.h:495
std::vector< makVrv::DtElementID > myOverrideIdsToIgnore
Definition: vrfObjectManipulationHandlerBaseClass.h:827
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
std::vector< DtVector > positions
Definition: vrfObjectManipulationHandlerBaseClass.h:599
DtEntityType entityType
If you want content messages cloned and deleted use the set command.
Definition: vrfObjectManipulationHandlerBaseClass.h:595
Definition: vrfObjectManipulationHandlerBaseClass.h:57
std::string overlay
Definition: vrfObjectManipulationHandlerBaseClass.h:617
bool myMultiSelection
Definition: vrfObjectManipulationHandlerBaseClass.h:806
bool myShowPropertiesDialogBeforeCreate
Definition: vrfObjectManipulationHandlerBaseClass.h:788
DtVrfObjectManipulationHandlerCreator(makVrv::DtDe &de)
Definition: vrfObjectManipulationHandlerBaseClass.h:843
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_eventProcessorRemoved
Sent when the event processor has been destroyed.
Definition: vrfObjectManipulationHandlerBaseClass.h:636
bool isAggregated
Definition: vrfObjectManipulationHandlerBaseClass.h:604
boost::signals2::signal< void(double)> signal_headingChanged
signal sent when the mouse changes the orientation of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:645
bool myDoNotClamp
Definition: vrfObjectManipulationHandlerBaseClass.h:821
Contains makVrv:DtSelectionManager class.
Emits the signal_createObject from the makVrf::DtVrfObjectManipulationManager when an object is to be...
Definition: vrfObjectManipulationHandlerBaseClass.h:77
Emits the signal_createObject from the makVrf::DtVrfObjectManipulationManager when an object is to be...
Definition: vrfObjectManipulationHandlerBaseClass.h:78
boost::signals2::signal< void(double)> signal_pitchChanged
signal sent when the mouse changes the pitch of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:648
bool myEmbarkInSlotIfAvailable
Definition: vrfObjectManipulationHandlerBaseClass.h:814
Definition: vrfObjectManipulationHandlerBaseClass.h:64
bool isProjected
Definition: vrfObjectManipulationHandlerBaseClass.h:603
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
Default usage. This will create an object for either multiple occurances (single point) or once (mult...
Definition: vrfObjectManipulationHandlerBaseClass.h:76
std::map< int, DtString > extendedLabels
Definition: vrfObjectManipulationHandlerBaseClass.h:614
Definition: vrfObjectManipulationHandlerBaseClass.h:58
void deleteContentMessages()
Definition: vrfObjectManipulationHandlerBaseClass.h:546
std::vector< makVrv::DtUniqueID > myModelIds
Definition: vrfObjectManipulationHandlerBaseClass.h:825
const std::vector< std::string > & keywords() const
Definition: vrfObjectManipulationHandlerBaseClass.h:385
int myForce
Definition: vrfObjectManipulationHandlerBaseClass.h:754
std::string userData
Definition: vrfObjectManipulationHandlerBaseClass.h:605
std::vector< makVrv::DtElementID > myUnifiedIgnoreList
Definition: vrfObjectManipulationHandlerBaseClass.h:823
bool isPublished
Definition: vrfObjectManipulationHandlerBaseClass.h:606
double heading
Definition: vrfObjectManipulationHandlerBaseClass.h:600
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
VrfObjectEditFacadeList myObjectImages
Definition: vrfObjectManipulationHandlerBaseClass.h:782
static DtSimObjectReferenceTemplate nullReference()
bool myWarpMouseToOrigin
Definition: vrfObjectManipulationHandlerBaseClass.h:817
double physicalLineWidth
Definition: vrfObjectManipulationHandlerBaseClass.h:611
std::string myOverlay
Definition: vrfObjectManipulationHandlerBaseClass.h:759
makVrv::DtDe & myDe
Definition: vrfObjectManipulationHandlerBaseClass.h:857
std::map< int, DtString > myExtendedLabels
Definition: vrfObjectManipulationHandlerBaseClass.h:770
boost::signals2::signal< void(const DtVector &)> signal_placement
signal sent when the left mouse is pressed during creation/editing
Definition: vrfObjectManipulationHandlerBaseClass.h:654
double physicalLineHeight
Definition: vrfObjectManipulationHandlerBaseClass.h:610
Definition: vrfObjectManipulationHandlerBaseClass.h:47
std::map< std::string, DtSimInterfaceContent * > ContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:92
makVrv::DtSignalConnectionManager myCreateConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:812
DtGeodeticCoord myAnchorPosition
Definition: vrfObjectManipulationHandlerBaseClass.h:789
Definition: vrfObjectManipulationHandlerBaseClass.h:46
The abstract Channel Class.
Definition: DtChannel.h:35
Definition: modelSetEntry.h:34
std::string myKeyData
Definition: vrfObjectManipulationHandlerBaseClass.h:773
DtSimObjectReference myPrincipalStateView
Definition: vrfObjectManipulationHandlerBaseClass.h:800
double myTotalTimeElapsed
Definition: vrfObjectManipulationHandlerBaseClass.h:791
std::string myObjectName
Definition: vrfObjectManipulationHandlerBaseClass.h:758
boost::signals2::signal< void(double)> signal_altitudeChanged
signal sent when the mouse changes the altitude of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:651
DtUUID myUUIDForCreation
Definition: vrfObjectManipulationHandlerBaseClass.h:808
bool projected
Definition: vrfObjectManipulationHandlerBaseClass.h:609
DtAltitudeClampType altitudeClampType() const
Definition: vrfObjectManipulationHandlerBaseClass.h:292
Definition: vrfObjectFacadeInterface.h:53
boost::signals2::signal< void()> signal_preObjectCreation
Signal sent before data is assigned to internal structures for object creation (local or on network) ...
Definition: vrfObjectManipulationHandlerBaseClass.h:475
Definition: vrfObjectManipulationHandlerBaseClass.h:75
Definition: vrfObjectManipulationHandlerBaseClass.h:44
boost::signals2::signal< void(bool)> signal_embarkationAllowedChanged
Signal emitted when the embarkation allowed state changes.
Definition: vrfObjectManipulationHandlerBaseClass.h:478
std::string objectName
In the case where the entity type is an object that has randomized elements, this is the entity type ...
Definition: vrfObjectManipulationHandlerBaseClass.h:597
unsigned int color
Definition: vrfObjectManipulationHandlerBaseClass.h:607
DtAltitudeClampType myAltitudeClampType
Definition: vrfObjectManipulationHandlerBaseClass.h:784
boost::signals2::signal< void(bool)> signal_attachObjectToMouse
Signal sent when attached object to mouse changes.
Definition: vrfObjectManipulationHandlerBaseClass.h:488
int force
Definition: vrfObjectManipulationHandlerBaseClass.h:598
Definition: vrfObjectManipulationHandlerBaseClass.h:88
bool myAltitudeIsDragging
Definition: vrfObjectManipulationHandlerBaseClass.h:763
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
When creating, keep the name in the edit box instead of creating a new, unique name. This is for local object creation only.
Definition: vrfObjectManipulationHandlerBaseClass.h:79
Definition: vrfObjectManipulationHandlerBaseClass.h:60
bool clamped
Definition: vrfObjectManipulationHandlerBaseClass.h:602
HandlerType
The type of handler this is.
Definition: vrfObjectManipulationHandlerBaseClass.h:52
boost::signals2::signal< void(const DtString &, const DtString &)> signal_createTerrainProp
signal sent when prop wants to be created
Definition: vrfObjectManipulationHandlerBaseClass.h:630
bool myCreationEndedWithDoubleClick
Definition: vrfObjectManipulationHandlerBaseClass.h:830
makVrv::DtSelectionManager::IdSet myEditingObjects
Definition: vrfObjectManipulationHandlerBaseClass.h:778
bool myCheckedEmbark
Definition: vrfObjectManipulationHandlerBaseClass.h:819
bool creating() const
Definition: vrfObjectManipulationHandlerBaseClass.h:299
Definition: vrfObjectManipulationHandlerBaseClass.h:63
ElementType
Definition: DtElementEntry.h:26
makVrv::DtUniqueID myEmbarkOnId
Definition: vrfObjectManipulationHandlerBaseClass.h:813
void addContentMessage(const DtSimInterfaceContent &message)
Definition: vrfObjectManipulationHandlerBaseClass.h:589
Definition: vrfObjectManipulationHandlerBaseClass.h:833
DtTimedSection * myDeferredStopTimer
Definition: vrfObjectManipulationHandlerBaseClass.h:790
boost::signals2::signal< void(const makVrv::DtUniqueID &)> signal_principalStateViewUpdated
Sent when principal state view is updated for editing.
Definition: vrfObjectManipulationHandlerBaseClass.h:661
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_complete
Sent when entity creation has completed (right-click)
Definition: vrfObjectManipulationHandlerBaseClass.h:639
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
ContentMessages myContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:802
std::vector< std::string > myKeywords
Definition: vrfObjectManipulationHandlerBaseClass.h:796
boost::signals2::signal< void(int)> signal_forceChanged
Sent when force changed.
Definition: vrfObjectManipulationHandlerBaseClass.h:667
boost::signals2::connection myObjectRemovalConnection
Definition: vrfObjectManipulationHandlerBaseClass.h:780
std::set< makVrv::DtUniqueID > myDIGuyIdsIgnored
Definition: vrfObjectManipulationHandlerBaseClass.h:824
bool myAltitudeAllowed
Definition: vrfObjectManipulationHandlerBaseClass.h:764
Definition: vrfObjectManipulationHandlerBaseClass.h:503
makVrv::DtDe & myDe
Definition: vrfObjectManipulationHandlerBaseClass.h:755
makVrv::DtChannel * myHiddenChannel
Definition: vrfObjectManipulationHandlerBaseClass.h:766
double pitch
Definition: vrfObjectManipulationHandlerBaseClass.h:601
Definition: vrfObjectManipulationHandlerBaseClass.h:59
Definition: vrfObjectManipulationHandlerBaseClass.h:67
bool myAllowCreationOnClick
Definition: vrfObjectManipulationHandlerBaseClass.h:757
Base class to provide boost signal/slot management.
bool myIgnoreFirstMouseClick
Definition: vrfObjectManipulationHandlerBaseClass.h:787
boost::signals2::signal< void(bool)> signal_altitudeAllowedChanged
signal sent when altitude allowed changes
Definition: vrfObjectManipulationHandlerBaseClass.h:624
boost::signals2::signal< void(const DtEntityType &, int)> signal_started
Signaled when entity creation has started.
Definition: vrfObjectManipulationHandlerBaseClass.h:498
bool myFacadesVisible
Definition: vrfObjectManipulationHandlerBaseClass.h:799
Definition: vrfObjectManipulationHandlerBaseClass.h:69
std::list< DtSimInterfaceContent * > myContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:615
Definition: vrfObjectManipulationHandlerBaseClass.h:54
DtCreationSignalType mySignalCreation
Definition: vrfObjectManipulationHandlerBaseClass.h:774
bool isClosedFigure
Definition: vrfObjectManipulationHandlerBaseClass.h:612
std::vector< DtVrfObjectManipulationHandlerBaseClass * > myNotifyOnFinalFacade
Definition: vrfObjectManipulationHandlerBaseClass.h:828
boost::signals2::signal< void(bool, bool)> signal_showPropertiesDialog
There are some instances where a handler does not want to finish up when creating. In that case, this signal will be set and the create properties dialog for the object will be shown so the user can take action before creating the item. By default this is not the case, and, will only be valid during object creation. The second bool (if false) will hide the attach object to mouse check box.
Definition: vrfObjectManipulationHandlerBaseClass.h:485
const ContentMessages & contentMessages() const
Definition: vrfObjectManipulationHandlerBaseClass.h:186
bool myClearedProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:765
bool myOwnsContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:616
Contains makVrv::DtUniqueID type.
bool mySignalOnMultiSelectionComplete
Definition: vrfObjectManipulationHandlerBaseClass.h:776
Definition: vrfObjectManipulationHandlerBaseClass.h:56
std::string myUserData
Definition: vrfObjectManipulationHandlerBaseClass.h:768
Definition: vrfObjectManipulationHandlerBaseClass.h:65
ObjectManipulationData(const ObjectManipulationData &omd)
Definition: vrfObjectManipulationHandlerBaseClass.h:508
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: simInterfaceContent.h:45
boost::signals2::signal< void(const ObjectManipulationData &)> signal_createObject
signal sent when object wants to be created
Definition: vrfObjectManipulationHandlerBaseClass.h:627
virtual DtVrfObjectManipulationHandlerBaseClass * create() const override
Definition: vrfObjectManipulationHandlerBaseClass.h:852
bool myOverlayChanged
Definition: vrfObjectManipulationHandlerBaseClass.h:786
bool myAttachObjectToMouse
Definition: vrfObjectManipulationHandlerBaseClass.h:753
Definition: vrfObjectManipulationHandlerBaseClass.h:840
bool myCreating
Definition: vrfObjectManipulationHandlerBaseClass.h:752
bool myShowingPropertiesDialog
Definition: vrfObjectManipulationHandlerBaseClass.h:810
std::vector< DtVrfObjectFacadeInterface * > VrfObjectEditFacadeList
Definition: vrfObjectManipulationHandlerBaseClass.h:91
virtual DtSimInterfaceContent * clone() const =0
bool myCanEmbark
Definition: vrfObjectManipulationHandlerBaseClass.h:820
makVrv::DtSignalConnectionManager myConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:811
DtEditingType myEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:803
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
DtUUID initialUUID
Definition: vrfObjectManipulationHandlerBaseClass.h:620
DtEntityType createdEntityType
Definition: vrfObjectManipulationHandlerBaseClass.h:596
Definition: vrfObjectManipulationHandlerBaseClass.h:68
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
void setContentMessages(const std::list< DtSimInterfaceContent * > &messages)
Definition: vrfObjectManipulationHandlerBaseClass.h:574
std::string myKey
Definition: vrfObjectManipulationHandlerBaseClass.h:772
bool mySignalManipulation
Definition: vrfObjectManipulationHandlerBaseClass.h:756
void setContentMessages(const ContentMessages &messages)
Definition: vrfObjectManipulationHandlerBaseClass.h:559
boost::signals2::signal< void(const DtVector &)> signal_locationChanged
signal sent when the mouse changes location during creation/editing
Definition: vrfObjectManipulationHandlerBaseClass.h:642
Creates the object immediately without waiting for a mouse click.
Definition: vrfObjectManipulationHandlerBaseClass.h:80
std::map< std::string, std::string > myExtendedData
Definition: vrfObjectManipulationHandlerBaseClass.h:769
int myCursorCount
Definition: vrfObjectManipulationHandlerBaseClass.h:798
unsigned int appearance
Definition: vrfObjectManipulationHandlerBaseClass.h:608
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:43
ObjectManipulationData()
Definition: vrfObjectManipulationHandlerBaseClass.h:505
DtEditingType editingType() const
Definition: vrfObjectManipulationHandlerBaseClass.h:393
bool useSlotIfAvailable
Definition: vrfObjectManipulationHandlerBaseClass.h:619
virtual ~DtVrfObjectManipulationHandlerCreator()
Definition: vrfObjectManipulationHandlerBaseClass.h:848
Definition: vrfObjectManipulationHandlerBaseClass.h:66
makVrv::DtUniqueID embarkId
Definition: vrfObjectManipulationHandlerBaseClass.h:618

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)