VR-Forces Developer's Guide
 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) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
16 
17 #include <osg/Vec2>
18 #include <osg/Matrix>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtFilledPolygon;
24  class DtSegmentedLine;
25  class DtChannelManager;
26  class DtChannel;
27 
36  {
37  public:
40 
42  virtual ~DtOsgWindowEllipseInstance();
43 
45  virtual void setVisible(bool isVisible);
46 
48  virtual void setFillPattern(unsigned int fillPattern);
49 
51  virtual void setFill(bool fill);
52 
54  virtual void setCenter( double x, double y );
55 
57  virtual void setNumVertices(unsigned int numVertices);
58 
61  virtual void setDimensions(double xLength, double yLength);
62 
64  virtual void setColor(float r,float g,float b,float a);
65 
67  virtual bool visible();
68 
71  virtual void setTransform( DtMatrix3<double> transform );
72 
74  virtual void update();
75 
78  virtual void setGroup( int groupId );
79 
84  virtual void setChannelOverlay( const std::string& displayName,
85  const std::string& windowName, const std::string& channelName ) override;
86 
89  virtual void setInnerDimensions( double xLength, double yLength );
90 
92  virtual void setStartEndAngles( double startAngle, double endAngle );
93 
95  virtual void setLineWidth( float lineWidth );
96 
99  virtual void createPolygon();
100 
103  virtual void createLines( unsigned int lineCount );
104 
106  virtual void setClipBox( DtVector2<double> bottomLeftLocation, DtVector2<double> topRightLocation );
107  protected:
108  typedef std::vector<osg::Vec2> VertexList;
109 
112  virtual void updateVertices();
113 
115  virtual void updateFilledPolygon();
116 
118  virtual void updateOutlinedSegments();
119 
121  virtual DtSegmentedLine* createLine();
122 
124  virtual osg::Vec2 transformVectorByTransform( osg::Vec2 vector, osg::Matrix transform );
125 
127  virtual VertexList buildVertices( double& startAngle, int numVertices,
128  double arcPerVertex, osg::Vec2 dimensions, osg::Matrix transform );
129 
131  virtual void slot_channelToBeDestroyed(DtChannelManager*, DtChannel*);
132 
133  protected:
136  std::vector<DtSegmentedLine*> myClippedOutlineEllipse;
137  osg::Matrix myTransform;
138  osg::Vec2 myDimensions;
139  osg::Vec2 myInnerDimensions;
140  osg::Vec2 myCenter;
142  osg::Vec2 myClipBoxTopRight;
143  unsigned int myFillPattern;
144  unsigned int myGroup;
145  unsigned int myNumVertices;
147  bool myFill;
149  bool myVisible;
150  std::string myDisplayName;
151  std::string myWindowName;
152  std::string myChannelName;
153  float myColorR, myColorG, myColorB, myColorA;
154  float myLineWdith;
155  // Rads!
156  double myStartAngle;
157  double myEndAngle;
158 
160  };
161 
164  {
165  public:
168 
172  virtual DtWindowEllipseInstance* create();
173  };
174 }
std::vector< DtSegmentedLine * > myClippedOutlineEllipse
Definition: DtOsgWindowEllipseInstance.h:136
float myColorR
Definition: DtOsgWindowEllipseInstance.h:153
osg::Vec2 myCenter
Definition: DtOsgWindowEllipseInstance.h:140
osg::Vec2 myDimensions
Definition: DtOsgWindowEllipseInstance.h:138
float myLineWdith
Definition: DtOsgWindowEllipseInstance.h:154
osg::Vec2 myClipBoxBottomLeft
Definition: DtOsgWindowEllipseInstance.h:141
DtSignalConnectionManager myConnections
Definition: DtOsgWindowEllipseInstance.h:159
unsigned int myFillPattern
Definition: DtOsgWindowEllipseInstance.h:143
Creator for DtOsgWindowEllipseInstance.
Definition: DtOsgWindowEllipseInstance.h:163
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtWindowEllipseInstance class.
DtFilledPolygon * myPolygon
Definition: DtOsgWindowEllipseInstance.h:135
bool myUseChannelOverlay
Definition: DtOsgWindowEllipseInstance.h:148
A variable vertex convex filled 2D polygon.
Definition: DtFilledPolygon.h:27
unsigned int myGroup
Definition: DtOsgWindowEllipseInstance.h:144
bool myVisible
Definition: DtOsgWindowEllipseInstance.h:149
The abstract Channel Class.
Definition: DtChannel.h:35
osg::Matrix myTransform
Definition: DtOsgWindowEllipseInstance.h:137
unsigned int myNumVertices
Definition: DtOsgWindowEllipseInstance.h:145
osg::Vec2 myInnerDimensions
Definition: DtOsgWindowEllipseInstance.h:139
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
double myEndAngle
Definition: DtOsgWindowEllipseInstance.h:157
Creator for DtWindowEllipseInstance, will throw if you create on it. osg creator is registered in vrv...
Definition: DtWindowEllipseInstance.h:89
std::string myDisplayName
Definition: DtOsgWindowEllipseInstance.h:150
Interface for a DtWindowEllipseInstance An object that draws a 2D ellipse.
Definition: DtWindowEllipseInstance.h:24
bool myFill
Definition: DtOsgWindowEllipseInstance.h:147
DtDe & myDe
Definition: DtOsgWindowEllipseInstance.h:134
bool myGeometryDirty
Definition: DtOsgWindowEllipseInstance.h:146
Base class for handling DtChannels. Derived classes should override the tick() method and advance the...
Definition: DtChannelManager.h:32
double myStartAngle
Definition: DtOsgWindowEllipseInstance.h:156
Base class to provide boost signal/slot management.
OSG Implementation of DtWindowEllipseInstance. Uses vrvGraphics to implement a 2D ellipse...
Definition: DtOsgWindowEllipseInstance.h:35
std::string myChannelName
Definition: DtOsgWindowEllipseInstance.h:152
osg::Vec2 myClipBoxTopRight
Definition: DtOsgWindowEllipseInstance.h:142
std::vector< osg::Vec2 > VertexList
Definition: DtOsgWindowEllipseInstance.h:108
Contains DLL export macros.
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:76
A convex polygon drawn using lines.
Definition: DtSegmentedLine.h:28
std::string myWindowName
Definition: DtOsgWindowEllipseInstance.h:151

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)