VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtExtrudedLineModelInstance.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 
18 
19 #include <matrix/vlVector.h>
20 
21 #include <osg/PrimitiveSet>
22 #include <osg/Geometry>
23 #include <osg/Texture>
24 
25 namespace osg
26 {
27  class Group;
28 }
29 
30 namespace makVrv
31 {
32  class DtExtrudedLineModelSegmentInstance;
33  class DtChannel;
34  class DtGeom3dLinesComponent;
35 
39  {
40  public:
41  typedef std::vector<DtVector> PointVector;
42 
45  {
46  bool startArrow;
47  bool endArrow;
48  unsigned int stipple;
50  float color[4];
51  };
52 
53  public:
56 
58  virtual ~DtExtrudedLineModelInstance();
59 
60  private:
61 
64 
67 
70 
71  public:
72 
74  virtual const std::vector<DtVector>& points() const;
75 
77  virtual void addPoint(const DtVector&, int index = -1);
78 
80  virtual void removePoint(int index);
81 
83  virtual void setPosition(int index, const DtVector&);
84 
87  virtual void setLinePoints(const std::vector<DtVector>&);
88 
90  virtual void clearPoints();
91 
94  virtual bool realize(const DtModelDefinition& definition);
95 
97  virtual void addToConnector( DtOsgSceneConnector* connector );
98 
100  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
101 
103  virtual void setStipplePattern(unsigned int, int repeatFactor);
104 
106  virtual std::vector<SegmentInformation> segmentInformation() const;
107 
111  virtual void setSegmentInformation(const std::vector<SegmentInformation>&);
112 
114  virtual void setSegmentStipplePattern(int s, unsigned int, int repeatFactor);
115 
117  virtual void setColor(float r,float g,float b,float a);
118 
120  virtual void setSegmentColor(int, float r, float g, float b, float a);
121 
123  virtual void setTextureHeight(double height);
124 
126  virtual void setTextureWidth(double width);
127 
129  virtual void setTexture(osg::Texture* texture);
130 
137 
139  virtual void setUpExtent(float height);
140 
142  virtual void setDownExtent(float height);
143 
145  virtual void setLeftExtent(float height);
146 
148  virtual void setRightExtent(float heigh);
150 
152  virtual void setWidth(float);
153 
156  virtual void setHeight(float);
157 
159  virtual void setDimensions(float width, float height);
160 
163  virtual void setLineWidth(float width);
164 
166  virtual void setScribed(bool b);
167 
169  virtual void setScribeWidth(float);
170 
173  virtual void setScribeColor(float r, float g, float b, float a);
174 
176  virtual void setOcclusionEnabled(bool enabled);
177 
179  virtual void setVisible(bool isVisible) {}
180 
182  int pointCount() const
183  {
184  return myLinePoints.size();
185  }
186 
188  const DtVector& point(int) const;
189 
191  virtual void setPickable(bool);
192 
194  bool pickable() const;
195 
197  void setOrigin(const DtVector& origin);
198 
200  virtual void setSolid(bool);
201 
203  virtual void update();
204 
206  virtual void setSegmentEndArrow(int, bool);
207 
209  virtual void setSegmentStartArrow(int, bool);
210 
212  virtual void setArrowSize(double);
213 
215  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
216 
218  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
219 
222  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
223 
226  virtual void setFixedWidthSizing(bool);
227 
230  virtual void setChannelInstance(DtChannel*);
231 
233  virtual bool hasArrows() const;
234 
236  virtual void setHeightLinesEnabled(bool enabled);
237 
239  virtual void setHeightLinesColor(float r, float g, float b, float a);
240 
242  virtual void setHeightLinesSpacing(float spacing);
243 
245  virtual void setHeightLinesModelSetId(DtModelSetId modelSetId);
246 
247  protected:
249  virtual void updateGeometry();
250 
252  virtual DtExtrudedLineModelSegmentInstance* createSegment();
253 
255  virtual void removeSegment(int);
256 
258  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
259 
261  virtual void resizeSegments(int);
262 
264  virtual void updateArrowState();
265 
267  virtual void updateSizes(double);
268 
270  virtual void updateWithViewResolution(double);
271 
272  protected:
274 
277 
278  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
280 
281  osg::Vec4 myColor;
282  osg::Vec4 myScribeColor;
284  bool myScribed;
285 
286  bool mySolid;
289 
293 
294  float myLineWidth;
295  float myUpExtent;
299 
300  unsigned int myStipplePattern;
304  double myArrowSize;
307  std::vector<int> mySegmentsToErase;
308 
311 
313 
316  float myHeightLinesColor[4];
319  };
320 }
A prism controlled by control points.
Definition: DtExtrudedLineModelSegmentInstance.h:41
int myRepeatFactor
Definition: DtExtrudedLineModelInstance.h:301
float myHeightLinesSpacing
Definition: DtExtrudedLineModelInstance.h:317
virtual void setVisible(bool isVisible)
no-op
Definition: DtExtrudedLineModelInstance.h:179
float myDownExtent
Definition: DtExtrudedLineModelInstance.h:296
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< DtVector > PointVector
Definition: DtExtrudedLineModelInstance.h:41
voidpf uLong int origin
Definition: ioapi.h:42
int pointCount() const
Get the number of points in the line.
Definition: DtExtrudedLineModelInstance.h:182
osg::ref_ptr< osg::Group > myMainTransform
Definition: DtExtrudedLineModelInstance.h:273
SegmentInformationArray mySegmentAttributes
Definition: DtExtrudedLineModelInstance.h:279
bool startArrow
Definition: DtExtrudedLineModelInstance.h:46
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
unsigned int myStipplePattern
Definition: DtExtrudedLineModelInstance.h:300
bool endArrow
Is there an arrow at the start of the segment.
Definition: DtExtrudedLineModelInstance.h:47
vrvTacticalGraphicUtilities::LineStyle myLineStyle
Definition: DtExtrudedLineModelInstance.h:302
LineStyle
Default line Styles.
Definition: DtTacticalGraphicUtilities.h:28
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
float myLightingOffClamp
Definition: DtExtrudedLineModelInstance.h:312
Contains makVrv::DtOsgModelInstance class.
DtOsgSceneConnector is used by models to create an OSG position/orientation transform so that it can ...
Definition: DtOsgSceneConnector.h:77
bool myScribed
Definition: DtExtrudedLineModelInstance.h:284
When requesting information by segment, the structure used to return that information.
Definition: DtExtrudedLineModelInstance.h:44
float myRightExtent
Definition: DtExtrudedLineModelInstance.h:298
The abstract Channel Class.
Definition: DtChannel.h:35
DtVector myOrigin
Definition: DtExtrudedLineModelInstance.h:288
vrvTacticalGraphicUtilities::ArrowStyle myArrowStyle
Definition: DtExtrudedLineModelInstance.h:303
unsigned int stipple
Is there an arrow at the end of the segment;.
Definition: DtExtrudedLineModelInstance.h:48
Structure used to supply data to callback. Provided as structure as contents could change over time...
Definition: DtTacticalGraphicModelUpdaterManager.h:37
bool mySolid
Definition: DtExtrudedLineModelInstance.h:286
std::vector< int > mySegmentsToErase
Definition: DtExtrudedLineModelInstance.h:307
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
ArrowStyle
Definition: DtTacticalGraphicUtilities.h:46
DtGeom3dLinesComponent * myLinesComponent
Definition: DtExtrudedLineModelInstance.h:314
A class which represents a component for a set of 3d lines.
Definition: DtGeom3dLinesComponent.h:51
double myDisplayArrowSize
Definition: DtExtrudedLineModelInstance.h:305
bool myGeometryDirty
Definition: DtExtrudedLineModelInstance.h:287
osg::Vec4 myScribeColor
Definition: DtExtrudedLineModelInstance.h:282
double myTextureHeight
Definition: DtExtrudedLineModelInstance.h:292
float myUpExtent
Definition: DtExtrudedLineModelInstance.h:295
float myLeftExtent
Definition: DtExtrudedLineModelInstance.h:297
double myTextureWidth
Definition: DtExtrudedLineModelInstance.h:291
DtChannel * myChannelInstance
Definition: DtExtrudedLineModelInstance.h:309
std::vector< DtExtrudedLineModelSegmentInstance * > SegmentInformationArray
Definition: DtExtrudedLineModelInstance.h:278
PointVector myLinePoints
Definition: DtExtrudedLineModelInstance.h:275
int repeatFactor
Line stipple pattern.
Definition: DtExtrudedLineModelInstance.h:49
PointVector myDisplayPoints
Definition: DtExtrudedLineModelInstance.h:276
float myLineWidth
Definition: DtExtrudedLineModelInstance.h:294
DtModelSetId myHeightLinesModelSetId
Definition: DtExtrudedLineModelInstance.h:318
A prism controlled by control points.
Definition: DtExtrudedLineModelInstance.h:38
Contains DLL export macros.
bool myFixedWidthSizing
Definition: DtExtrudedLineModelInstance.h:306
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
bool myScribeColorSet
Definition: DtExtrudedLineModelInstance.h:283
float myScribeWidth
Definition: DtExtrudedLineModelInstance.h:310
bool myHeightLinesEnabled
Definition: DtExtrudedLineModelInstance.h:315
Contains various enum classes relating to model sets.
double myArrowSize
Definition: DtExtrudedLineModelInstance.h:304
osg::Vec4 myColor
Definition: DtExtrudedLineModelInstance.h:281
osg::ref_ptr< osg::Texture > myTexture
Definition: DtExtrudedLineModelInstance.h:290

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)