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/DtEntityState.h>
17 #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 
84 
86 
91  {
92  public:
93  typedef std::vector<DtVrfObjectFacadeInterface*> VrfObjectEditFacadeList;
94  typedef std::map<std::string, DtSimInterfaceContent*> ContentMessages;
95 
96  public:
99 
100  public:
101 
106  virtual bool createObject(const DtEntityType& entType, int force,
107  DtCreationSignalType creationSignal=DtNoCreationSignal, const std::string& keywords = "");
108 
110  virtual bool createObject(const DtString& key, const DtString& associatedData,
111  DtCreationSignalType creationSignal=DtNoCreationSignal, const std::string& keywords = "");
112 
116  virtual void editSelectedObjects( const makVrv::DtUniqueID& editId,
117  makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0.,
119 
122  virtual bool canSetActivationTime() const;
123 
125  virtual bool canShowForces() const;
126 
128  virtual void setForce(int);
129  int force() const;
130 
132  virtual void monitorObjectRemoval(bool);
133 
136  virtual bool isDoubleClickSupportedForCurrentObject() const;
137 
139  virtual void setEventProcessingEnabled( bool value );
140 
142  virtual void clearEventProcessor();
143 
145  virtual bool embarkationAllowed() const;
146  virtual void setEmbarkationAllowed(bool);
147 
151  virtual bool canEmbark() const;
152 
154  virtual void setCanEmbark(bool);
155 
157  virtual void setDoNotClamp(bool);
158  bool doNotClamp() const;
159 
161  virtual bool needsEmbarkOnCheck() const;
162 
164  virtual void setIgnoreNextLeftButtonRelease(bool b);
165  virtual void setEditStartedByDoubleClick(bool);
166 
168  virtual void setCreationEndedWithDoubleClick(bool creationEndedWithDoubleClick);
169 
171  virtual bool isCreationEndedWithDoubleClick() const;
172 
175  virtual bool isObjectValidForCreation();
176 
177  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
178 
179  virtual makVrv::DtSimEntry* principalSimEntry() const;
180 
182  virtual DtUUID uuid() const;
183 
186  virtual void setInterfaceContentMessage(const std::string& name, const DtSimInterfaceContent&);
187  virtual void removeInterfaceContentMessage(const std::string&);
189  {
190  return myContentMessages;
191  }
192 
194  virtual HandlerType type() const = 0;
195 
196  virtual std::list<DtSimInterfaceContent*> contentMessagesToList() const;
197 
198  virtual void sendContentMessages();
199 
201  virtual VrfObjectEditFacadeList objectFacades() const;
202 
204  virtual void setAllowCreationOnMouseClick(bool flag);
205 
207  virtual void setLabel(const std::string&);
208  virtual std::string label() const;
209 
211  virtual bool allowCreationOnMouseClick() const;
212 
215  virtual void setEventProcessor(DtVrfObjectManipulationEventProcessor*);
216 
218  virtual DtVector clampToGround(const DtVector&, int clampFlag = -1) const;
219  virtual DtGeodeticCoord clampToGround(const DtGeodeticCoord&, int clampFlag = -1) const;
220 
222  virtual void setAttachObjectToMouse(bool);
223 
225  virtual bool attachObjectToMouse() const;
226 
228  virtual void setHeading(double value);
229  virtual double heading() const;
230 
232  virtual void setPitch(double value);
233  virtual double pitch() const;
234 
236  virtual void setLocation(const DtVector& loc);
237  virtual void setLocation(const DtVector& loc, double altAboveGround);
238 
240  virtual void stop();
241 
243  virtual void deferredStop();
244 
246  virtual int objectCount() const;
247 
249  virtual bool createVrfObject();
250  virtual bool createVrfObject(DtVrfObjectFacadeInterface* objectImage);
251 
253  virtual bool modifyVrfObjects();
254  virtual bool modifyVrfObject(DtVrfObjectFacadeInterface* objectImage);
255 
258  virtual DtVrfObjectFacadeInterface* createAndAddLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView = 0);
259  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView = 0) = 0;
260 
262  virtual DtVrfObjectFacadeInterface* createAndAddLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView,
263  makVrv::DtUniqueID sceneObjectId, DtVrlinkSimulatedBaseStateView* principalStateView);
264  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView,
265  makVrv::DtUniqueID sceneObjectId, DtVrlinkSimulatedBaseStateView* principalStateView) = 0;
266 
268  virtual void initializeEventProcessor();
269 
271  virtual void setOverlay(const std::string& name);
272  virtual std::string overlay() const;
273  virtual std::string defaultOverlayForCreatingObject() const;
274 
276  virtual std::string getNextCreatingName(bool includeCurrent = false);
277 
279  virtual void setAltitudeAboveGL( double alt, bool setInProcessor = true );
280 
282  virtual void setAltitudeAboveGLForAll( double alt, bool setInProcessor = true );
283 
285  virtual void setAltitudeAboveSL( double alt, bool setInProcessor = true );
286 
288  virtual void setAltitudeAboveSLForAll( double alt, bool setInProcessor = true );
289 
291  virtual bool hasObjectFacade(makVrv::DtUniqueID) const;
292 
293  virtual void setAltitudeClampType( DtAltitudeClampType type );
295  {
296  return myAltitudeClampType;
297  }
298 
299  virtual void setCreating(bool b);
300 
301  bool creating() const
302  {
303  return myCreating;
304  }
305 
307  virtual makVrv::DtUniqueID simulatedObjectedId() const;
308  virtual DtVrfObjectFacadeInterface* principalObjectImage() const;
309  virtual makVrv::DtUniqueID principalObjectID() const;
310  virtual std::set<makVrv::DtUniqueID> elementIDs() const;
311 
312  virtual void setUserData(const std::string& userData);
313  virtual const std::string& userData() const;
314 
315  virtual void setExtendedLabels(const std::map<int, DtString>&);
316  virtual const std::map<int, DtString>& extendedLabels() const;
317 
318  virtual void setExtendedDataMap(const std::map<std::string, std::string>& extendedData);
319  virtual void setExtendedDataMap(const std::map<DtString, DtString>& extendedData);
320  virtual const std::map<std::string, std::string>& extendedDataMap() const;
321  virtual void setExtendedData(const std::string& key, const std::string& value);
322  virtual void removeExtendedData(const std::string& key);
323  virtual std::string extendedData(const std::string& key) const;
324 
325  virtual void slot_onComplete();
326  virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector&, double altAboveGround);
327  virtual void slot_onEditComplete(makVrv::DtUniqueID, const DtVector&, double altAboveGround);
328  virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround );
329  virtual void slot_onAltitudeIsDragging(bool);
330 
331  virtual void hideObject( const makVrv::DtUniqueID& id, bool hide );
332 
334  virtual void setPublishObject(bool);
335  virtual bool publishObject() const;
336 
338  virtual void setObjectName(const std::string& name);
339 
341  virtual void setUUIDForCreation(const DtUUID&);
342  virtual const DtUUID& uuidForCreation() const;
343 
345  virtual bool isUniqueName() const;
346 
350  virtual double groundHeight( const DtVector& localPosition, DtVector* localGround = 0,
351  const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>()) const;
352 
353  virtual void setAltitudeAllowed(bool);
354  bool altitudeAllowed() const;
355 
357  bool pitchAllowed() const;
358 
359  virtual const std::string& objectName() const;
360 
363  virtual bool anchorMouseToOrigin() const;
364 
366  virtual bool anchorPositionIsMouse() const;
367 
369  virtual void setAnchorPosition(const DtGeodeticCoord&);
370 
372  virtual DtVector localLocation();
373 
374  virtual DtVector convertGeocentricToGround(const DtVector& geoc, double& altitude) const;
375 
376  virtual void setShowPropertiesDialogBeforeCreate(bool);
377  virtual bool showPropertiesDialogBeforeCreate() const;
378 
380  virtual bool keywordsContain(const std::string&) const;
381  virtual std::string keyword(const std::string&) const;
382  virtual std::string value(const std::string&) const;
383  virtual void addKeyword(const std::string&);
384  virtual void removeKeyword(const std::string&);
385  virtual bool keywordValue(const std::string&, double& value) const;
386 
387  const std::vector<std::string>& keywords() const
388  {
389  return myKeywords;
390  }
391 
392  virtual bool waitingToStop() const;
393 
394  virtual void setEditingType(DtEditingType);
396  {
397  return myEditingType;
398  }
399 
402  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
403  virtual makVrv::DtUniqueID embarkedOn() const;
404 
406  virtual std::vector<makVrv::DtElementID> ignoreList() const;
407 
410  virtual void setOverrideIdsToIgnore(const std::vector<makVrv::DtUniqueID>& overrideIgnore);
411 
413  virtual const std::vector<makVrv::DtElementID>& unifiedIgnoreList() const;
414 
415  virtual void slot_onAltitudeChanged(const DtVector&, double);
416 
418  virtual void cancel();
419 
421  virtual void setFacadesVisible(bool);
422 
424  virtual bool noStyle() const;
425 
426  virtual void slot_onHeadingChanged( double heading );
427  virtual void slot_onPitchChanged( double heading );
428 
430  virtual void setHeadingOffset(double d);
431 
433  virtual void setPitchOffset(double d);
434 
436  virtual void disconnectPlacement();
437 
440  virtual void setGroundClampOnPlacement(bool);
441  virtual bool groundClampOnPlacement() const;
442 
444  virtual void notifyOnFinalFacade(DtVrfObjectManipulationHandlerBaseClass*);
445  virtual void removeNotifyOnFinalFacade(DtVrfObjectManipulationHandlerBaseClass*);
446 
448  virtual void connectPlacement();
449 
451  virtual DtVector centerOfMass() const;
452 
455  virtual DtVector sumOfAllLocations() const;
456 
458  virtual void updateOffsetsBasedOnMousePosition(const DtVector& centerOfMass, const DtGeodeticCoord&,
459  bool usImagePoints = false);
460 
462  virtual void setSignalOnMultiSelectionComplete(bool);
463 
465  virtual void setKeywords(const std::string&);
466 
469  virtual void setSelectionCount(int);
471  virtual void parseKeywords(const std::string&);
472 
473  virtual bool warpMouseToOrigin() const;
474  virtual void setWarpMouseToOrigin(bool);
475 
477  boost::signals2::signal<void ()> signal_preObjectCreation;
478 
480  boost::signals2::signal<void (bool)> signal_embarkationAllowedChanged;
481 
487  boost::signals2::signal<void (bool, bool)> signal_showPropertiesDialog;
488 
490  boost::signals2::signal<void (bool)> signal_attachObjectToMouse;
491 
493  boost::signals2::signal<void (DtVrfObjectFacadeInterface*, DtVrlinkSimulatedBaseStateView* editStateView)> signal_preVisualization;
494 
497  boost::signals2::signal<void (DtVrfObjectFacadeInterface*, bool)> signal_objectFacadeCreated;
498 
500  boost::signals2::signal<void (const DtEntityType&, int)> signal_started;
501 
503  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_multiSelectonCreationComplete;
504 
506  {
507  ObjectManipulationData() : myOwnsContentMessages(false), color(0), appearance(0), projected(false),
508  physicalLineHeight(0.), physicalLineWidth(0.), isClosedFigure(false) , isProjected(false), embarkId(0), useSlotIfAvailable(false), initialUUID(DtUUID::nullUUID()) {};
509 
511  entityType(omd.entityType)
512  , createdEntityType(omd.createdEntityType)
513  , objectName(omd.objectName)
514  , force(omd.force)
515  , positions(omd.positions)
516  , heading(omd.heading)
517  , pitch(omd.pitch)
518  , isProjected(omd.isProjected)
519  , isClosedFigure(omd.isClosedFigure)
520  , clamped(omd.clamped)
521  , isAggregated(omd.isAggregated)
522  , userData(omd.userData)
523  , isPublished(omd.isPublished)
524  , extendedData(omd.extendedData)
525  , extendedLabels(omd.extendedLabels)
526  , myOwnsContentMessages(true)
527  , color(omd.color)
528  , appearance(omd.appearance)
529  , overlay(omd.overlay)
530  , projected(omd.projected)
531  , physicalLineHeight(omd.physicalLineHeight)
532  , physicalLineWidth(omd.physicalLineWidth)
533  , embarkId(omd.embarkId)
534  , useSlotIfAvailable(omd.useSlotIfAvailable)
535  , initialUUID(omd.initialUUID)
536  {
537  setContentMessages(omd.myContentMessages);
538  }
539 
541  {
542  if (myOwnsContentMessages)
543  {
544  deleteContentMessages();
545  }
546  }
547 
549  {
550  std::list<DtSimInterfaceContent*>::iterator iter = myContentMessages.begin();
551  while (iter != myContentMessages.end())
552  {
553  delete *iter;
554  ++iter;
555  }
556 
557  myContentMessages.clear();
558  myOwnsContentMessages = false;
559  }
560 
561  void setContentMessages(const ContentMessages& messages)
562  {
563  if (myOwnsContentMessages)
564  {
565  deleteContentMessages();
566  }
567 
568  ContentMessages::const_iterator iter = messages.begin();
569  while (iter != messages.end())
570  {
571  myContentMessages.push_back(iter->second->clone());
572  ++iter;
573  }
574  }
575 
576  void setContentMessages(const std::list<DtSimInterfaceContent*>& messages)
577  {
578  if (myOwnsContentMessages)
579  {
580  deleteContentMessages();
581  }
582 
583  std::list<DtSimInterfaceContent*>::const_iterator iter = messages.begin();
584  while (iter != messages.end())
585  {
586  myContentMessages.push_back((*iter)->clone());
587  ++iter;
588  }
589  }
590 
592  {
593  myContentMessages.push_back(message.clone());
594  }
595 
597  DtEntityType entityType;
598  DtEntityType createdEntityType;
599  std::string objectName;
600  int force;
601  std::vector<DtVector> positions;
602  double heading;
603  double pitch;
604  bool clamped;
607  std::string userData;
609  unsigned int color;
610  unsigned int appearance;
611  bool projected;
615  std::map<std::string, std::string> extendedData;
616  std::map<int, DtString> extendedLabels;
617  std::list<DtSimInterfaceContent*> myContentMessages;
619  std::string overlay;
623  };
624 
626  boost::signals2::signal<void (bool)> signal_altitudeAllowedChanged;
627 
629  boost::signals2::signal<void ( const ObjectManipulationData& )> signal_createObject;
630 
632  boost::signals2::signal<void (const DtString&, const DtString&)> signal_createTerrainProp;
633 
635  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_stopped;
636 
638  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_eventProcessorRemoved;
639 
641  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_complete;
642 
644  boost::signals2::signal<void (const DtVector& )> signal_locationChanged;
645 
647  boost::signals2::signal<void (double)> signal_headingChanged;
648 
650  boost::signals2::signal<void (double)> signal_pitchChanged;
651 
653  boost::signals2::signal<void (double)> signal_altitudeChanged;
654 
656  boost::signals2::signal<void (const DtVector&)> signal_placement;
657 
660  boost::signals2::signal<void (DtVrfObjectManipulationHandlerBaseClass*)> signal_restoreSelectionState;
661 
663  boost::signals2::signal<void (const makVrv::DtUniqueID&)> signal_principalStateViewUpdated;
664 
666  boost::signals2::signal<void (DtVrfObjectFacadeInterface*)> signal_objectFacadeAboutToBeRemoved;
667 
669  boost::signals2::signal<void (int)> signal_forceChanged;
670 
671  protected:
672  virtual void clearConnections();
673 
675  virtual void slot_simObjectEntryToBeRemoved(const makVrv::DtSimObjectEntry&);
676 
678  virtual bool typeIsValidForEditingByHandler(const makVrv::DtElementEntry::ElementType&, const DtEntityType&) const;
679 
680  virtual void slot_onCancel(bool escPressed);
681 
682  virtual std::string stripNumbers(const std::string& base) const;
683 
684  virtual double defaultAltitudeOffsetFor(DtVrfObjectFacadeInterface* i) const;
685 
686  virtual void warpMouseToLocation( makVrv::DtChannel* channel, const DtVector& location ) const ;
687 
690  virtual void initializeEdit();
691 
692  virtual void slot_onPrincipalStateViewUpdated(DtVrlinkSimulatedBaseStateView* principalStateView,
693  const makVrv::DtUniqueID& principalSceneObjectId );
694 
695  virtual void slot_onStateViewUpdated( DtVrlinkSimulatedBaseStateView* editStateView, makVrv::DtUniqueID sceneObjectId,
696  DtVrlinkSimulatedBaseStateView* principalStateView);
697 
699  virtual void initializeLocationChangeConnections();
700 
703  virtual bool centerOn(const makVrv::DtUniqueID& id, DtVector* centerPos = 0, const DtVector* centerHere = 0,
704  bool centerOnOnlyIfMousePositionIsOffWindow = true) const;
705 
706  virtual void setObjectImageAsAnchor(DtVrfObjectFacadeInterface* objectImage, const DtVector& geocLocation,
707  bool resetOrigin = false);
708 
709  virtual void setHeading(DtVrfObjectFacadeInterface* objectImage, double heading);
710  virtual void setPitch(DtVrfObjectFacadeInterface* objectImage, double heading);
711  virtual std::string defaultOverlayFor() const;
712  virtual std::string defaultOverlayFor(const DtModelSetEntry* e) const;
713 
714  virtual bool continueWithHandlerCancelOnLastObjectRemoval();
715  virtual bool isOkToStopEditing();
716  virtual void handlerDisabled();
717 
718  virtual void setObjectImageRelativeToPrincipal(DtVrfObjectFacadeInterface* objectImage,
719  const DtVector& thisGeocLocation, const DtTaitBryan& thisGeocOrientation,
720  const DtVector& prGeocLocation, const DtTaitBryan& prGeocOrientation);
721 
723  virtual void setObjectImageRelativeTo(DtVrfObjectFacadeInterface* objectImage,
724  const DtVector& thisGeocLocation, const DtVector& prGeocLocation, bool relativeOnly = false);
725 
727  virtual void setObjectImageRelativeToAltitudeOnly(DtVrfObjectFacadeInterface* objectImage,
728  const DtVector& thisGeocLocation, const DtVector& prGeocLocation);
729 
730  virtual void initializeInterfaceForEdit(DtVrfObjectFacadeInterface*, makVrv::DtUniqueID,
731  const makVrv::DtVrlinkSimulatedBaseState&, const DtVector& principalLocation, const DtTaitBryan& principalOrientation);
732  virtual void calculateAnchor(const DtVector& localAnchor);
733  virtual void calculateAnchorBasedOnMousePosition(makVrv::DtChannel& channel);
734 
735  virtual void initializeAltitudeAboveTerrainForEdit(double curAlt, const DtVector& curPos,
737 
738  virtual void postCreateInitialize(DtVrfObjectFacadeInterface*);
739 
741  virtual bool clampOnPlacement() const;
742 
744  virtual bool clampAtClosestPolygonOnPlacement() const;
745 
747  virtual void updateOffsetsBasedOnMousePosition();
748 
749  virtual bool setupIgnoreLists();
750 
751  virtual void removeObjectBecauseOfDeletion(DtVrfObjectFacadeInterface*);
752 
754  virtual void slot_elementsCreated(const std::vector<makVrv::DtElementID>&);
755 
756  protected:
759  int myForce;
763  std::string myObjectName;
764  std::string myOverlay;
765 
772 
773  std::string myUserData;
774  std::map<std::string, std::string> myExtendedData;
775  std::map<int, DtString> myExtendedLabels;
776 
777  std::string myKey;
778  std::string myKeyData;
780 
782 
784 
785  boost::signals2::connection myObjectRemovalConnection;
786 
788  DtReferenceEllipsoid* myReferenceForConversion;
790 
794  DtGeodeticCoord myAnchorPosition;
799 
801  std::vector<std::string> myKeywords;
802 
806 
809 
812 
814 
815  typedef std::map<DtVrlinkSimulatedBaseStateView*, makVrv::DtSignalConnectionManager*> StateViewConnections;
822 
825 
826  mutable bool myCheckedEmbark;
827  mutable bool myCanEmbark;
829 
830  mutable std::vector<makVrv::DtElementID> myUnifiedIgnoreList;
831  mutable std::set<makVrv::DtUniqueID> myDIGuyIdsIgnored;
832  mutable std::vector<makVrv::DtUniqueID> myModelIds;
833 
834  std::vector<makVrv::DtElementID> myOverrideIdsToIgnore;
835  std::vector<DtVrfObjectManipulationHandlerBaseClass*> myNotifyOnFinalFacade;
836 
838  };
839 
841  {
842  public:
843  virtual DtVrfObjectManipulationHandlerBaseClass* create() const = 0;
844  };
845 
846  template <typename T>
848  {
849  public:
851  : myDe(de)
852  {
853  }
854 
856  {
857  }
858 
860  {
861  return new T(myDe);
862  }
863 
864  protected:
866  };
867 
868 }
Definition: vrfObjectManipulationHandlerBaseClass.h:61
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool myPublishObject
Definition: vrfObjectManipulationHandlerBaseClass.h:800
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:666
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:660
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:797
std::map< std::string, std::string > extendedData
Definition: vrfObjectManipulationHandlerBaseClass.h:615
Definition: vrfObjectManipulationHandlerBaseClass.h:45
int mySelectionCount
Definition: vrfObjectManipulationHandlerBaseClass.h:810
virtual ~ObjectManipulationData()
Definition: vrfObjectManipulationHandlerBaseClass.h:540
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:503
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_stopped
Sent when entity creation has stopped.
Definition: vrfObjectManipulationHandlerBaseClass.h:635
bool myOwnsEventProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:767
bool myOverlayHasBeenSet
Definition: vrfObjectManipulationHandlerBaseClass.h:823
Definition: vrfObjectManipulationHandlerBaseClass.h:62
DtReferenceEllipsoid * myReferenceForConversion
Definition: vrfObjectManipulationHandlerBaseClass.h:788
bool myGroundClampOnPlacement
Definition: vrfObjectManipulationHandlerBaseClass.h:798
DtVrfObjectManipulationEventProcessor * myEventProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:766
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:497
std::vector< makVrv::DtElementID > myOverrideIdsToIgnore
Definition: vrfObjectManipulationHandlerBaseClass.h:834
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
std::vector< DtVector > positions
Definition: vrfObjectManipulationHandlerBaseClass.h:601
DtEntityType entityType
If you want content messages cloned and deleted use the set command.
Definition: vrfObjectManipulationHandlerBaseClass.h:597
Definition: vrfObjectManipulationHandlerBaseClass.h:57
std::string overlay
Definition: vrfObjectManipulationHandlerBaseClass.h:619
bool myMultiSelection
Definition: vrfObjectManipulationHandlerBaseClass.h:811
bool myShowPropertiesDialogBeforeCreate
Definition: vrfObjectManipulationHandlerBaseClass.h:793
DtVrfObjectManipulationHandlerCreator(makVrv::DtDe &de)
Definition: vrfObjectManipulationHandlerBaseClass.h:850
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_eventProcessorRemoved
Sent when the event processor has been destroyed.
Definition: vrfObjectManipulationHandlerBaseClass.h:638
bool isAggregated
Definition: vrfObjectManipulationHandlerBaseClass.h:606
boost::signals2::signal< void(double)> signal_headingChanged
signal sent when the mouse changes the orientation of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:647
std::map< DtVrlinkSimulatedBaseStateView *, makVrv::DtSignalConnectionManager * > StateViewConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:815
bool myDoNotClamp
Definition: vrfObjectManipulationHandlerBaseClass.h:828
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(DtVrfObjectFacadeInterface *, DtVrlinkSimulatedBaseStateView *editStateView)> signal_preVisualization
Signal sent before any visualizers are created on the interface.
Definition: vrfObjectManipulationHandlerBaseClass.h:493
boost::signals2::signal< void(double)> signal_pitchChanged
signal sent when the mouse changes the pitch of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:650
bool myEmbarkInSlotIfAvailable
Definition: vrfObjectManipulationHandlerBaseClass.h:821
Definition: vrfObjectManipulationHandlerBaseClass.h:64
bool isProjected
Definition: vrfObjectManipulationHandlerBaseClass.h:605
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:616
Definition: vrfObjectManipulationHandlerBaseClass.h:58
void deleteContentMessages()
Definition: vrfObjectManipulationHandlerBaseClass.h:548
std::vector< makVrv::DtUniqueID > myModelIds
Definition: vrfObjectManipulationHandlerBaseClass.h:832
A DtSimEntry is a container of DtSimState&#39;s and represents the total state of an simulation object...
Definition: DtSimEntry.h:27
const std::vector< std::string > & keywords() const
Definition: vrfObjectManipulationHandlerBaseClass.h:387
int myForce
Definition: vrfObjectManipulationHandlerBaseClass.h:759
std::string userData
Definition: vrfObjectManipulationHandlerBaseClass.h:607
std::vector< makVrv::DtElementID > myUnifiedIgnoreList
Definition: vrfObjectManipulationHandlerBaseClass.h:830
bool isPublished
Definition: vrfObjectManipulationHandlerBaseClass.h:608
double heading
Definition: vrfObjectManipulationHandlerBaseClass.h:602
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
VrfObjectEditFacadeList myObjectImages
Definition: vrfObjectManipulationHandlerBaseClass.h:787
bool myWarpMouseToOrigin
Definition: vrfObjectManipulationHandlerBaseClass.h:824
double physicalLineWidth
Definition: vrfObjectManipulationHandlerBaseClass.h:613
std::string myOverlay
Definition: vrfObjectManipulationHandlerBaseClass.h:764
makVrv::DtDe & myDe
Definition: vrfObjectManipulationHandlerBaseClass.h:865
std::map< int, DtString > myExtendedLabels
Definition: vrfObjectManipulationHandlerBaseClass.h:775
boost::signals2::signal< void(const DtVector &)> signal_placement
signal sent when the left mouse is pressed during creation/editing
Definition: vrfObjectManipulationHandlerBaseClass.h:656
double physicalLineHeight
Definition: vrfObjectManipulationHandlerBaseClass.h:612
Definition: vrfObjectManipulationHandlerBaseClass.h:47
std::map< std::string, DtSimInterfaceContent * > ContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:94
makVrv::DtSignalConnectionManager myCreateConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:819
DtGeodeticCoord myAnchorPosition
Definition: vrfObjectManipulationHandlerBaseClass.h:794
Definition: vrfObjectManipulationHandlerBaseClass.h:46
The abstract Channel Class.
Definition: DtChannel.h:35
Definition: modelSetEntry.h:34
std::string myKeyData
Definition: vrfObjectManipulationHandlerBaseClass.h:778
double myTotalTimeElapsed
Definition: vrfObjectManipulationHandlerBaseClass.h:796
std::string myObjectName
Definition: vrfObjectManipulationHandlerBaseClass.h:763
boost::signals2::signal< void(double)> signal_altitudeChanged
signal sent when the mouse changes the altitude of an object during creation/editing ...
Definition: vrfObjectManipulationHandlerBaseClass.h:653
DtUUID myUUIDForCreation
Definition: vrfObjectManipulationHandlerBaseClass.h:813
bool projected
Definition: vrfObjectManipulationHandlerBaseClass.h:611
DtAltitudeClampType altitudeClampType() const
Definition: vrfObjectManipulationHandlerBaseClass.h:294
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
Definition: vrfObjectFacadeInterface.h:54
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:477
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:480
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:599
unsigned int color
Definition: vrfObjectManipulationHandlerBaseClass.h:609
DtAltitudeClampType myAltitudeClampType
Definition: vrfObjectManipulationHandlerBaseClass.h:789
boost::signals2::signal< void(bool)> signal_attachObjectToMouse
Signal sent when attached object to mouse changes.
Definition: vrfObjectManipulationHandlerBaseClass.h:490
int force
Definition: vrfObjectManipulationHandlerBaseClass.h:600
Definition: vrfObjectManipulationHandlerBaseClass.h:90
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > DtVrlinkSimulatedBaseStateView
Definition: vrfObjectManipulationHandlerBaseClass.h:83
bool myAltitudeIsDragging
Definition: vrfObjectManipulationHandlerBaseClass.h:768
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:604
HandlerType
The type of handler this is.
Definition: vrfObjectManipulationHandlerBaseClass.h:52
Contains makVrv::DtVrlinkSimulatedEntityState class.
boost::signals2::signal< void(const DtString &, const DtString &)> signal_createTerrainProp
signal sent when prop wants to be created
Definition: vrfObjectManipulationHandlerBaseClass.h:632
bool myCreationEndedWithDoubleClick
Definition: vrfObjectManipulationHandlerBaseClass.h:837
makVrv::DtSelectionManager::IdSet myEditingObjects
Definition: vrfObjectManipulationHandlerBaseClass.h:783
bool myCheckedEmbark
Definition: vrfObjectManipulationHandlerBaseClass.h:826
bool creating() const
Definition: vrfObjectManipulationHandlerBaseClass.h:301
Definition: vrfObjectManipulationHandlerBaseClass.h:63
ElementType
Definition: DtElementEntry.h:26
makVrv::DtUniqueID myEmbarkOnId
Definition: vrfObjectManipulationHandlerBaseClass.h:820
void addContentMessage(const DtSimInterfaceContent &message)
Definition: vrfObjectManipulationHandlerBaseClass.h:591
Definition: vrfObjectManipulationHandlerBaseClass.h:840
DtTimedSection * myDeferredStopTimer
Definition: vrfObjectManipulationHandlerBaseClass.h:795
boost::signals2::signal< void(const makVrv::DtUniqueID &)> signal_principalStateViewUpdated
Sent when principal state view is updated for editing.
Definition: vrfObjectManipulationHandlerBaseClass.h:663
boost::signals2::signal< void(DtVrfObjectManipulationHandlerBaseClass *)> signal_complete
Sent when entity creation has completed (right-click)
Definition: vrfObjectManipulationHandlerBaseClass.h:641
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
ContentMessages myContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:807
StateViewConnections myStateViewConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:816
std::vector< std::string > myKeywords
Definition: vrfObjectManipulationHandlerBaseClass.h:801
boost::signals2::signal< void(int)> signal_forceChanged
Sent when force changed.
Definition: vrfObjectManipulationHandlerBaseClass.h:669
boost::signals2::connection myObjectRemovalConnection
Definition: vrfObjectManipulationHandlerBaseClass.h:785
std::set< makVrv::DtUniqueID > myDIGuyIdsIgnored
Definition: vrfObjectManipulationHandlerBaseClass.h:831
bool myAltitudeAllowed
Definition: vrfObjectManipulationHandlerBaseClass.h:769
Definition: vrfObjectManipulationHandlerBaseClass.h:505
makVrv::DtDe & myDe
Definition: vrfObjectManipulationHandlerBaseClass.h:760
makVrv::DtChannel * myHiddenChannel
Definition: vrfObjectManipulationHandlerBaseClass.h:771
virtual DtVrfObjectManipulationHandlerBaseClass * create() const
Definition: vrfObjectManipulationHandlerBaseClass.h:859
double pitch
Definition: vrfObjectManipulationHandlerBaseClass.h:603
Definition: vrfObjectManipulationHandlerBaseClass.h:59
Definition: vrfObjectManipulationHandlerBaseClass.h:67
bool myAllowCreationOnClick
Definition: vrfObjectManipulationHandlerBaseClass.h:762
Base class to provide boost signal/slot management.
bool myIgnoreFirstMouseClick
Definition: vrfObjectManipulationHandlerBaseClass.h:792
boost::signals2::signal< void(bool)> signal_altitudeAllowedChanged
signal sent when altitude allowed changes
Definition: vrfObjectManipulationHandlerBaseClass.h:626
boost::signals2::signal< void(const DtEntityType &, int)> signal_started
Signaled when entity creation has started.
Definition: vrfObjectManipulationHandlerBaseClass.h:500
bool myFacadesVisible
Definition: vrfObjectManipulationHandlerBaseClass.h:804
Definition: vrfObjectManipulationHandlerBaseClass.h:69
std::list< DtSimInterfaceContent * > myContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:617
Definition: vrfObjectManipulationHandlerBaseClass.h:54
DtCreationSignalType mySignalCreation
Definition: vrfObjectManipulationHandlerBaseClass.h:779
bool isClosedFigure
Definition: vrfObjectManipulationHandlerBaseClass.h:614
std::vector< DtVrfObjectManipulationHandlerBaseClass * > myNotifyOnFinalFacade
Definition: vrfObjectManipulationHandlerBaseClass.h:835
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:487
const ContentMessages & contentMessages() const
Definition: vrfObjectManipulationHandlerBaseClass.h:188
bool myClearedProcessor
Definition: vrfObjectManipulationHandlerBaseClass.h:770
bool myOwnsContentMessages
Definition: vrfObjectManipulationHandlerBaseClass.h:618
Contains makVrv::DtUniqueID type.
bool mySignalOnMultiSelectionComplete
Definition: vrfObjectManipulationHandlerBaseClass.h:781
Definition: vrfObjectManipulationHandlerBaseClass.h:56
std::string myUserData
Definition: vrfObjectManipulationHandlerBaseClass.h:773
Definition: vrfObjectManipulationHandlerBaseClass.h:65
ObjectManipulationData(const ObjectManipulationData &omd)
Definition: vrfObjectManipulationHandlerBaseClass.h:510
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:72
Definition: simInterfaceContent.h:45
boost::signals2::signal< void(const ObjectManipulationData &)> signal_createObject
signal sent when object wants to be created
Definition: vrfObjectManipulationHandlerBaseClass.h:629
bool myOverlayChanged
Definition: vrfObjectManipulationHandlerBaseClass.h:791
bool myAttachObjectToMouse
Definition: vrfObjectManipulationHandlerBaseClass.h:758
Definition: vrfObjectManipulationHandlerBaseClass.h:847
bool myCreating
Definition: vrfObjectManipulationHandlerBaseClass.h:757
bool myShowingPropertiesDialog
Definition: vrfObjectManipulationHandlerBaseClass.h:817
std::vector< DtVrfObjectFacadeInterface * > VrfObjectEditFacadeList
Definition: vrfObjectManipulationHandlerBaseClass.h:93
virtual DtSimInterfaceContent * clone() const =0
bool myCanEmbark
Definition: vrfObjectManipulationHandlerBaseClass.h:827
makVrv::DtSignalConnectionManager myConnections
Definition: vrfObjectManipulationHandlerBaseClass.h:818
DtEditingType myEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:808
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
DtUUID initialUUID
Definition: vrfObjectManipulationHandlerBaseClass.h:622
DtEntityType createdEntityType
Definition: vrfObjectManipulationHandlerBaseClass.h:598
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:576
std::string myKey
Definition: vrfObjectManipulationHandlerBaseClass.h:777
bool mySignalManipulation
Definition: vrfObjectManipulationHandlerBaseClass.h:761
void setContentMessages(const ContentMessages &messages)
Definition: vrfObjectManipulationHandlerBaseClass.h:561
boost::signals2::signal< void(const DtVector &)> signal_locationChanged
signal sent when the mouse changes location during creation/editing
Definition: vrfObjectManipulationHandlerBaseClass.h:644
Creates the object immediately without waiting for a mouse click.
Definition: vrfObjectManipulationHandlerBaseClass.h:80
std::map< std::string, std::string > myExtendedData
Definition: vrfObjectManipulationHandlerBaseClass.h:774
int myCursorCount
Definition: vrfObjectManipulationHandlerBaseClass.h:803
unsigned int appearance
Definition: vrfObjectManipulationHandlerBaseClass.h:610
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:44
DtVrlinkSimulatedBaseStateView * myPrincipalStateView
Definition: vrfObjectManipulationHandlerBaseClass.h:805
ObjectManipulationData()
Definition: vrfObjectManipulationHandlerBaseClass.h:507
DtEditingType editingType() const
Definition: vrfObjectManipulationHandlerBaseClass.h:395
bool useSlotIfAvailable
Definition: vrfObjectManipulationHandlerBaseClass.h:621
virtual ~DtVrfObjectManipulationHandlerCreator()
Definition: vrfObjectManipulationHandlerBaseClass.h:855
Definition: vrfObjectManipulationHandlerBaseClass.h:66
makVrv::DtUniqueID embarkId
Definition: vrfObjectManipulationHandlerBaseClass.h:620

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)