VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtExtrudedLineModelSegmentInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
15 
16 #include <matrix/vlVector.h>
17 
18 #include <osg/PrimitiveSet>
19 #include <osg/Geode>
20 #include <osg/Geometry>
21 #include <osg/LineWidth>
22 
23 namespace osg
24 {
25  class Geode;
26  class Array;
27  class Texture;
28  class Group;
29 }
30 
31 namespace makVrv
32 {
33  class DtOsgSegmentPickable;
34  class DtDe;
35 
39  {
40  public:
42  {
46  FullExtrusion
47  };
48 
51 
54 
56  virtual void setStipplePattern(unsigned int, int repeatFactor);
57 
59  virtual void getStipplePattern(unsigned int&, int&);
60 
62  virtual void setColor(const osg::Vec4&);
63 
65  virtual void getColor(float& r, float& g, float& b, float& a);
66 
68  virtual void setPoints(const DtVector& start, const DtVector& end);
69  virtual void updatePoints(const DtVector&, const DtVector&);
70 
72  virtual void setTextureHeight(double height);
73 
75  virtual void setTextureWidth(double width);
76 
78  virtual void setTexture(osg::Texture* texture);
79 
86 
88  virtual void setUpExtent(float height);
89 
91  virtual void setDownExtent(float height);
92 
94  virtual void setLeftExtent(float height);
95 
97  virtual void setRightExtent(float heigh);
99 
101  virtual void setWidth(float);
102 
104  virtual void setScribeWidth(float);
105 
108  virtual void setHeight(float);
109 
112  virtual void setLineWidth(float width);
113 
115  virtual void setScribed(bool b);
116 
119  virtual void setScribeColor(const osg::Vec4&);
120 
122  virtual void setOcclusionEnabled(bool enabled);
123 
125  virtual void setPickable(bool);
126 
128  bool pickable() const;
129 
131  osg::Node* rootNode();
132 
134  void setOrigin(const DtVector& origin);
135 
137  virtual void setSolid(bool);
138 
140  virtual void setEndArrow(bool);
141 
143  virtual bool endArrow() const;
144 
146  virtual void setStartArrow(bool);
147 
149  virtual bool startArrow() const;
150 
152  virtual void setArrowSize(double);
153 
155  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
156 
160  virtual void setIsLastSegment(bool);
161  virtual bool isLastSegment() const;
162 
164  virtual void updateColors();
165 
166  protected:
168  virtual void updateMode();
169 
171  virtual void updateTextureCoordinates();
172 
174  virtual int addPointsForExtentExtrusion(const DtVector& point);
175 
178  virtual void setupScribeTransparency(bool b);
179 
181  virtual int addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
182 
184  virtual int addPointsForFullExtrusion(const DtVector& from,
185  const DtVector& to);
186 
188  virtual void updateStippling();
189 
191  virtual void updateScribeLine();
192 
194  virtual bool frontAndBackFaceRendered() const;
195 
197  virtual void updatePointsForLineStrip();
198 
200  virtual void updatePointsForTriangleStrip();
201 
203  virtual void updatePointsForExtrusion();
204 
206  virtual void createFaces();
207 
209  virtual void updateScribeForTriangleStrip();
210 
212  virtual void updateScribeForExtrusion();
213 
215  virtual void updatePointsWithArrows();
216 
218  virtual void connectFaces(osg::DrawElementsUInt*, int startFace, int endFace) const;
219 
220  protected:
221  typedef std::vector<DtVector> PointVector;
222 
226 
230 
233 
237 
238  osg::Vec4 myColor;
239 
242 
243  float myUpExtent;
247 
251 
254  double myArrowSize;
256 
258 
259  bool myScribed;
260  bool mySolid;
262 
263  unsigned int myStipplePattern;
265 
267 
272 
273  osg::Vec4 myScribeColor;
275 
277 
279  };
280 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
A prism controlled by control points.
Definition: DtExtrudedLineModelSegmentInstance.h:38
std::vector< DtVector > PointVector
Definition: DtExtrudedLineModelSegmentInstance.h:221
DtVector myStartPoint
Definition: DtExtrudedLineModelSegmentInstance.h:248
bool myScribeColorSet
Definition: DtExtrudedLineModelSegmentInstance.h:274
Draws a line with extruded width.
Definition: DtExtrudedLineModelSegmentInstance.h:45
osg::ref_ptr< osg::Texture > myTexture
Definition: DtExtrudedLineModelSegmentInstance.h:231
bool myScribeWidthSet
Definition: DtExtrudedLineModelSegmentInstance.h:261
Create a series of cylinders that can be used as pickable on lines that only have osg width...
Definition: DtOsgSegmentPickable.h:23
float myDownExtent
Definition: DtExtrudedLineModelSegmentInstance.h:244
osg::ref_ptr< osg::Vec2Array > myTextureCoordinates
Definition: DtExtrudedLineModelSegmentInstance.h:232
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
voidpf uLong int origin
Definition: ioapi.h:42
osg::Vec4 myColor
Definition: DtExtrudedLineModelSegmentInstance.h:238
osg::ref_ptr< osg::Group > myMainTransform
Definition: DtExtrudedLineModelSegmentInstance.h:236
osg::ref_ptr< osg::Geometry > myScribeGeometry
Definition: DtExtrudedLineModelSegmentInstance.h:228
vrvTacticalGraphicUtilities::ArrowStyle myArrowStyle
Definition: DtExtrudedLineModelSegmentInstance.h:255
bool myIsLastSegment
Definition: DtExtrudedLineModelSegmentInstance.h:276
Definition: DtExtrudedLineModelSegmentInstance.h:43
PointVector myDrawPoints
Definition: DtExtrudedLineModelSegmentInstance.h:257
osg::ref_ptr< osg::Geode > myShapeGeode
Definition: DtExtrudedLineModelSegmentInstance.h:223
Draws a line without width or height.
Definition: DtExtrudedLineModelSegmentInstance.h:44
DtOsgSegmentPickable * myPickable
If drawing as line use this pointer to create the pickable segments of that line, else geometry will ...
Definition: DtExtrudedLineModelSegmentInstance.h:270
unsigned int myStipplePattern
Definition: DtExtrudedLineModelSegmentInstance.h:263
DtDe & myDe
Definition: DtExtrudedLineModelSegmentInstance.h:278
osg::ref_ptr< osg::Geode > myScribeGeode
Definition: DtExtrudedLineModelSegmentInstance.h:227
Contains makVrv::DtOsgModelInstance class.
osg::ref_ptr< osg::LineWidth > myScribeWidth
Definition: DtExtrudedLineModelSegmentInstance.h:235
osg::ref_ptr< osg::LineWidth > myLineWidth
Definition: DtExtrudedLineModelSegmentInstance.h:234
double myTextureHeight
Definition: DtExtrudedLineModelSegmentInstance.h:241
bool myScribed
Definition: DtExtrudedLineModelSegmentInstance.h:259
double myTextureWidth
Definition: DtExtrudedLineModelSegmentInstance.h:240
float myRightExtent
Definition: DtExtrudedLineModelSegmentInstance.h:246
ArrowStyle
Definition: DtTacticalGraphicUtilities.h:43
LineExtrusionMode
Definition: DtExtrudedLineModelSegmentInstance.h:41
double myArrowSize
Definition: DtExtrudedLineModelSegmentInstance.h:254
DtVector myOrigin
Definition: DtExtrudedLineModelSegmentInstance.h:250
bool myIsPickable
Definition: DtExtrudedLineModelSegmentInstance.h:271
Contains DLL export macros.
bool myEndArrow
Definition: DtExtrudedLineModelSegmentInstance.h:253
osg::ref_ptr< osg::Vec3Array > myScribePoints
Definition: DtExtrudedLineModelSegmentInstance.h:229
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
int myRepeatFactor
Definition: DtExtrudedLineModelSegmentInstance.h:264
float myLeftExtent
Definition: DtExtrudedLineModelSegmentInstance.h:245
osg::ref_ptr< osg::Vec3Array > myShapePoints
Definition: DtExtrudedLineModelSegmentInstance.h:225
osg::ref_ptr< osg::Geometry > myShapeGeometry
Definition: DtExtrudedLineModelSegmentInstance.h:224
bool mySolid
Definition: DtExtrudedLineModelSegmentInstance.h:260
float myUpExtent
Definition: DtExtrudedLineModelSegmentInstance.h:243
DtVector myEndPoint
Definition: DtExtrudedLineModelSegmentInstance.h:249
LineExtrusionMode myMode
Definition: DtExtrudedLineModelSegmentInstance.h:266
osg::Vec4 myScribeColor
Definition: DtExtrudedLineModelSegmentInstance.h:273
bool myStartArrow
Definition: DtExtrudedLineModelSegmentInstance.h:252

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)