VR-Forces 4.8 Class Documentation
 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) 2019 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 
58  virtual const std::vector<DtVector>& points() const;
59 
61  virtual void addPoint(const DtVector&, int index = -1);
62 
64  virtual void removePoint(int index);
65 
67  virtual void setPosition(int index, const DtVector&);
68 
71  virtual void setLinePoints(const std::vector<DtVector>&);
72 
74  virtual void clearPoints();
75 
78  virtual bool realize(DtModelDefinition& definition);
79 
81  virtual void addToConnector( DtOsgSceneConnector* connector );
82 
84  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
85 
87  virtual void setStipplePattern(unsigned int, int repeatFactor);
88 
90  virtual std::vector<SegmentInformation> segmentInformation() const;
91 
95  virtual void setSegmentInformation(const std::vector<SegmentInformation>&);
96 
98  virtual void setSegmentStipplePattern(int s, unsigned int, int repeatFactor);
99 
101  virtual void setColor(float r,float g,float b,float a);
102 
104  virtual void setSegmentColor(int, float r, float g, float b, float a);
105 
107  virtual void setTextureHeight(double height);
108 
110  virtual void setTextureWidth(double width);
111 
113  virtual void setTexture(osg::Texture* texture);
114 
121 
123  virtual void setUpExtent(float height);
124 
126  virtual void setDownExtent(float height);
127 
129  virtual void setLeftExtent(float height);
130 
132  virtual void setRightExtent(float heigh);
134 
136  virtual void setWidth(float);
137 
140  virtual void setHeight(float);
141 
143  virtual void setDimensions(float width, float height);
144 
147  virtual void setLineWidth(float width);
148 
150  virtual void setScribed(bool b);
151 
153  virtual void setScribeWidth(float);
154 
157  virtual void setScribeColor(float r, float g, float b, float a);
158 
160  virtual void setOcclusionEnabled(bool enabled);
161 
163  virtual void setVisible(bool isVisible) {}
164 
166  int pointCount() const
167  {
168  return myLinePoints.size();
169  }
170 
172  const DtVector& point(int) const;
173 
175  virtual void setPickable(bool);
176 
178  bool pickable() const;
179 
181  void setOrigin(const DtVector& origin);
182 
184  virtual void setSolid(bool);
185 
187  virtual void update();
188 
190  virtual void setSegmentEndArrow(int, bool);
191 
193  virtual void setSegmentStartArrow(int, bool);
194 
196  virtual void setArrowSize(double);
197 
199  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
200 
202  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
203 
206  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
207 
210  virtual void setFixedWidthSizing(bool);
211 
214  virtual void setChannelInstance(DtChannel*);
215 
217  virtual bool hasArrows() const;
218 
219  protected:
221  virtual void updateGeometry();
222 
224  virtual DtExtrudedLineModelSegmentInstance* createSegment();
225 
227  virtual void removeSegment(int);
228 
230  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
231 
233  virtual void resizeSegments(int);
234 
236  virtual void updateArrowState();
237 
239  virtual void updateSizes(double);
240 
242  virtual void updateWithViewResolution(double);
243 
244  protected:
246 
249 
250  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
252 
253  osg::Vec4 myColor;
254  osg::Vec4 myScribeColor;
256  bool myScribed;
257 
258  bool mySolid;
261 
265 
266  float myLineWidth;
267  float myUpExtent;
271 
272  unsigned int myStipplePattern;
276  double myArrowSize;
279  std::vector<int> mySegmentsToErase;
280 
283 
285  };
286 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
A prism controlled by control points.
Definition: DtExtrudedLineModelSegmentInstance.h:38
int myRepeatFactor
Definition: DtExtrudedLineModelInstance.h:273
virtual void setVisible(bool isVisible)
no-op
Definition: DtExtrudedLineModelInstance.h:163
float myDownExtent
Definition: DtExtrudedLineModelInstance.h:268
#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:166
osg::ref_ptr< osg::Group > myMainTransform
Definition: DtExtrudedLineModelInstance.h:245
SegmentInformationArray mySegmentAttributes
Definition: DtExtrudedLineModelInstance.h:251
bool startArrow
Definition: DtExtrudedLineModelInstance.h:43
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
unsigned int myStipplePattern
Definition: DtExtrudedLineModelInstance.h:272
bool endArrow
Is there an arrow at the start of the segment.
Definition: DtExtrudedLineModelInstance.h:44
vrvTacticalGraphicUtilities::LineStyle myLineStyle
Definition: DtExtrudedLineModelInstance.h:274
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:33
float myLightingOffClamp
Definition: DtExtrudedLineModelInstance.h:284
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:256
When requesting information by segment, the structure used to return that information.
Definition: DtExtrudedLineModelInstance.h:41
float myRightExtent
Definition: DtExtrudedLineModelInstance.h:270
The abstract Channel Class.
Definition: DtChannel.h:29
DtVector myOrigin
Definition: DtExtrudedLineModelInstance.h:260
vrvTacticalGraphicUtilities::ArrowStyle myArrowStyle
Definition: DtExtrudedLineModelInstance.h:275
unsigned int stipple
Is there an arrow at the end of the segment;.
Definition: DtExtrudedLineModelInstance.h:45
Structure used to supply data to callback.
Definition: DtTacticalGraphicModelUpdaterManager.h:35
bool mySolid
Definition: DtExtrudedLineModelInstance.h:258
std::vector< int > mySegmentsToErase
Definition: DtExtrudedLineModelInstance.h:279
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:72
ArrowStyle
Definition: DtTacticalGraphicUtilities.h:43
double myDisplayArrowSize
Definition: DtExtrudedLineModelInstance.h:277
bool myGeometryDirty
Definition: DtExtrudedLineModelInstance.h:259
osg::Vec4 myScribeColor
Definition: DtExtrudedLineModelInstance.h:254
double myTextureHeight
Definition: DtExtrudedLineModelInstance.h:264
float myUpExtent
Definition: DtExtrudedLineModelInstance.h:267
float myLeftExtent
Definition: DtExtrudedLineModelInstance.h:269
double myTextureWidth
Definition: DtExtrudedLineModelInstance.h:263
DtChannel * myChannelInstance
Definition: DtExtrudedLineModelInstance.h:281
std::vector< DtExtrudedLineModelSegmentInstance * > SegmentInformationArray
Definition: DtExtrudedLineModelInstance.h:250
PointVector myLinePoints
Definition: DtExtrudedLineModelInstance.h:247
int repeatFactor
Line stipple pattern.
Definition: DtExtrudedLineModelInstance.h:46
PointVector myDisplayPoints
Definition: DtExtrudedLineModelInstance.h:248
float myLineWidth
Definition: DtExtrudedLineModelInstance.h:266
A prism controlled by control points.
Definition: DtExtrudedLineModelInstance.h:35
Contains DLL export macros.
bool myFixedWidthSizing
Definition: DtExtrudedLineModelInstance.h:278
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myScribeColorSet
Definition: DtExtrudedLineModelInstance.h:255
float myScribeWidth
Definition: DtExtrudedLineModelInstance.h:282
double myArrowSize
Definition: DtExtrudedLineModelInstance.h:276
osg::Vec4 myColor
Definition: DtExtrudedLineModelInstance.h:253
osg::ref_ptr< osg::Texture > myTexture
Definition: DtExtrudedLineModelInstance.h:262

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)