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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)