VR-Forces 4.5 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) 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 
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 
126  virtual void setDictionaryToDisplay(int);
127  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
128 
129  virtual DtVector origin() const;
130 
132  virtual void setWeatherCommand(const DtChangeWeatherCommand&);
133 
135  virtual void setPickable(bool b);
136 
138  virtual void setSelected(bool b);
139 
140  virtual const DtEntityType& environmentalType() const;
141 
143  virtual void setWidgetEventsEnabled(bool b);
144 
145  virtual void updateSymbolDecorationPosition();
146 
148  virtual void setFillStyle(int);
149  virtual int fillStyle() const;
150 
153  virtual void setPenStyle(int);
154 
156  virtual int penStyle() const;
157 
158  virtual double length() const;
159  virtual double width() const;
160 
161  virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset );
162  virtual void setAltitudeOffsetFromPrincipal( double offset );
163 
164  virtual DtVector geocentricPosition(int i) const;
165 
166  virtual std::vector<DtVector> geocentricPositions() const;
167 
169  template <typename T> void setWidgetEventsEnabled(makVrv::DtEnvironmentalVisualizerSet* v, bool b)
170  {
171  std::vector<T> visualizers;
172  v->findVisualizers(visualizers);
173  typename std::vector<T>::iterator iter = visualizers.begin();
174 
175  while (iter != visualizers.end())
176  {
177  (*iter)->setWidgetEventsEnabled(b);
178  ++iter;
179  }
180  }
181 
188  virtual void setFloor(double);
189  virtual void clearFloorSet();
190  virtual double floor() const;
191  bool floorSet() const
192  {
193  return myFloorSet;
194  }
195 
197  virtual void setCeiling(double);
198  virtual double ceiling() const;
199  virtual void clearCeilingSet();
200  bool ceilingSet() const
201  {
202  return myCeilingSet;
203  }
204 
206 
208  virtual void realizeFacades();
209 
211  virtual void unrealizeFacades();
212 
213  virtual void setProjected(bool);
214  virtual bool projected() const;
215 
216  virtual void updateGeometry();
217 
218  virtual void setSymbolDecorationPosition(const DtVector& v);
219 
220  virtual void visualize(const makVrv::DtUnicode& type,
222 
224  virtual void setIndicatorModelDefinitions(
225  const std::string& normalTheme,
226  const std::string& activeTheme,
227  const std::string& selectedTheme,
228  const std::string& multiSelectedTheme);
229 
230  virtual void setAlwaysRecalculateGeometry(bool);
231  bool alwaysRecalculateGeometry() const;
232 
233  virtual void setArrowStyle(int);
234  virtual int arrowStyle() const;
235 
236  virtual void setArrowHeadPlacement(int);
237  virtual int arrowHeadPlacement() const;
238 
239  virtual void setArrowSize(double);
240  virtual double arrowSize() const;
241 
243  virtual bool fixedWidthSizing() const;
244 
245  virtual void setLocationOffsetFromFirst(const DtGeodeticCoord& geod, int i);
246  const DtGeodeticCoord& locationOffsetFromFirst(int i);
247 
249  virtual void setShapeVertexVisible(bool);
250 
251  virtual void setSymbolDecorationsVisible(bool);
252  virtual void setColor(int rgba);
253  virtual bool colorChanged() const;
254  virtual int color() const;
255  virtual void setColor(float r, float g, float b, float a);
256  virtual bool isPointObject() const;
257  virtual const makVrv::DtUnicode& elementDefinition() const;
258 
259  virtual void setPixelLineWidth(float);
260  virtual float pixelLineWidth() const;
261 
262  virtual void setPhysicalLineHeight(float);
263  virtual float physicalLineHeight() const;
264 
265  virtual void setOffsetPoints(const std::vector<DtVector>&);
266 
267  virtual void setPhysicalLineWidth(float);
268  virtual float physicalLineWidth() const;
269 
270  virtual bool physicalLineHeightChanged() const;
271  virtual void clearPhysicalLineHeightChanged();
272 
273  virtual bool physicalLineWidthChanged() const;
274  virtual void clearPhysicalLineWidthChanged();
275 
276  virtual void setDefaultCeilingHeightIfCeilingIsNotSet(double);
277  double defaultCeilingHeightIfCeilingIsNotSet() { return myDefaultCeilingHeightIfCeilingIsNotSet; };
278 
279  virtual void setForce(int);
280 
281  template <typename T> void setAttached(DtVrfObjectFacadeInterface* p)
282  {
283  DtEntityFacadeCollection* efc = dynamic_cast<DtEntityFacadeCollection*>(p);
284  ModelSetMap::iterator iter = myModelSetMap.begin();
285 
286  while (iter != myModelSetMap.end())
287  {
288  std::vector<T*> visualizers;
289  iter->second->findVisualizersByDynamicCast(visualizers);
290  typename std::vector<T*>::iterator i =
291  visualizers.begin();
292  typename std::vector<T*>::iterator e =
293  visualizers.end();
294  for(;i != e; ++i)
295  {
296  if (*i)
297  {
298  if (efc)
299  {
300  (*i)->setAttached(efc->modelSetMap()[iter->first]->uniqueID());
301  }
302  else
303  {
304  (*i)->setAttached(0);
305  }
306  }
307  }
308 
309  ++iter;
310  }
311  }
312 
313  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
314  {
315  std::vector<T> visualizers;
316  s->findVisualizersByDynamicCast(visualizers);
317  typename std::vector<T>::iterator i = visualizers.begin();
318  typename std::vector<T>::iterator e = visualizers.end();
319  for(;i != e; ++i)
320  {
321  if (*i)
322  {
323  (*i)->setForceColor(color.R, color.G, color.B, color.A);
324  }
325  }
326  }
327 
328  virtual void setVertexSelected(makVrv::DtUniqueID id, bool sel);
329 
330  makVrv::DtBaseConnection& baseConnection() const;
331 
334  virtual void setElementDefinition(const makVrv::DtUnicode& definition);
335  virtual void setElementDefinition(const DtEntityType&, bool preparseOnly = false);
336 
337  makVrv::DtUniqueID uniqueIDForModelSet(int i) const;
338  int positionOfVertex(makVrv::DtUniqueID) const;
339  DtVector position(int index) const;
340 
342  virtual double altitudeForAltitudeType(int) const;
343 
344  virtual void setOrigin(const DtVector&);
345  virtual void setOrigin(const DtGeodeticCoord&);
346 
347  virtual void setPoint(const DtVector&, int, bool andUpdateOffset = true);
348  virtual int addPoint(const DtVector&, int index = -1, bool resetLocation = true);
349  virtual void setPoints(const std::vector<DtVector>&);
350  const std::vector<DtVector>& points() const;
351  std::vector<DtVector> geocentricPoints() const;
352  virtual void removePoint(int);
353  DtGeodeticCoord geodeticPosition(int) const;
354  virtual void updateOffsets();
355 
356  virtual DtVector reviseLocation(int index, const DtVector& v);
357 
358  void setAltitudeAboveTerrain(int, double, bool resetLocation = true);
359  double altitudeAboveTerrain(int = -1) const;
360 
361  void setAltitudeAboveSeaLevel(int, double, bool resetLocation = true);
362  double altitudeAboveSeaLevel(int = -1) const;
363 
364  int numVertices() const;
365 
366  const DtExtTacticalGraphicStateListener& listener() const
367  {
368  return myListener;
369  }
370 
373  virtual void selectPoint(int);
374  virtual void clearSelectedPoint();
375 
376  int selectedPoint() const;
377 
378  virtual void setIconScale(float);
379 
380  virtual bool appearanceChanged() const;
381 
383  virtual double calculatedHeading() const;
384 
386  virtual DtVector geometricCenter() const;
387 
389  virtual std::vector<DtVector> rotatePointsTo(const std::vector<DtVector>&, double heading) const;
390 
393  virtual void setTopographicOrientation(const DtTaitBryan&);
394  virtual void setLocalOrientation(const DtTaitBryan&);
395 
397  virtual void setAltitudeAboveSeaLevel(double);
398  virtual void setAltitudeAboveTerrain(double);
399 
400  virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
401  virtual DtVector localLocation() const;
402 
404  virtual bool isBox() const;
405 
407  virtual bool isTextBox() const;
408 
410  virtual bool isLine() const;
411 
413  virtual bool isArea() const;
414 
416  virtual bool isCircle() const;
417 
420  virtual bool isEllipse() const;
421 
422  virtual void setIsClosedFigure(bool);
423  virtual bool isClosedFigure() const;
424 
427  {
428  return myListener;
429  }
430 
432  virtual void updateHeading();
433 
434  void setNeedsUpdate(bool b) { myNeedsGeometryUpdate = b; };
435 
437  virtual void mergeExtendedData(const std::map<std::string, std::string>&);
438 
439  virtual void setExtendedData(const std::map<std::string, std::string>&);
440  virtual std::map<std::string, std::string> extendedData() const;
441 
442  virtual void setExtendedLabels(const std::map<int, DtString>&);
443  virtual std::map<int, DtString> extendedLabels() const;
444 
445  virtual void updateOffset(const DtVector& position, int i, bool force = false);
446  virtual void setAltitudeForPoint(const DtVector& v, int index);
447 
449  virtual DtVector clampToGround( const DtVector& localPosition, makVrv::DtIntersector::IntersectProperties props =
451  virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition, makVrv::DtIntersector::IntersectProperties props =
453 
454  protected:
456  virtual void preparse(const makVrv::DtUnicode& type,
458 
460  virtual DtVector setFloorToVertex(const DtVector&) const;
461 
462  virtual void clearVertices(makVrv::DtEnvironmentalVisualizerSet*);
463 
464  protected:
466 
467  float myDefaultColor[4];
468 
470 
474  std::vector<double> myAltitudeAboveTerrain;
475  std::vector<double> myAltitudeAboveSeaLevel;
476 
477  typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*> ModelSetMap;
479 
482 
483  std::vector<DtGeodeticCoord> myLocationOffsetFromFirst;
485 
487  typedef std::vector<makVrv::DtUniqueID> UniqueIDs;
488  std::map<int, UniqueIDs> myIds;
489 
491 
492  int myColor;
500 
501  double myFloor;
503 
507 
509 
510  double myArrowSize;
518 
520  };
521 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)