VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
environmentalFacadeCollection.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrvUtil/signalslib.h>
15 #include <vrfGuiCore/vrfGuiCore.h>
20 
30 #include <vrvVrl/DtForceManager.h>
31 
33 #include <matrix/geodeticCoord.h>
34 
36 #include <string>
37 #include <map>
38 #include <vector>
39 
40 #include <boost/foreach.hpp>
41 
42 namespace makVrv
43 {
44  class DtEnvironmentalVisualizerSet;
45  class DtDe;
46  class DtVisualDefinitionSet;
47 }
48 
50 
51 namespace makVrf
52 {
54  {
55  public:
57  makVrv::DtDe& de) : makVrv::DtTacticalGraphicStateListener(id), DtCommonStateListenerExtensions(id), myDe(de) {};
59 
60  virtual bool isGeocentric() const;
61 
62  protected:
64  };
65 
68  {
69  public:
71  DtEnvironmentalFacadeCollection(makVrv::DtDe&, int modelSet = -1, bool verticesDisabled = false);
73 
74  public:
76 
78  virtual void setVisible( bool visible );
79  virtual void setVisible(bool, int context);
80  virtual bool isVisible() const;
81 
83  virtual void setUseHighestTerrainLod(bool);
84 
85  virtual void setHidden(bool b);
86 
88  virtual void setSymbolNameVisible(bool);
89 
91  virtual void setupNodeMaskFlags();
92 
93  virtual makVrv::DtUniqueID uniqueID() const;
94  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
95 
96  virtual void setUniqueID(makVrv::DtUniqueID id);
97 
98  virtual void setIndicatorVisible(bool);
99 
100  virtual void setSceneObjectId(makVrv::DtElementID id);
101 
104  virtual DtVector centerOfMass() const;
105 
106  virtual void setDisplayName(const std::string& s);
107  virtual std::string displayName() const;
108 
109  virtual void setLabel(const std::string&);
110  virtual std::string label() const;
111 
112  virtual void setFormattingData(const std::string& s);
113  virtual std::string formattingData() const;
114 
115  virtual void setDropShadow(bool b);
116 
117  virtual void setOverlayName(const std::string& s);
118  virtual std::string overlayName() const;
119 
121  virtual void setHatLineVisible( bool visible );
122  virtual void setAttachedTo(DtVrfObjectFacadeInterface* p, const DtVector& offset, const DtTaitBryan& o);
123 
124  virtual DtVector origin() const;
125 
127  virtual void setWeatherCommand(const DtChangeWeatherCommand&);
128 
130  virtual void setPickable(bool b);
131 
133  virtual void setSelected(bool b);
134 
135  virtual const DtEntityType& environmentalType() const;
136 
138  virtual void setWidgetEventsEnabled(bool b);
139 
140  virtual void updateSymbolDecorationPosition();
141 
143  virtual void setFillStyle(int);
144  virtual int fillStyle() const;
145 
148  virtual void setPenStyle(int);
149 
151  virtual int penStyle() const;
152 
153  virtual double length() const;
154  virtual double width() const;
155 
156  virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset );
157  virtual void setAltitudeOffsetFromPrincipal( double offset );
158 
159  virtual DtVector geocentricPosition(int i) const;
160 
161  virtual std::vector<DtVector> geocentricPositions() const;
162 
164  template <typename T> void setWidgetEventsEnabled(makVrv::DtEnvironmentalVisualizerSet* v, bool b)
165  {
166  std::vector<T> visualizers;
167  v->findVisualizers(visualizers);
168  typename std::vector<T>::iterator iter = visualizers.begin();
169 
170  while (iter != visualizers.end())
171  {
172  (*iter)->setWidgetEventsEnabled(b);
173  ++iter;
174  }
175  }
176 
183  virtual void setFloor(double);
184  virtual void clearFloorSet();
185  virtual double floor() const;
186  bool floorSet() const
187  {
188  return myFloorSet;
189  }
190 
192  virtual void setCeiling(double);
193  virtual double ceiling() const;
194  virtual void clearCeilingSet();
195  bool ceilingSet() const
196  {
197  return myCeilingSet;
198  }
199 
201 
203  virtual void realizeFacades();
204 
206  virtual void unrealizeFacades();
207 
208  virtual void setProjected(bool);
209  virtual bool projected() const;
210 
211  virtual void updateGeometry();
212 
213  virtual void setSymbolDecorationPosition(const DtVector& v);
214 
215  virtual void visualize(const makVrv::DtUnicode& type,
217 
219  virtual void setIndicatorModelDefinitions(
220  const std::string& normalTheme,
221  const std::string& activeTheme,
222  const std::string& selectedTheme,
223  const std::string& multiSelectedTheme);
224 
225  virtual void setAlwaysRecalculateGeometry(bool);
226  bool alwaysRecalculateGeometry() const;
227 
228  virtual void setArrowStyle(int);
229  virtual int arrowStyle() const;
230 
231  virtual void setArrowHeadPlacement(int);
232  virtual int arrowHeadPlacement() const;
233 
234  virtual void setArrowSize(double);
235  virtual double arrowSize() const;
236 
238  virtual bool fixedWidthSizing() const;
239 
240  virtual void setLocationOffsetFromFirst(const DtGeodeticCoord& geod, int i);
241  const DtGeodeticCoord& locationOffsetFromFirst(int i);
242 
244  virtual void setShapeVertexVisible(bool);
245 
246  virtual void setSymbolDecorationsVisible(bool);
247  virtual void setColor(int rgba);
248  virtual bool colorChanged() const;
249  virtual int color() const;
250  virtual void setColor(float r, float g, float b, float a);
251  virtual bool isPointObject() const;
252  virtual const makVrv::DtUnicode& elementDefinition() const;
253 
254  virtual void setPixelLineWidth(float);
255  virtual float pixelLineWidth() const;
256 
257  virtual void setPhysicalLineHeight(float);
258  virtual float physicalLineHeight() const;
259 
260  virtual void setOffsetPoints(const std::vector<DtVector>&);
261 
262  virtual void setPhysicalLineWidth(float);
263  virtual float physicalLineWidth() const;
264 
265  virtual bool physicalLineHeightChanged() const;
266  virtual void clearPhysicalLineHeightChanged();
267 
268  virtual bool physicalLineWidthChanged() const;
269  virtual void clearPhysicalLineWidthChanged();
270 
271  virtual void setDefaultCeilingHeightIfCeilingIsNotSet(double);
272  double defaultCeilingHeightIfCeilingIsNotSet() { return myDefaultCeilingHeightIfCeilingIsNotSet; };
273 
274  virtual void setForce(int);
275 
276  template <typename T> void setAttached(DtVrfObjectFacadeInterface* p)
277  {
278  DtEntityFacadeCollection* efc = dynamic_cast<DtEntityFacadeCollection*>(p);
279  ModelSetMap::iterator iter = myModelSetMap.begin();
280 
281  while (iter != myModelSetMap.end())
282  {
283  std::vector<T*> visualizers;
284  iter->second->findVisualizersByDynamicCast(visualizers);
285  typename std::vector<T*>::iterator i =
286  visualizers.begin();
287  typename std::vector<T*>::iterator e =
288  visualizers.end();
289  for(;i != e; ++i)
290  {
291  if (*i)
292  {
293  if (efc)
294  {
295  (*i)->setAttached(efc->modelSetMap()[iter->first]->uniqueID());
296  }
297  else
298  {
299  (*i)->setAttached(0);
300  }
301  }
302  }
303 
304  ++iter;
305  }
306  }
307 
308  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
309  {
310  std::vector<T> visualizers;
311  s->findVisualizersByDynamicCast(visualizers);
312  typename std::vector<T>::iterator i = visualizers.begin();
313  typename std::vector<T>::iterator e = visualizers.end();
314  for(;i != e; ++i)
315  {
316  if (*i)
317  {
318  (*i)->setForceColor(color.R, color.G, color.B, color.A);
319  }
320  }
321  }
322 
323  virtual void setVertexSelected(makVrv::DtUniqueID id, bool sel);
324 
325  makVrv::DtBaseConnection& baseConnection() const;
326 
329  virtual void setElementDefinition(const makVrv::DtUnicode& definition);
330  virtual void setElementDefinition(const DtEntityType&, bool preparseOnly = false);
331 
332  makVrv::DtUniqueID uniqueIDForModelSet(int i) const;
333  int positionOfVertex(makVrv::DtUniqueID) const;
334  DtVector position(int index) const;
335 
337  virtual double altitudeForAltitudeType(int) const;
338 
339  virtual void setOrigin(const DtVector&);
340  virtual void setOrigin(const DtGeodeticCoord&);
341 
342  virtual void setPoint(const DtVector&, int);
343  virtual int addPoint(const DtVector&, int index = -1, bool resetLocation = true);
344  virtual void setPoints(const std::vector<DtVector>&);
345  const std::vector<DtVector>& points() const;
346  std::vector<DtVector> geocentricPoints() const;
347  virtual void removePoint(int);
348  DtGeodeticCoord geodeticPosition(int) const;
349  virtual void updateOffsets();
350 
351  virtual DtVector reviseLocation(int index, const DtVector& v);
352 
353  void setAltitudeAboveTerrain(int, double, bool resetLocation = true);
354  double altitudeAboveTerrain(int = -1) const;
355 
356  void setAltitudeAboveSeaLevel(int, double, bool resetLocation = true);
357  double altitudeAboveSeaLevel(int = -1) const;
358 
359  int numVertices() const;
360 
361  const DtExtTacticalGraphicStateListener& listener() const
362  {
363  return myListener;
364  }
365 
368  virtual void selectPoint(int);
369  virtual void clearSelectedPoint();
370 
371  int selectedPoint() const;
372 
373  virtual void setIconScale(float);
374 
375  virtual bool appearanceChanged() const;
376 
378  virtual double calculatedHeading() const;
379 
381  virtual DtVector geometricCenter() const;
382 
384  virtual std::vector<DtVector> rotatePointsTo(const std::vector<DtVector>&, double heading) const;
385 
388  virtual void setTopographicOrientation(const DtTaitBryan&);
389  virtual void setLocalOrientation(const DtTaitBryan&);
390 
392  virtual void setAltitudeAboveSeaLevel(double);
393  virtual void setAltitudeAboveTerrain(double);
394 
395  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
396  virtual DtVector localLocation() const;
397 
399  virtual bool isBox() const;
400 
402  virtual bool isTextBox() const;
403 
405  virtual bool isLine() const;
406 
408  virtual bool isArea() const;
409 
411  virtual bool isCircle() const;
412 
415  virtual bool isEllipse() const;
416 
417  virtual void setIsClosedFigure(bool);
418  virtual bool isClosedFigure() const;
419 
422  {
423  return myListener;
424  }
425 
427  virtual void updateHeading();
428 
429  void setNeedsUpdate(bool b) { myNeedsGeometryUpdate = b; };
430 
432  virtual void mergeExtendedData(const std::map<std::string, std::string>&);
433 
434  virtual void setExtendedData(const std::map<std::string, std::string>&);
435  virtual std::map<std::string, std::string> extendedData() const;
436 
437  virtual void setExtendedLabels(const std::map<int, DtString>&);
438  virtual std::map<int, DtString> extendedLabels() const;
439 
440  virtual void updateOffset(const DtVector& position, int i, bool force = false);
441  virtual void setAltitudeForPoint(const DtVector& v, int index);
442 
443  protected:
445  virtual void preparse(const makVrv::DtUnicode& type,
447 
449  virtual DtVector setFloorToVertex(const DtVector&) const;
450 
451  virtual void clearVertices(makVrv::DtEnvironmentalVisualizerSet*);
452 
453  protected:
455 
456  float myDefaultColor[4];
457 
459 
463  std::vector<double> myAltitudeAboveTerrain;
464  std::vector<double> myAltitudeAboveSeaLevel;
465 
466  typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*> ModelSetMap;
468 
471 
472  std::vector<DtGeodeticCoord> myLocationOffsetFromFirst;
474 
476  typedef std::vector<makVrv::DtUniqueID> UniqueIDs;
477  std::map<int, UniqueIDs> myIds;
478 
480 
481  int myColor;
489 
490  double myFloor;
492 
496 
498 
499  double myArrowSize;
507  };
508 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)