VR-Forces 5.0.2 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
16 
17 #include <matrix/vlVector.h>
18 
19 #include <osg/PrimitiveSet>
20 #include <osg/Geometry>
21 #include <osg/Texture>
22 
23 namespace osg
24 {
25  class Group;
26 }
27 
28 namespace makVrv
29 {
30  class DtExtrudedLineModelSegmentInstance;
31  class DtChannel;
32 
36  {
37  public:
38  typedef std::vector<DtVector> PointVector;
39 
42  {
43  bool startArrow;
44  bool endArrow;
45  unsigned int stipple;
47  float color[4];
48  };
49 
50  public:
53 
55  virtual ~DtExtrudedLineModelInstance();
56 
57  private:
58 
61 
64 
67 
68  public:
69 
71  virtual const std::vector<DtVector>& points() const;
72 
74  virtual void addPoint(const DtVector&, int index = -1);
75 
77  virtual void removePoint(int index);
78 
80  virtual void setPosition(int index, const DtVector&);
81 
84  virtual void setLinePoints(const std::vector<DtVector>&);
85 
87  virtual void clearPoints();
88 
91  virtual bool realize(DtModelDefinition& definition);
92 
94  virtual void addToConnector( DtOsgSceneConnector* connector );
95 
97  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
98 
100  virtual void setStipplePattern(unsigned int, int repeatFactor);
101 
103  virtual std::vector<SegmentInformation> segmentInformation() const;
104 
108  virtual void setSegmentInformation(const std::vector<SegmentInformation>&);
109 
111  virtual void setSegmentStipplePattern(int s, unsigned int, int repeatFactor);
112 
114  virtual void setColor(float r,float g,float b,float a);
115 
117  virtual void setSegmentColor(int, float r, float g, float b, float a);
118 
120  virtual void setTextureHeight(double height);
121 
123  virtual void setTextureWidth(double width);
124 
126  virtual void setTexture(osg::Texture* texture);
127 
134 
136  virtual void setUpExtent(float height);
137 
139  virtual void setDownExtent(float height);
140 
142  virtual void setLeftExtent(float height);
143 
145  virtual void setRightExtent(float heigh);
147 
149  virtual void setWidth(float);
150 
153  virtual void setHeight(float);
154 
156  virtual void setDimensions(float width, float height);
157 
160  virtual void setLineWidth(float width);
161 
163  virtual void setScribed(bool b);
164 
166  virtual void setScribeWidth(float);
167 
170  virtual void setScribeColor(float r, float g, float b, float a);
171 
173  virtual void setOcclusionEnabled(bool enabled);
174 
176  virtual void setVisible(bool isVisible) {}
177 
179  int pointCount() const
180  {
181  return myLinePoints.size();
182  }
183 
185  const DtVector& point(int) const;
186 
188  virtual void setPickable(bool);
189 
191  bool pickable() const;
192 
194  void setOrigin(const DtVector& origin);
195 
197  virtual void setSolid(bool);
198 
200  virtual void update();
201 
203  virtual void setSegmentEndArrow(int, bool);
204 
206  virtual void setSegmentStartArrow(int, bool);
207 
209  virtual void setArrowSize(double);
210 
212  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
213 
215  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
216 
219  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
220 
223  virtual void setFixedWidthSizing(bool);
224 
227  virtual void setChannelInstance(DtChannel*);
228 
230  virtual bool hasArrows() const;
231 
232  protected:
234  virtual void updateGeometry();
235 
237  virtual DtExtrudedLineModelSegmentInstance* createSegment();
238 
240  virtual void removeSegment(int);
241 
243  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
244 
246  virtual void resizeSegments(int);
247 
249  virtual void updateArrowState();
250 
252  virtual void updateSizes(double);
253 
255  virtual void updateWithViewResolution(double);
256 
257  protected:
259 
262 
263  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
265 
266  osg::Vec4 myColor;
267  osg::Vec4 myScribeColor;
269  bool myScribed;
270 
271  bool mySolid;
274 
278 
279  float myLineWidth;
280  float myUpExtent;
284 
285  unsigned int myStipplePattern;
289  double myArrowSize;
292  std::vector<int> mySegmentsToErase;
293 
296 
298  };
299 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
A prism controlled by control points.
Definition: DtExtrudedLineModelSegmentInstance.h:41
int myRepeatFactor
Definition: DtExtrudedLineModelInstance.h:286
virtual void setVisible(bool isVisible)
no-op
Definition: DtExtrudedLineModelInstance.h:176
float myDownExtent
Definition: DtExtrudedLineModelInstance.h:281
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< DtVector > PointVector
Definition: DtExtrudedLineModelInstance.h:38
voidpf uLong int origin
Definition: ioapi.h:42
int pointCount() const
Get the number of points in the line.
Definition: DtExtrudedLineModelInstance.h:179
osg::ref_ptr< osg::Group > myMainTransform
Definition: DtExtrudedLineModelInstance.h:258
SegmentInformationArray mySegmentAttributes
Definition: DtExtrudedLineModelInstance.h:264
bool startArrow
Definition: DtExtrudedLineModelInstance.h:43
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
unsigned int myStipplePattern
Definition: DtExtrudedLineModelInstance.h:285
bool endArrow
Is there an arrow at the start of the segment.
Definition: DtExtrudedLineModelInstance.h:44
vrvTacticalGraphicUtilities::LineStyle myLineStyle
Definition: DtExtrudedLineModelInstance.h:287
LineStyle
Default line Styles.
Definition: DtTacticalGraphicUtilities.h:26
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
float myLightingOffClamp
Definition: DtExtrudedLineModelInstance.h:297
Contains makVrv::DtOsgModelInstance class.
DtOsgSceneConnector is used by models to create an OSG position/orientation transform so that it can ...
Definition: DtOsgSceneConnector.h:76
bool myScribed
Definition: DtExtrudedLineModelInstance.h:269
When requesting information by segment, the structure used to return that information.
Definition: DtExtrudedLineModelInstance.h:41
float myRightExtent
Definition: DtExtrudedLineModelInstance.h:283
The abstract Channel Class.
Definition: DtChannel.h:35
DtVector myOrigin
Definition: DtExtrudedLineModelInstance.h:273
vrvTacticalGraphicUtilities::ArrowStyle myArrowStyle
Definition: DtExtrudedLineModelInstance.h:288
unsigned int stipple
Is there an arrow at the end of the segment;.
Definition: DtExtrudedLineModelInstance.h:45
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:271
std::vector< int > mySegmentsToErase
Definition: DtExtrudedLineModelInstance.h:292
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:43
double myDisplayArrowSize
Definition: DtExtrudedLineModelInstance.h:290
bool myGeometryDirty
Definition: DtExtrudedLineModelInstance.h:272
osg::Vec4 myScribeColor
Definition: DtExtrudedLineModelInstance.h:267
double myTextureHeight
Definition: DtExtrudedLineModelInstance.h:277
float myUpExtent
Definition: DtExtrudedLineModelInstance.h:280
float myLeftExtent
Definition: DtExtrudedLineModelInstance.h:282
double myTextureWidth
Definition: DtExtrudedLineModelInstance.h:276
DtChannel * myChannelInstance
Definition: DtExtrudedLineModelInstance.h:294
std::vector< DtExtrudedLineModelSegmentInstance * > SegmentInformationArray
Definition: DtExtrudedLineModelInstance.h:263
PointVector myLinePoints
Definition: DtExtrudedLineModelInstance.h:260
int repeatFactor
Line stipple pattern.
Definition: DtExtrudedLineModelInstance.h:46
PointVector myDisplayPoints
Definition: DtExtrudedLineModelInstance.h:261
float myLineWidth
Definition: DtExtrudedLineModelInstance.h:279
A prism controlled by control points.
Definition: DtExtrudedLineModelInstance.h:35
Contains DLL export macros.
bool myFixedWidthSizing
Definition: DtExtrudedLineModelInstance.h:291
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:70
bool myScribeColorSet
Definition: DtExtrudedLineModelInstance.h:268
float myScribeWidth
Definition: DtExtrudedLineModelInstance.h:295
double myArrowSize
Definition: DtExtrudedLineModelInstance.h:289
osg::Vec4 myColor
Definition: DtExtrudedLineModelInstance.h:266
osg::ref_ptr< osg::Texture > myTexture
Definition: DtExtrudedLineModelInstance.h:275

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)