VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
environmentalFacadeCollection.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 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 
92  virtual void setRespectPointAltitudePosition(bool);
93  bool respectPointAltitudePosition() const;
94 
96  virtual void setupNodeMaskFlags();
97 
98  virtual makVrv::DtUniqueID uniqueID() const;
99  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
100 
101  virtual void setUniqueID(makVrv::DtUniqueID id);
102 
104  virtual void setLabelIndicatorVisible(bool);
105 
106  virtual void setIndicatorVisible(bool);
107 
108  virtual void setAltitudeToOrigin(DtVector&) const;
109 
110  virtual void setSceneObjectId(makVrv::DtElementID id);
111 
114  virtual DtVector centerOfMass() const;
115 
116  virtual void setDisplayName(const std::string& s);
117  virtual std::string displayName() const;
118 
119  virtual void setLabel(const std::string&);
120  virtual std::string label() const;
121 
122  virtual void setFormattingData(const std::string& s);
123  virtual std::string formattingData() const;
124 
125  virtual void setDropShadow(bool b);
126 
127  virtual void setOverlayName(const std::string& s);
128  virtual std::string overlayName() const;
129 
131  virtual void setHatLineVisible( bool visible );
132  virtual void setAttachedTo(DtVrfObjectFacadeInterface* p, const DtVector& offset, const DtTaitBryan& o);
133 
136  virtual void setDictionaryToDisplay(int);
137  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
138 
139  virtual DtVector origin() const;
140 
142  virtual void setWeatherCommand(const DtChangeWeatherCommand&);
143 
145  virtual void setPickable(bool b);
146 
148  virtual void setSelected(bool b);
149 
150  virtual const DtEntityType& environmentalType() const;
151 
153  virtual void setWidgetEventsEnabled(bool b);
154 
155  virtual void updateSymbolDecorationPosition();
156 
158  virtual void setFillStyle(int);
159  virtual int fillStyle() const;
160 
163  virtual void setPenStyle(int);
164 
166  virtual int penStyle() const;
167 
168  virtual double length() const;
169  virtual double width() const;
170 
171  virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset );
172  virtual void setAltitudeOffsetFromPrincipal( double offset );
173 
174  virtual DtVector geocentricPosition(int i) const;
175 
176  virtual std::vector<DtVector> geocentricPositions() const;
177 
179  template <typename T> void setWidgetEventsEnabled(makVrv::DtEnvironmentalVisualizerSet* v, bool b)
180  {
181  std::vector<T> visualizers;
182  v->findVisualizers(visualizers);
183  typename std::vector<T>::iterator iter = visualizers.begin();
184 
185  while (iter != visualizers.end())
186  {
187  (*iter)->setWidgetEventsEnabled(b);
188  ++iter;
189  }
190  }
191 
198  virtual void setFloor(double);
199  virtual void clearFloorSet();
200  virtual double floor() const;
201  bool floorSet() const
202  {
203  return myFloorSet;
204  }
205 
207  virtual void setCeiling(double);
208  virtual double ceiling() const;
209  virtual void clearCeilingSet();
210  bool ceilingSet() const
211  {
212  return myCeilingSet;
213  }
214 
216 
218  virtual void realizeFacades();
219 
221  virtual void unrealizeFacades();
222 
223  virtual void setProjected(bool);
224  virtual bool projected() const;
225 
226  virtual void updateGeometry();
227 
228  virtual void setSymbolDecorationPosition(const DtVector& v);
229 
230  virtual void visualize(const makVrv::DtUnicode& type,
232 
234  virtual void setIndicatorModelDefinitions(
235  const std::string& normalTheme,
236  const std::string& activeTheme,
237  const std::string& selectedTheme,
238  const std::string& multiSelectedTheme);
239 
240  virtual void setAlwaysRecalculateGeometry(bool);
241  bool alwaysRecalculateGeometry() const;
242 
243  virtual void setArrowStyle(int);
244  virtual int arrowStyle() const;
245 
246  virtual void setArrowHeadPlacement(int);
247  virtual int arrowHeadPlacement() const;
248 
249  virtual void setArrowSize(double);
250  virtual double arrowSize() const;
251 
253  virtual bool fixedWidthSizing() const;
254 
255  virtual void setLocationOffsetFromFirst(const DtGeodeticCoord& geod, int i);
256  const DtGeodeticCoord& locationOffsetFromFirst(int i);
257 
259  virtual void setShapeVertexVisible(bool);
260 
261  virtual void setSymbolDecorationsVisible(bool);
262  virtual void setColor(int rgba);
263  virtual bool colorChanged() const;
264  virtual int color() const;
265  virtual void setColor(float r, float g, float b, float a);
266  virtual bool isPointObject() const;
267  virtual const makVrv::DtUnicode& elementDefinition() const;
268 
269  virtual void setPixelLineWidth(float);
270  virtual float pixelLineWidth() const;
271 
272  virtual void setPhysicalLineHeight(float);
273  virtual float physicalLineHeight() const;
274 
275  virtual void setOffsetPoints(const std::vector<DtVector>&);
276 
277  virtual void setPhysicalLineWidth(float);
278  virtual float physicalLineWidth() const;
279 
280  virtual bool physicalLineHeightChanged() const;
281  virtual void clearPhysicalLineHeightChanged();
282 
283  virtual bool physicalLineWidthChanged() const;
284  virtual void clearPhysicalLineWidthChanged();
285 
286  virtual void setDefaultCeilingHeightIfCeilingIsNotSet(double);
287  double defaultCeilingHeightIfCeilingIsNotSet() { return myDefaultCeilingHeightIfCeilingIsNotSet; };
288 
289  virtual void setForce(int);
290 
291  template <typename T> void setAttached(DtVrfObjectFacadeInterface* p)
292  {
293  DtEntityFacadeCollection* efc = dynamic_cast<DtEntityFacadeCollection*>(p);
294  ModelSetMap::iterator iter = myModelSetMap.begin();
295 
296  while (iter != myModelSetMap.end())
297  {
298  std::vector<T*> visualizers;
299  iter->second->findVisualizersByDynamicCast(visualizers);
300  typename std::vector<T*>::iterator i =
301  visualizers.begin();
302  typename std::vector<T*>::iterator e =
303  visualizers.end();
304  for(;i != e; ++i)
305  {
306  if (*i)
307  {
308  if (efc)
309  {
310  (*i)->setAttached(efc->modelSetMap()[iter->first]->uniqueID());
311  }
312  else
313  {
314  (*i)->setAttached(0);
315  }
316  }
317  }
318 
319  ++iter;
320  }
321  }
322 
323  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
324  {
325  std::vector<T> visualizers;
326  s->findVisualizersByDynamicCast(visualizers);
327  typename std::vector<T>::iterator i = visualizers.begin();
328  typename std::vector<T>::iterator e = visualizers.end();
329  for(;i != e; ++i)
330  {
331  if (*i)
332  {
333  (*i)->setForceColor(color.R, color.G, color.B, color.A);
334  }
335  }
336  }
337 
338  virtual void setVertexSelected(makVrv::DtUniqueID id, bool sel);
339 
340  makVrv::DtBaseConnection& baseConnection() const;
341 
344  virtual void setElementDefinition(const makVrv::DtUnicode& definition);
345  virtual void setElementDefinition(const DtEntityType&, bool preparseOnly = false);
346 
347  makVrv::DtUniqueID uniqueIDForModelSet(int i) const;
348  int positionOfVertex(makVrv::DtUniqueID) const;
349  DtVector position(int index) const;
350 
352  virtual double altitudeForAltitudeType(int) const;
353 
354  virtual void setOrigin(const DtVector&);
355  virtual void setOrigin(const DtGeodeticCoord&);
356 
357  virtual void setPoint(const DtVector&, int, bool andUpdateOffset = true);
358  virtual int addPoint(const DtVector&, int index = -1, bool resetLocation = true);
359  virtual void setPoints(const std::vector<DtVector>&);
360  const std::vector<DtVector>& points() const;
361  std::vector<DtVector> geocentricPoints() const;
362  virtual void removePoint(int);
363  DtGeodeticCoord geodeticPosition(int) const;
364  virtual void updateOffsets();
365 
366  virtual DtVector reviseLocation(int index, const DtVector& v);
367 
368  void setAltitudeAboveTerrain(int, double, bool resetLocation = true);
369  double altitudeAboveTerrain(int = -1) const;
370 
371  void setAltitudeAboveSeaLevel(int, double, bool resetLocation = true);
372  double altitudeAboveSeaLevel(int = -1) const;
373 
374  int numVertices() const;
375 
376  const DtExtTacticalGraphicStateListener& listener() const
377  {
378  return myListener;
379  }
380 
383  virtual void selectPoint(int);
384  virtual void clearSelectedPoint();
385 
386  int selectedPoint() const;
387 
388  virtual void setIconScale(float);
389 
390  virtual bool appearanceChanged() const;
391 
393  virtual double calculatedHeading() const;
394 
396  virtual DtVector geometricCenter() const;
397 
399  virtual std::vector<DtVector> rotatePointsTo(const std::vector<DtVector>&, double heading) const;
400 
403  virtual void setTopographicOrientation(const DtTaitBryan&);
404  virtual void setLocalOrientation(const DtTaitBryan&);
405 
407  virtual void updateSymbolRotation(const DtTaitBryan&);
408 
410  virtual void updateSymbolRotation(double);
411 
413  virtual void setAltitudeAboveSeaLevel(double);
414  virtual void setAltitudeAboveTerrain(double);
415 
416  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
417  virtual DtVector localLocation() const;
418 
420  virtual bool isBox() const;
421 
423  virtual bool isTextBox() const;
424 
426  virtual bool isLine() const;
427 
429  virtual bool isArea() const;
430 
432  virtual bool isCircle() const;
433 
436  virtual bool isEllipse() const;
437 
438  virtual void setIsClosedFigure(bool);
439  virtual bool isClosedFigure() const;
440 
443  {
444  return myListener;
445  }
446 
448  virtual void updateHeading();
449 
450  void setNeedsUpdate(bool b) { myNeedsGeometryUpdate = b; };
451 
453  virtual void mergeExtendedData(const std::map<std::string, std::string>&);
454 
455  virtual void setExtendedData(const std::map<std::string, std::string>&);
456  virtual std::map<std::string, std::string> extendedData() const;
457 
458  virtual void setExtendedLabels(const std::map<int, DtString>&);
459  virtual std::map<int, DtString> extendedLabels() const;
460 
461  virtual void updateOffset(const DtVector& position, int i, bool force = false);
462  virtual void setAltitudeForPoint(const DtVector& v, int index);
463 
465  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
467  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
469 
471  virtual DtVector setFloorToVertex(const DtVector&) const;
472 
473  protected:
475  virtual void preparse(const makVrv::DtUnicode& type,
477 
478  virtual void clearVertices(makVrv::DtEnvironmentalVisualizerSet*);
479 
480  protected:
482 
483  float myDefaultColor[4];
484 
486 
490  std::vector<double> myAltitudeAboveTerrain;
491  std::vector<double> myAltitudeAboveSeaLevel;
492 
493  typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*> ModelSetMap;
495 
498 
499  std::vector<DtGeodeticCoord> myLocationOffsetFromFirst;
501 
503  typedef std::vector<makVrv::DtUniqueID> UniqueIDs;
504  std::map<int, UniqueIDs> myIds;
505 
507 
508  int myColor;
516 
517  double myFloor;
519 
523 
525 
526  double myArrowSize;
534 
537  };
538 }

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)