VR-Forces 4.6.1 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 const DtGeodeticCoord& locationOffsetFromPrincipal() const;
65  virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset, bool resetLocation = true );
66 
67  virtual double headingOffsetFromPrincipal() const;
68  virtual void setHeadingOffsetFromPrincipal( double offset );
69 
70  virtual const DtEntityType& entityType() const;
71 
72  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
73 
74  virtual double altitudeOffsetFromPrincipal() const;
75  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
76 
77  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const = 0;
78  virtual makVrv::DtUniqueID uniqueID() const = 0;
79  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const = 0;
80 
83  virtual void setOverrideIdsToIgnore(const std::vector<makVrv::DtUniqueID>& overrideIgnore);
84 
86  virtual const std::vector<makVrv::DtUniqueID>& idsToIgnore() const;
87 
88  virtual makVrv::DtUniqueID sceneObjectId() const;
89  virtual void setSceneObjectId( const makVrv::DtUniqueID& id );
90 
91  virtual std::string displayName() const;
92  virtual void setDisplayName( const std::string& displayName );
93 
94  virtual void setUUID(const DtUUID&);
95  virtual const DtUUID& uuid() const;
96 
97  virtual DtGeodeticCoord currentGeodeticOrigin() const;
98 
100  virtual DtGeodeticCoord currentGeodeticPosition() const;
101 
102  virtual DtGeodeticCoord convertToGeodetic(const DtVector& v) const;
103 
104  virtual double currentHeading() const;
105  virtual void setCurrentHeading( double currentHeading );
106  virtual void setHeadingChanged(bool b);
107 
109  virtual void setSelected(bool);
110 
112  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan& offsetOrientation);
113  virtual bool attachedTo() const;
114  virtual void detach();
115 
117  virtual std::string overlayName() const;
118 
120  virtual double currentAltitude() const;
121 
123  virtual DtVector centerOfMass() const;
124 
125  virtual DtVector geocentricLocation() const;
126  virtual DtVector localLocation() const;
127  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
128 
130  virtual double initialAltitudeAboveTerrain() const;
131 
133  virtual DtVector reviseLocation(const DtVector& loc) const;
134 
136  virtual DtTaitBryan localOrientation() const;
137 
139  virtual void setExtendedData(const std::map<std::string, std::string>&)
140  {
141  }
142 
143  virtual void mergeExtendedData(const std::map<std::string, std::string>&)
144  {
145  }
146 
147  virtual std::map<std::string, std::string> extendedData() const
148  {
149  return std::map<std::string, std::string>();
150  }
151  virtual std::map<int, DtString> extendedLabels() const
152  {
153  return std::map<int, DtString>();
154  }
155 
156  boost::signal<void (DtVrfObjectFacadeInterface*)> signal_visualized;
157 
158  public:
160 
161  virtual void setOrigin(const DtGeodeticCoord&);
162  virtual void setOrigin(const DtVector&);
163 
164  virtual void setSymbolNameVisible(bool) = 0;
165 
166  virtual void setPickable(bool) = 0;
167  virtual void setIndicatorVisible(bool) = 0;
168  virtual void setWidgetEventsEnabled(bool) = 0;
169  virtual void setHatLineVisible(bool) = 0;
170 
174  virtual void setVisible(bool);
175  virtual bool isVisible() const;
176 
178  virtual void setTopographicOrientation(const DtTaitBryan&) = 0;
179  virtual void setLocalOrientation(const DtTaitBryan&) = 0;
180 
182  virtual void unrealizeFacades() = 0;
183 
185  virtual void realizeFacades() = 0;
186 
187  virtual bool hasNameChange() const
188  {
189  return myDisplayNameChanged;
190  }
191 
192  virtual void clearLocationChange()
193  {
194  myLocationChanged = false;
195  }
196 
197  virtual bool hasLocationChange() const
198  {
199  return myLocationChanged;
200  }
201 
202  virtual bool hasAltitudeChange() const
203  {
204  return myAltitudeChanged;
205  }
206 
207  virtual bool hasHeadingChange() const
208  {
209  return myHeadingChanged;
210  }
211 
212  virtual void clearFlags();
213 
214  virtual void setAltitudeClampType(DtAltitudeClampType t);
215  virtual DtAltitudeClampType altitudeClampType() const
216  {
217  return myAltitudeClampType;
218  }
219 
220  virtual void setAltitudeAboveTerrain(double);
221  virtual double altitudeAboveTerrain() const
222  {
223  return myAltitudeAboveGL;
224  }
225 
226  virtual void setAltitudeAboveSeaLevel(double);
227  virtual double altitudeAboveSeaLevel() const
228  {
229  return myAltitudeAboveSL;
230  }
231 
232  virtual void setIsAnchor(bool);
233  virtual bool isAnchor() const
234  {
235  return myAnchor;
236  }
237 
238  virtual void setUserData(const std::string& userData);
239  virtual std::string userData() const;
240  bool userDataChanged() const
241  {
242  return myUserDataChanged;
243  }
244 
245  int modelSet() const
246  {
247  return myModelSetOnly;
248  }
249 
250  bool supportsModelSet(int i) const
251  {
252  return ((myModelSetOnly == -1) || (i == myModelSetOnly));
253  }
254 
255  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
256 
257  virtual DtVector clampToLowestNonOceanPolygon( const DtVector& lp, makVrv::DtIntersector::IntersectProperties props ) const;
258  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
260  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
262 
263  virtual void setEmbarkationAllowed(bool);
264  bool embarkationAllowed() const;
265 
266  virtual void setDoNotClamp(bool b)
267  {
268  if (b)
269  {
270  myAltitudeClampType = NoClamp;
271  }
272  else
273  {
274  myAltitudeClampType = AltitudeAboveTerrain;
275  }
276  }
277 
278  bool doNotClamp() const
279  {
280  return (myAltitudeClampType == NoClamp);
281  }
282 
283  virtual void setClampToClosestPolygon(bool b)
284  {
285  myClampToClosestPolygon = b;
286  }
287 
288  bool clampToClosestPolygon() const
289  {
290  return myClampToClosestPolygon;
291  }
292 
293  protected:
294  virtual void setCurrentGroundLocation( const DtGeodeticCoord& currentGroundLocation );
295 
296  protected:
299  std::string myDisplayName;
300  std::string myEntityId;
301 
305 
306  DtGeodeticCoord myCurrentGroundLocation;
308 
314 
318  bool myAnchor;
319  std::string myUserData;
320 
321  bool myVisible;
322 
324  DtEntityType myEntityType;
328 
331  DtTaitBryan myAttachOrientation;
332 
333  mutable std::vector<makVrv::DtElementID> myUnifiedIgnoreList;
334  mutable std::set<makVrv::DtUniqueID> myDIGuyIdsIgnored;
335  mutable std::vector<makVrv::DtUniqueID> myModelIds;
336 
337  std::vector<makVrv::DtUniqueID> myOverrideIdsToIgnore;
338  };
339 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)