VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgWindowEllipseInstance.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>
13 
15 #include <osg/Vec2>
16 #include <osg/Matrix>
17 
18 namespace makVrv
19 {
20  class DtDe;
21  class DtFilledPolygon;
22  class DtSegmentedLine;
23  class DtChannelManager;
24  class DtChannel;
25 
34  {
35  public:
38 
40  virtual ~DtOsgWindowEllipseInstance();
41 
43  virtual void setVisible(bool isVisible);
44 
46  virtual void setFillPattern(unsigned int fillPattern);
47 
49  virtual void setFill(bool fill);
50 
52  virtual void setCenter( double x, double y );
53 
55  virtual void setNumVertices(unsigned int numVertices);
56 
59  virtual void setDimensions(double xLength, double yLength);
60 
62  virtual void setColor(float r,float g,float b,float a);
63 
65  virtual bool visible();
66 
69  virtual void setTransform( DtMatrix3<double> transform );
70 
72  virtual void update();
73 
76  virtual void setGroup( int groupId );
77 
82  virtual void setChannelOverlay( std::string displayName,
83  std::string windowName, std::string channelName );
84 
87  virtual void setInnerDimensions( double xLength, double yLength );
88 
90  virtual void setStartEndAngles( double startAngle, double endAngle );
91 
93  virtual void setLineWidth( float lineWidth );
94 
97  virtual void createPolygon();
98 
101  virtual void createLines( unsigned int lineCount );
102 
104  virtual void setClipBox( DtVector2<double> bottomLeftLocation, DtVector2<double> topRightLocation );
105  protected:
106  typedef std::vector<osg::Vec2> VertexList;
107 
110  virtual void updateVertices();
111 
113  virtual void updateFilledPolygon();
114 
116  virtual void updateOutlinedSegments();
117 
119  virtual DtSegmentedLine* createLine();
120 
122  virtual osg::Vec2 transformVectorByTransform( osg::Vec2 vector, osg::Matrix transform );
123 
125  virtual VertexList buildVertices( double& startAngle, int numVertices,
126  double arcPerVertex, osg::Vec2 dimensions, osg::Matrix transform );
127 
129  virtual void slot_channelToBeDestroyed(DtChannelManager*, DtChannel*);
130 
131  protected:
134  std::vector<DtSegmentedLine*> myClippedOutlineEllipse;
135  osg::Matrix myTransform;
136  osg::Vec2 myDimensions;
137  osg::Vec2 myInnerDimensions;
138  osg::Vec2 myCenter;
140  osg::Vec2 myClipBoxTopRight;
141  unsigned int myFillPattern;
142  unsigned int myGroup;
143  unsigned int myNumVertices;
145  bool myFill;
147  bool myVisible;
148  std::string myDisplayName;
149  std::string myWindowName;
150  std::string myChannelName;
151  float myColorR, myColorG, myColorB, myColorA;
152  float myLineWdith;
153  // Rads!
154  double myStartAngle;
155  double myEndAngle;
156  };
157 
160  {
161  public:
164 
168  virtual DtWindowEllipseInstance* create();
169  };
170 }
std::vector< DtSegmentedLine * > myClippedOutlineEllipse
Definition: DtOsgWindowEllipseInstance.h:134
float myColorR
Definition: DtOsgWindowEllipseInstance.h:151
osg::Vec2 myCenter
Definition: DtOsgWindowEllipseInstance.h:138
osg::Vec2 myDimensions
Definition: DtOsgWindowEllipseInstance.h:136
float myLineWdith
Definition: DtOsgWindowEllipseInstance.h:152
osg::Vec2 myClipBoxBottomLeft
Definition: DtOsgWindowEllipseInstance.h:139
unsigned int myFillPattern
Definition: DtOsgWindowEllipseInstance.h:141
Creator for DtOsgWindowEllipseInstance.
Definition: DtOsgWindowEllipseInstance.h:159
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtWindowEllipseInstance class.
DtFilledPolygon * myPolygon
Definition: DtOsgWindowEllipseInstance.h:133
bool myUseChannelOverlay
Definition: DtOsgWindowEllipseInstance.h:146
A variable vertex convex filled 2D polygon.
Definition: DtFilledPolygon.h:26
unsigned int myGroup
Definition: DtOsgWindowEllipseInstance.h:142
bool myVisible
Definition: DtOsgWindowEllipseInstance.h:147
The abstract Channel Class.
Definition: DtChannel.h:30
osg::Matrix myTransform
Definition: DtOsgWindowEllipseInstance.h:135
unsigned int myNumVertices
Definition: DtOsgWindowEllipseInstance.h:143
osg::Vec2 myInnerDimensions
Definition: DtOsgWindowEllipseInstance.h:137
double myEndAngle
Definition: DtOsgWindowEllipseInstance.h:155
Creator for DtWindowEllipseInstance, will throw if you create on it.
Definition: DtWindowEllipseInstance.h:89
std::string myDisplayName
Definition: DtOsgWindowEllipseInstance.h:148
Interface for a DtWindowEllipseInstance An object that draws a 2D ellipse.
Definition: DtWindowEllipseInstance.h:24
bool myFill
Definition: DtOsgWindowEllipseInstance.h:145
DtDe & myDe
Definition: DtOsgWindowEllipseInstance.h:132
bool myGeometryDirty
Definition: DtOsgWindowEllipseInstance.h:144
Base class for handling DtChannels.
Definition: DtChannelManager.h:32
double myStartAngle
Definition: DtOsgWindowEllipseInstance.h:154
OSG Implementation of DtWindowEllipseInstance.
Definition: DtOsgWindowEllipseInstance.h:33
std::string myChannelName
Definition: DtOsgWindowEllipseInstance.h:150
osg::Vec2 myClipBoxTopRight
Definition: DtOsgWindowEllipseInstance.h:140
std::vector< osg::Vec2 > VertexList
Definition: DtOsgWindowEllipseInstance.h:106
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
A convex polygon drawn using lines.
Definition: DtSegmentedLine.h:24
std::string myWindowName
Definition: DtOsgWindowEllipseInstance.h:149

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)