VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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() const;
73 
74  virtual double altitudeOffsetFromPrincipal() const;
75  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
76 
77  virtual makVrv::DtUniqueID uniqueID() const = 0;
78  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const = 0;
79 
81  virtual std::vector<makVrv::DtUniqueID> idsToIgnore() const;
82 
83  virtual makVrv::DtUniqueID sceneObjectId() const;
84  virtual void setSceneObjectId( const makVrv::DtUniqueID& id );
85 
86  virtual std::string displayName() const;
87  virtual void setDisplayName( const std::string& displayName );
88 
89  virtual void setUUID(const DtUUID&);
90  virtual const DtUUID& uuid() const;
91 
92  virtual DtGeodeticCoord currentGeodeticOrigin() const;
93 
95  virtual DtGeodeticCoord currentGeodeticPosition() const;
96 
97  virtual DtGeodeticCoord convertToGeodetic(const DtVector& v) const;
98 
99  virtual double currentHeading() const;
100  virtual void setCurrentHeading( double currentHeading );
101  virtual void setHeadingChanged(bool b);
102 
104  virtual void setSelected(bool);
105 
107  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan& offsetOrientation);
108  virtual bool attachedTo() const;
109  virtual void detach();
110 
112  virtual std::string overlayName() const;
113 
115  virtual double currentAltitude() const;
116 
118  virtual DtVector centerOfMass() const;
119 
120  virtual DtVector geocentricLocation() const;
121  virtual DtVector localLocation() const;
122  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
123 
125  virtual double initialAltitudeAboveTerrain() const;
126 
128  virtual DtVector reviseLocation(const DtVector& loc) const;
129 
131  virtual DtTaitBryan localOrientation() const;
132 
134  virtual void setExtendedData(const std::map<std::string, std::string>&)
135  {
136  }
137 
138  virtual void mergeExtendedData(const std::map<std::string, std::string>&)
139  {
140  }
141 
142  virtual std::map<std::string, std::string> extendedData() const
143  {
144  return std::map<std::string, std::string>();
145  }
146  virtual std::map<int, DtString> extendedLabels() const
147  {
148  return std::map<int, DtString>();
149  }
150 
151  boost::signal<void (DtVrfObjectFacadeInterface*)> signal_visualized;
152 
153  public:
155 
156  virtual void setOrigin(const DtGeodeticCoord&);
157  virtual void setOrigin(const DtVector&);
158 
159  virtual void setSymbolNameVisible(bool) = 0;
160 
161  virtual void setPickable(bool) = 0;
162  virtual void setIndicatorVisible(bool) = 0;
163  virtual void setWidgetEventsEnabled(bool) = 0;
164  virtual void setHatLineVisible(bool) = 0;
165 
169  virtual void setVisible(bool);
170  virtual bool isVisible() const;
171 
173  virtual void setTopographicOrientation(const DtTaitBryan&) = 0;
174  virtual void setLocalOrientation(const DtTaitBryan&) = 0;
175 
177  virtual void unrealizeFacades() = 0;
178 
180  virtual void realizeFacades() = 0;
181 
182  virtual bool hasNameChange() const
183  {
184  return myDisplayNameChanged;
185  }
186 
187  virtual void clearLocationChange()
188  {
189  myLocationChanged = false;
190  }
191 
192  virtual bool hasLocationChange() const
193  {
194  return myLocationChanged;
195  }
196 
197  virtual bool hasAltitudeChange() const
198  {
199  return myAltitudeChanged;
200  }
201 
202  virtual bool hasHeadingChange() const
203  {
204  return myHeadingChanged;
205  }
206 
207  virtual void clearFlags();
208 
209  virtual void setAltitudeClampType(DtAltitudeClampType t);
210  virtual DtAltitudeClampType altitudeClampType() const
211  {
212  return myAltitudeClampType;
213  }
214 
215  virtual void setAltitudeAboveTerrain(double);
216  virtual double altitudeAboveTerrain() const
217  {
218  return myAltitudeAboveGL;
219  }
220 
221  virtual void setAltitudeAboveSeaLevel(double);
222  virtual double altitudeAboveSeaLevel() const
223  {
224  return myAltitudeAboveSL;
225  }
226 
227  virtual void setIsAnchor(bool);
228  virtual bool isAnchor() const
229  {
230  return myAnchor;
231  }
232 
233  virtual void setUserData(const std::string& userData);
234  virtual std::string userData() const;
235  bool userDataChanged() const
236  {
237  return myUserDataChanged;
238  }
239 
240  int modelSet() const
241  {
242  return myModelSetOnly;
243  }
244 
245  bool supportsModelSet(int i) const
246  {
247  return ((myModelSetOnly == -1) || (i == myModelSetOnly));
248  }
249 
250  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
251 
252  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
254  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
256 
257  virtual void setEmbarkationAllowed(bool);
258  bool embarkationAllowed() const;
259 
260  virtual void setClampToClosestPolygon(bool b)
261  {
262  myClampToClosestPolygon = b;
263  }
264 
265  bool clampToClosestPolygon() const
266  {
267  return myClampToClosestPolygon;
268  }
269 
270  protected:
271  virtual void setCurrentGroundLocation( const DtGeodeticCoord& currentGroundLocation );
272 
273  protected:
276  std::string myDisplayName;
277  std::string myEntityId;
278 
282 
283  DtGeodeticCoord myCurrentGroundLocation;
285 
291 
295  bool myAnchor;
296  std::string myUserData;
297 
298  bool myVisible;
299 
301  DtEntityType myEntityType;
305 
308  DtTaitBryan myAttachOrientation;
309  };
310 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)