VR-Forces 4.7 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 <boost/signal.hpp>
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 const DtEntityType& entityType() const;
76 
77  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
78 
79  virtual DtGeodeticCoord modifyPointByTopographicOffset(const DtGeodeticCoord& origin, const DtVector& topographicOffset) const;
80  virtual double altitudeOffsetFromPrincipal() const;
81  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
82 
83  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const = 0;
84  virtual makVrv::DtUniqueID uniqueID() const = 0;
85  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const = 0;
86 
89  virtual void setOverrideIdsToIgnore(const std::vector<makVrv::DtUniqueID>& overrideIgnore);
90 
92  virtual const std::vector<makVrv::DtUniqueID>& idsToIgnore() const;
93 
94  virtual makVrv::DtUniqueID sceneObjectId() const;
95  virtual void setSceneObjectId( const makVrv::DtUniqueID& id );
96 
97  virtual std::string displayName() const;
98  virtual void setDisplayName( const std::string& displayName );
99 
100  virtual void setUUID(const DtUUID&);
101  virtual const DtUUID& uuid() const;
102 
103  virtual DtGeodeticCoord currentGeodeticOrigin() const;
104 
106  virtual DtGeodeticCoord currentGeodeticPosition() const;
107 
108  virtual DtGeodeticCoord convertToGeodetic(const DtVector& v) const;
109 
110  virtual double currentHeading() const;
111  virtual void setCurrentHeading( double currentHeading );
112  virtual void setHeadingChanged(bool b);
113 
115  virtual void setSelected(bool);
116 
118  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan& offsetOrientation);
119  const DtVector& attachedPoint() const
120  {
121  return myAttachPoint;
122  }
123 
124  const DtTaitBryan& attachedOrientation()
125  {
126  return myAttachOrientation;
127  }
128 
129  DtVrfObjectFacadeInterface* attachedToObject() const
130  {
131  return myAttachedTo;
132  }
133 
134  virtual bool attachedTo() const;
135  virtual void detach();
136 
138  virtual std::string overlayName() const;
139 
141  virtual double currentAltitude() const;
142 
144  virtual DtVector centerOfMass() const;
145 
146  virtual DtVector geocentricLocation() const;
147  virtual DtVector localLocation() const;
148  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
149 
151  virtual double initialAltitudeAboveTerrain() const;
152 
154  virtual DtVector reviseLocation(const DtVector& loc, int clampType = -1) const;
155 
157  virtual DtTaitBryan localOrientation() const;
158 
160  virtual void setExtendedData(const std::map<std::string, std::string>&)
161  {
162  }
163 
164  virtual void mergeExtendedData(const std::map<std::string, std::string>&)
165  {
166  }
167 
168  virtual std::map<std::string, std::string> extendedData() const
169  {
170  return std::map<std::string, std::string>();
171  }
172  virtual std::map<int, DtString> extendedLabels() const
173  {
174  return std::map<int, DtString>();
175  }
176 
177  boost::signal<void (DtVrfObjectFacadeInterface*)> signal_visualized;
178  boost::signal<void (DtVrfObjectFacadeInterface*)> signal_originChanged;
179 
180  public:
182 
183  virtual void setOrigin(const DtGeodeticCoord&);
184  virtual void setOrigin(const DtVector&);
185 
186  virtual void setSymbolNameVisible(bool) = 0;
187 
188  virtual void setPickable(bool) = 0;
189  virtual void setIndicatorVisible(bool) = 0;
190  virtual void setWidgetEventsEnabled(bool) = 0;
191  virtual void setHatLineVisible(bool) = 0;
192 
196  virtual void setVisible(bool, bool updateOffsets = true);
197  virtual bool isVisible() const;
198 
200  virtual void setTopographicOrientation(const DtTaitBryan&) = 0;
201  virtual void setLocalOrientation(const DtTaitBryan&) = 0;
202 
204  virtual void unrealizeFacades() = 0;
205 
207  virtual void realizeFacades() = 0;
208 
209  virtual bool hasNameChange() const
210  {
211  return myDisplayNameChanged;
212  }
213 
214  virtual void clearLocationChange()
215  {
216  myLocationChanged = false;
217  }
218 
219  virtual bool hasLocationChange() const
220  {
221  return myLocationChanged;
222  }
223 
224  virtual bool hasAltitudeChange() const
225  {
226  return myAltitudeChanged;
227  }
228 
229  virtual bool hasHeadingChange() const
230  {
231  return myHeadingChanged;
232  }
233 
234  virtual void clearFlags();
235 
236  virtual void setAltitudeClampType(DtAltitudeClampType t);
237  virtual DtAltitudeClampType altitudeClampType() const
238  {
239  return myAltitudeClampType;
240  }
241 
242  virtual void setAltitudeAboveTerrain(double);
243  virtual double altitudeAboveTerrain() const
244  {
245  return myAltitudeAboveGL;
246  }
247 
248  virtual void setAltitudeAboveSeaLevel(double);
249  virtual double altitudeAboveSeaLevel() const
250  {
251  return myAltitudeAboveSL;
252  }
253 
254  virtual void setIsAnchor(bool);
255  virtual bool isAnchor() const
256  {
257  return myAnchor;
258  }
259 
260  virtual void setUserData(const std::string& userData);
261  virtual std::string userData() const;
262  bool userDataChanged() const
263  {
264  return myUserDataChanged;
265  }
266 
267  int modelSet() const
268  {
269  return myModelSetOnly;
270  }
271 
272  bool supportsModelSet(int i) const
273  {
274  return ((myModelSetOnly == -1) || (i == myModelSetOnly));
275  }
276 
277  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
278 
279  virtual DtVector clampToLowestNonOceanPolygon( const DtVector& lp, makVrv::DtIntersector::IntersectProperties props ) const;
280  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
281  makVrv::DtIntersector::SupportNodes, int clampType = -1 ) const;
282  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
283  makVrv::DtIntersector::SupportNodes, int clampType = -1 ) const;
284 
285  virtual void setEmbarkationAllowed(bool);
286  bool embarkationAllowed() const;
287 
288  virtual void setDoNotClamp(bool b)
289  {
290  if (b)
291  {
292  myAltitudeClampType = NoClamp;
293  }
294  else
295  {
296  myAltitudeClampType = AltitudeAboveTerrain;
297  }
298  }
299 
300  bool doNotClamp() const
301  {
302  return (myAltitudeClampType == NoClamp);
303  }
304 
305  virtual void setClampToClosestPolygon(bool b)
306  {
307  myClampToClosestPolygon = b;
308  }
309 
310  bool clampToClosestPolygon() const
311  {
312  return myClampToClosestPolygon;
313  }
314 
315  protected:
316  virtual void setCurrentGroundLocation( const DtGeodeticCoord& currentGroundLocation );
317 
318  protected:
321  std::string myDisplayName;
322  std::string myEntityId;
323 
326 
327  DtGeodeticCoord myCurrentGroundLocation;
329 
335 
339  bool myAnchor;
340  std::string myUserData;
341 
342  bool myVisible;
343 
345  DtEntityType myEntityType;
349 
352  DtTaitBryan myAttachOrientation;
353 
354  mutable std::vector<makVrv::DtElementID> myUnifiedIgnoreList;
355  mutable std::set<makVrv::DtUniqueID> myDIGuyIdsIgnored;
356  mutable std::vector<makVrv::DtUniqueID> myModelIds;
357 
358  std::vector<makVrv::DtUniqueID> myOverrideIdsToIgnore;
359 
361  };
362 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)