VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgOverlayDirectionLineModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
17 
18 namespace makVrv
19 {
20  class DtLineSegment;
21  enum class DtModelSetId;
22 
25 
28 
30  template <>
31  inline const char* creatorTypeName<DtOsgOverlayDirectionLineModelInstance>(void) { return "DtOsgOverlayDirectionLineModelInstanceCreator"; }
32 
36  : public DtOsgModelInstance
37  {
39 
40  public:
41 
44 
47 
50  const DtOsgOverlayDirectionLineModelInstance &other) = delete;
51 
54  const DtOsgOverlayDirectionLineModelInstance &other) = delete;
55 
56  public:
57 
59  virtual void setVisible(bool);
60 
62  virtual void setModelSet( DtModelSetId modelSet );
63 
70  virtual void addPoint(const DtVector& position, int index = -1);
71 
73  virtual void setPosition(int index, const DtVector& position);
74 
76  virtual void setStipplePattern(unsigned int stipple);
77 
79  virtual void setColor(float r, float g, float b, float a);
80 
82  virtual void setWidth(float width);
83 
85  virtual void setEventsEnabled(bool, unsigned long long userData);
86 
88  virtual const std::vector<DtVector>& points() const;
89 
91  bool eventsEnabled() const;
92 
94  virtual void setPositionOffset(const DtVector&);
95 
97  virtual void setDirection( int index, const DtVector& direction );
98 
102  virtual void setScale(int index, float scale);
103 
106  virtual void setLength( int index, float length );
107 
109  virtual void setAltitudeBasedConfigurations(
111 
116  virtual void clearAltitudeBasedConfigurations();
117 
127  virtual void setIsUseForcedAltitudeEnabled(bool enabled);
128 
133  virtual void setForcedAltitudeToUse(double minimumAltitudeForUse);
134 
137  virtual void setLodOutAltitude(double lodOutAltitude);
138 
140  virtual void setIsLodOutAltitudeEnabled(bool isLodOutAltitudeEnabled);
141 
143  virtual void update();
144 
148  virtual void setGroup( int );
149 
152  virtual bool realize(const DtModelDefinition& definition);
153 
154 
155  protected:
159 
161  virtual void createLineIfNecessary();
162 
164  virtual void updateAttributes();
165 
167  virtual void updateGeometry();
168 
170  virtual void updateAltitudeSpecificConfigurations();
171 
173  virtual void set3DVertexPosition( unsigned int index, double x, double y, double z );
174 
175  protected:
176 
178  {
180  : direction()
181  , length(0.0f)
182  {
183  }
184 
186  float length;
187  };
188 
189  std::vector<DtVector> myPoints;
190  DirectionAttributes myDirections[2];
194 
195  osg::Vec4 myColor;
196  float myWidth;
197  unsigned int myStipplePattern;
198 
202 
205  unsigned long long myUserData;
206 
208  int myGroup;
209 
212  };
213 }
214 
215 
Model instance to draw a 2D line with styleable segments.
Definition: DtOsgOverlayDirectionLineModelInstance.h:35
std::vector< DtDirectionLineAltitudeBasedConfiguration > DtDirectionLineAltitudeBasedConfigurationCollection
A collection of altitude-based configurations.
Definition: DtOverlayDirectionLineModel.h:87
DtLineSegment * myLine
Definition: DtOsgOverlayDirectionLineModelInstance.h:193
DtModelSetId myModelSet
Definition: DtOsgOverlayDirectionLineModelInstance.h:192
DtVector myPositionOffset
Definition: DtOsgOverlayDirectionLineModelInstance.h:207
DtVector direction
Definition: DtOsgOverlayDirectionLineModelInstance.h:185
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myLodOutAltitude
Definition: DtOsgOverlayDirectionLineModelInstance.h:210
bool myIsLodOutAltitudeEnabled
Definition: DtOsgOverlayDirectionLineModelInstance.h:211
osg::Vec4 myColor
Definition: DtOsgOverlayDirectionLineModelInstance.h:195
bool myVisibleFlag
Definition: DtOsgOverlayDirectionLineModelInstance.h:204
bool myAttributesDirty
Definition: DtOsgOverlayDirectionLineModelInstance.h:200
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
Contains makVrv::DtOsgModelInstance class.
std::vector< DtVector > myPoints
Definition: DtOsgOverlayDirectionLineModelInstance.h:189
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
bool myEventsEnabled
Definition: DtOsgOverlayDirectionLineModelInstance.h:203
float myWidth
Definition: DtOsgOverlayDirectionLineModelInstance.h:196
A class which represents a single line segment.
Definition: DtLineSegment.h:23
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
DirectionAttributes()
Definition: DtOsgOverlayDirectionLineModelInstance.h:179
const char * creatorTypeName< DtOsgOverlayDirectionLineModelInstance >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtOsgOverlayDirectionLineModelInstance.h:31
unsigned long long myUserData
Definition: DtOsgOverlayDirectionLineModelInstance.h:205
bool myGeometryDirty
Definition: DtOsgOverlayDirectionLineModelInstance.h:199
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
Contains declaration of DtOverlayDirectionLineModel, which draws direction lines in an overlay layer ...
DtOverlayDirectionLineModel::DtDirectionLineAltitudeBasedConfigurationCollection myAltitudeSpecificConfigurations
Definition: DtOsgOverlayDirectionLineModelInstance.h:191
unsigned int myStipplePattern
Definition: DtOsgOverlayDirectionLineModelInstance.h:197
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtModelSetId
Definition: DtModelSetEnums.h:19
float length
Definition: DtOsgOverlayDirectionLineModelInstance.h:186
Definition: DtOsgOverlayDirectionLineModelInstance.h:177
friend DtOsgOverlayDirectionLineModelInstanceCreator
Definition: DtOsgOverlayDirectionLineModelInstance.h:38
int myGroup
Definition: DtOsgOverlayDirectionLineModelInstance.h:208
DtVirtualBaseClassCreator< DtOsgOverlayDirectionLineModelInstance > DtOsgOverlayDirectionLineModelInstanceCreator
creator
Definition: DtOsgOverlayDirectionLineModelInstance.h:24
bool myAltitudeSpecificConfigurationsDirty
Definition: DtOsgOverlayDirectionLineModelInstance.h:201

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)