VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectFacadeInterface.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
16 #include <vrvCore/DtUniqueID.h>
17 #include <vrvCore/DtIntersector.h>
20 
21 #include <matrix/vlVector.h>
22 #include <matrix/geodeticCoord.h>
23 #include <matrix/3dBoundingVolume.h>
24 #include <matrix/vlTaitBryan.h>
25 #include <string>
26 #include <vlpi/entityType.h>
27 #include <vrfutil/rwUUID.h>
28 
29 #include <boost/signals2.hpp>
30 #include <set>
31 #include <vector>
32 
33 class DtReferenceEllipsoid;
34 
35 namespace makVrv
36 {
37  class DtDe;
38  class DtChannel;
39  class DtWindow;
40 }
41 
42 namespace makVrf
43 {
45  {
46  NoClamp = 0,
50  };
51 
52  class DtVrfObjectManipulationHandlerBaseClass;
53 
55  {
56  public:
58 
59  virtual ~DtVrfObjectFacadeInterface();
60 
61  virtual const std::string& entityId() const
62  {
63  return myEntityId;
64  }
65 
66  virtual void setEntityId(const std::string& i)
67  {
68  myEntityId = i;
69  }
70 
71  virtual void setTopographicOffsetBetweenPoints(const DtGeodeticCoord& origin, const DtGeodeticCoord& originWithOffset, bool resetLocation = true);
72  virtual void setTopographicOffsetFromPrincipal(const DtVector&, bool resetLocation = true);
73  const DtVector& topographicOffsetFromPrincipal() const;
74 
75  virtual DtVector convertGeodeticOffsetFromOriginToTopographicOffsetFromOrigin(const DtGeodeticCoord&) const;
76  virtual DtGeodeticCoord locationFromTopographicOffsetFromCenterPoint(const DtGeodeticCoord& origin) const;
77  virtual DtVector convertGeodeticOffsetToTopographicOffset(const DtGeodeticCoord& origin, const DtGeodeticCoord& position) const;
78 
79  virtual double headingOffsetFromPrincipal() const;
80  virtual void setHeadingOffsetFromPrincipal( double offset );
81 
82  virtual double pitchOffsetFromPrincipal() const;
83  virtual void setPitchOffsetFromPrincipal( double offset );
84 
85  virtual const DtEntityType& entityType() const;
86  virtual DtObjectType objectType() const;
87 
88  virtual Dt3dBoundingVolume boundingVolume(makVrv::DtModelSetId modelSet = makVrv::DtModelSetId::Models3D) const;
89 
90  virtual DtGeodeticCoord modifyPointByTopographicOffset(const DtGeodeticCoord& origin, const DtVector& topographicOffset) const;
91  virtual double altitudeOffsetFromPrincipal() const;
92  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
93 
94  virtual makVrv::DtUniqueID uniqueIDForModelSet(makVrv::DtModelSetId set) const = 0;
95  virtual makVrv::DtUniqueID uniqueID() const = 0;
96  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const = 0;
97 
100  virtual void setOverrideIdsToIgnore(const std::vector<makVrv::DtUniqueID>& overrideIgnore);
101 
103  virtual const std::vector<makVrv::DtUniqueID>& idsToIgnore() const;
104 
105  virtual makVrv::DtUniqueID sceneObjectId() const;
106  virtual void setSceneObjectId( const makVrv::DtUniqueID& id );
107 
108  virtual std::string displayName() const;
109  virtual void setDisplayName( const std::string& displayName );
110 
111  virtual void setUUID(const DtUUID&);
112  virtual const DtUUID& uuid() const;
113 
114  virtual DtGeodeticCoord currentGeodeticOrigin() const;
115 
117  virtual DtGeodeticCoord currentGeodeticPosition() const;
118 
119  virtual DtGeodeticCoord convertToGeodetic(const DtVector& v) const;
120 
121  virtual double currentHeading() const;
122  virtual void setCurrentHeading( double currentHeading );
123  virtual void setHeadingChanged(bool b);
124 
125  virtual double currentPitch() const;
126  virtual void setCurrentPitch( double currentPitch );
127  virtual void setPitchChanged(bool b);
128 
130  virtual void setSelected(bool);
131 
133  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan& offsetOrientation);
134  const DtVector& attachedPoint() const
135  {
136  return myAttachPoint;
137  }
138 
139  const DtTaitBryan& attachedOrientation()
140  {
141  return myAttachOrientation;
142  }
143 
145  {
146  return myAttachedTo;
147  }
148 
149  virtual bool attachedTo() const;
150  virtual void detach();
151 
153  virtual std::string overlayName() const;
154 
156  virtual double currentAltitude() const;
157 
159  virtual DtVector centerOfMass() const;
160 
161  virtual DtVector geocentricLocation() const;
162  virtual DtVector localLocation() const;
163  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
164 
166  virtual double initialAltitudeAboveTerrain() const;
167 
169  virtual DtVector reviseLocation(const DtVector& loc, int clampType = -1) const;
170 
172  virtual DtTaitBryan localOrientation() const;
173 
175  virtual void setExtendedData(const std::map<std::string, std::string>&)
176  {
177  }
178 
179  virtual void mergeExtendedData(const std::map<std::string, std::string>&)
180  {
181  }
182 
183  virtual std::map<std::string, std::string> extendedData() const
184  {
185  return std::map<std::string, std::string>();
186  }
187  virtual std::map<int, DtString> extendedLabels() const
188  {
189  return std::map<int, DtString>();
190  }
191 
192  boost::signals2::signal<void (DtVrfObjectFacadeInterface*)> signal_visualized;
193  boost::signals2::signal<void (DtVrfObjectFacadeInterface*)> signal_originChanged;
194  boost::signals2::signal<void (DtVrfObjectFacadeInterface*, bool)> signal_selected;
195 
196  public:
198 
199  virtual void setOrigin(const DtGeodeticCoord&);
200  virtual void setOrigin(const DtVector&);
201 
202  virtual void setSymbolNameVisible(bool, makVrv::DtModelSetId modelSet = makVrv::DtModelSetId::Icons2D) = 0;
203 
204  virtual void setPickable(bool) = 0;
205  virtual void setIndicatorVisible(bool) = 0;
206  virtual void setWidgetEventsEnabled(bool) = 0;
207  virtual void setHatLineVisible(bool) = 0;
208 
212  virtual void setVisible(bool, makVrv::DtShowHideContext::ShowHideContext, bool updateOffsets = true) = 0;
213  virtual bool isVisible() const = 0;
214 
216  virtual void setVisible(bool show, bool updateOffsets = true);
217 
219  virtual void setTopographicOrientation(const DtTaitBryan&) = 0;
220  virtual void setLocalOrientation(const DtTaitBryan&) = 0;
221 
223  virtual void unrealizeFacades(bool willRecreate = false) = 0;
224 
226  virtual void realizeFacades() = 0;
227 
228  virtual bool hasNameChange() const
229  {
230  return myDisplayNameChanged;
231  }
232 
233  virtual void clearLocationChange()
234  {
235  myLocationChanged = false;
236  }
237 
238  virtual bool hasLocationChange() const
239  {
240  return myLocationChanged;
241  }
242 
243  virtual bool hasAltitudeChange() const
244  {
245  return myAltitudeChanged;
246  }
247 
248  virtual bool hasHeadingChange() const
249  {
250  return myHeadingChanged;
251  }
252 
253  virtual bool hasPitchChange() const
254  {
255  return myPitchChanged;
256  }
257 
258  virtual void clearFlags();
259 
260  virtual void setAltitudeClampType(DtAltitudeClampType t);
262  {
263  return myAltitudeClampType;
264  }
265 
266  virtual void setAltitudeAboveTerrain(double);
267  virtual double altitudeAboveTerrain() const
268  {
269  return myAltitudeAboveGL;
270  }
271 
272  virtual void setAltitudeAboveSeaLevel(double);
273  virtual double altitudeAboveSeaLevel() const
274  {
275  return myAltitudeAboveSL;
276  }
277 
278  virtual void setIsAnchor(bool);
279  virtual bool isAnchor() const
280  {
281  return myAnchor;
282  }
283 
284  virtual void setUserData(const std::string& userData);
285  virtual std::string userData() const;
286  bool userDataChanged() const
287  {
288  return myUserDataChanged;
289  }
290 
292  {
293  return myModelSetOnly;
294  }
295 
297  {
298  return ((myModelSetOnly == makVrv::DtModelSetId::Unspecified) || (i == myModelSetOnly));
299  }
300 
301  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
302 
303  virtual DtVector clampToLowestNonOceanPolygon( const DtVector& lp, makVrv::DtIntersector::IntersectProperties props ) const;
304  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
305  makVrv::DtIntersector::SupportNodes, int clampType = -1 ) const;
306  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
307  makVrv::DtIntersector::SupportNodes, int clampType = -1 ) const;
308 
309  virtual void setEmbarkationAllowed(bool);
310  bool embarkationAllowed() const;
311 
312  virtual void setDoNotClamp(bool b)
313  {
314  if (b)
315  {
316  myAltitudeClampType = NoClamp;
317  }
318  else
319  {
320  myAltitudeClampType = AltitudeAboveTerrain;
321  }
322  }
323 
324  bool doNotClamp() const
325  {
326  return (myAltitudeClampType == NoClamp);
327  }
328 
329  virtual void setClampToClosestPolygon(bool b)
330  {
331  myClampToClosestPolygon = b;
332  }
333 
335  {
336  return myClampToClosestPolygon;
337  }
338 
339  protected:
340  virtual void setCurrentGroundLocation( const DtGeodeticCoord& currentGroundLocation );
341 
342  protected:
345  std::string myDisplayName;
346  std::string myEntityId;
347 
348  DtTaitBryan myOrientationOffset;
350 
351  DtGeodeticCoord myCurrentGroundLocation;
352  DtTaitBryan myOrientation;
353 
360 
364  bool myAnchor;
365  std::string myUserData;
366 
368  DtEntityType myEntityType;
372 
375  DtTaitBryan myAttachOrientation;
376 
377  mutable std::vector<makVrv::DtElementID> myUnifiedIgnoreList;
378  mutable std::set<makVrv::DtUniqueID> myDIGuyIdsIgnored;
379  mutable std::vector<makVrv::DtUniqueID> myModelIds;
380 
381  std::vector<makVrv::DtUniqueID> myOverrideIdsToIgnore;
382 
384  typedef std::map<makVrv::DtModelSetId, bool> ModelSetVisualizationMap;
386  };
387 }
double myAltitudeOffsetFromPrincipal
Definition: vrfObjectFacadeInterface.h:349
DtTaitBryan myOrientation
geodetic coords
Definition: vrfObjectFacadeInterface.h:352
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual bool isAnchor() const
Definition: vrfObjectFacadeInterface.h:279
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
bool userDataChanged() const
Definition: vrfObjectFacadeInterface.h:286
std::vector< makVrv::DtUniqueID > myModelIds
Definition: vrfObjectFacadeInterface.h:379
bool myClampToClosestPolygon
Definition: vrfObjectFacadeInterface.h:369
ModelSetVisualizationMap myModelSetVisualizationMap
Definition: vrfObjectFacadeInterface.h:385
double myAltitudeAboveSL
Definition: vrfObjectFacadeInterface.h:362
std::vector< makVrv::DtUniqueID > myOverrideIdsToIgnore
Definition: vrfObjectFacadeInterface.h:381
virtual bool hasAltitudeChange() const
Definition: vrfObjectFacadeInterface.h:243
virtual bool hasNameChange() const
Definition: vrfObjectFacadeInterface.h:228
virtual std::map< std::string, std::string > extendedData() const
Definition: vrfObjectFacadeInterface.h:183
std::vector< makVrv::DtElementID > myUnifiedIgnoreList
Definition: vrfObjectFacadeInterface.h:377
voidpf uLong int origin
Definition: ioapi.h:42
Contains integers that determine the context with which to show/hide a visualizer.
virtual const std::string & entityId() const
Definition: vrfObjectFacadeInterface.h:61
DtVector myTopographicOffsetFromPrincipal
Definition: vrfObjectFacadeInterface.h:383
bool doNotClamp() const
Definition: vrfObjectFacadeInterface.h:324
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_visualized
Definition: vrfObjectFacadeInterface.h:192
ShowHideContext
Definition: DtShowHideContext.h:18
bool myPitchChanged
Definition: vrfObjectFacadeInterface.h:358
virtual double altitudeAboveSeaLevel() const
Definition: vrfObjectFacadeInterface.h:273
Contains the DtUUID class declaration.
Definition: vrfObjectFacadeInterface.h:48
std::map< makVrv::DtModelSetId, bool > ModelSetVisualizationMap
Definition: vrfObjectFacadeInterface.h:384
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
virtual std::map< int, DtString > extendedLabels() const
Definition: vrfObjectFacadeInterface.h:187
virtual void setExtendedData(const std::map< std::string, std::string > &)
For subclasses to implement...
Definition: vrfObjectFacadeInterface.h:175
bool supportsModelSet(makVrv::DtModelSetId i) const
Definition: vrfObjectFacadeInterface.h:296
bool myDisplayNameChanged
Definition: vrfObjectFacadeInterface.h:354
Definition: objectType.h:27
bool clampToClosestPolygon() const
Definition: vrfObjectFacadeInterface.h:334
Definition: vrfObjectFacadeInterface.h:46
makVrv::DtModelSetId modelSet() const
Definition: vrfObjectFacadeInterface.h:291
double myAltitudeAboveGL
Definition: vrfObjectFacadeInterface.h:363
makVrv::DtUniqueID mySceneObjectId
Definition: vrfObjectFacadeInterface.h:344
Contains makVrv:DtIntersector class.
makVrv::DtDe & myDe
Definition: vrfObjectFacadeInterface.h:343
DtVrfObjectFacadeInterface * attachedToObject() const
Definition: vrfObjectFacadeInterface.h:144
bool myHeadingChanged
Definition: vrfObjectFacadeInterface.h:357
virtual bool hasPitchChange() const
Definition: vrfObjectFacadeInterface.h:253
DtGeodeticCoord myCurrentGroundLocation
Definition: vrfObjectFacadeInterface.h:351
bool myUserDataChanged
Definition: vrfObjectFacadeInterface.h:359
Definition: vrfObjectFacadeInterface.h:54
bool myAnchor
Definition: vrfObjectFacadeInterface.h:364
DtUUID myUUID
Definition: vrfObjectFacadeInterface.h:370
std::string myDisplayName
Definition: vrfObjectFacadeInterface.h:345
Definition: DtIntersector.h:35
bool myAltitudeChanged
Definition: vrfObjectFacadeInterface.h:356
virtual DtAltitudeClampType altitudeClampType() const
Definition: vrfObjectFacadeInterface.h:261
std::string myEntityId
Definition: vrfObjectFacadeInterface.h:346
DtAltitudeClampType myAltitudeClampType
Definition: vrfObjectFacadeInterface.h:361
DtVector myAttachPoint
Definition: vrfObjectFacadeInterface.h:374
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
virtual bool hasLocationChange() const
Definition: vrfObjectFacadeInterface.h:238
Definition: vrfObjectFacadeInterface.h:47
virtual void setClampToClosestPolygon(bool b)
Definition: vrfObjectFacadeInterface.h:329
Definition: vrfObjectFacadeInterface.h:49
virtual void setEntityId(const std::string &i)
Definition: vrfObjectFacadeInterface.h:66
std::string myUserData
Definition: vrfObjectFacadeInterface.h:365
DtVrfObjectFacadeInterface * myAttachedTo
Definition: vrfObjectFacadeInterface.h:373
virtual void setDoNotClamp(bool b)
Definition: vrfObjectFacadeInterface.h:312
makVrv::DtModelSetId myModelSetOnly
Definition: vrfObjectFacadeInterface.h:367
Contains makVrv::DtUniqueID type.
const DtTaitBryan & attachedOrientation()
Definition: vrfObjectFacadeInterface.h:139
DtTaitBryan myOrientationOffset
Definition: vrfObjectFacadeInterface.h:348
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
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_originChanged
Definition: vrfObjectFacadeInterface.h:193
bool myEmbarkationAllowed
Definition: vrfObjectFacadeInterface.h:371
DtTaitBryan myAttachOrientation
Definition: vrfObjectFacadeInterface.h:375
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, bool)> signal_selected
Definition: vrfObjectFacadeInterface.h:194
virtual bool hasHeadingChange() const
Definition: vrfObjectFacadeInterface.h:248
DtEntityType myEntityType
Definition: vrfObjectFacadeInterface.h:368
virtual void mergeExtendedData(const std::map< std::string, std::string > &)
Definition: vrfObjectFacadeInterface.h:179
bool myLocationChanged
Definition: vrfObjectFacadeInterface.h:355
std::set< makVrv::DtUniqueID > myDIGuyIdsIgnored
Definition: vrfObjectFacadeInterface.h:378
Contains various enum classes relating to model sets.
virtual void clearLocationChange()
Definition: vrfObjectFacadeInterface.h:233
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:44
virtual double altitudeAboveTerrain() const
Definition: vrfObjectFacadeInterface.h:267
const DtVector & attachedPoint() const
Definition: vrfObjectFacadeInterface.h:134

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)