VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgWindowEllipseGroupInstance.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>
15 
17 
18 #include <osg/Vec2>
19 #include <osg/Matrix>
20 
21 namespace makVrv
22 {
23  class DtDe;
24  class DtFilledPolygon;
25  class DtSegmentedLine;
26 
36  {
37  public:
40 
43 
44  struct Ellipse
45  {
46  unsigned int stipplePattern;
47  bool fill;
48  float lineWidth;
49  float centerX;
50  float centerY;
51  float radius;
52  float innerRadius;
53  float startAngle; // rads
54  float endAngle; // rads
55  };
56 
59  virtual void setEllipseCount( unsigned int count );
60 
63  virtual void addEllipse( unsigned int stipplePattern,
64  bool fill, float lineWidth, float centerX, float centerY, float radius,
65  float innerRadius, float startAngle, float endAngle );
66 
72  virtual void updateEllipse( unsigned int index, unsigned int stipplePattern,
73  bool fill, float lineWidth, float centerX, float centerY, float radius,
74  float innerRadius, float startAngle, float endAngle );
75 
77  virtual void setVisible( bool isVisible );
78 
83  virtual void setChannelOverlay( const std::string& displayName,
84  const std::string& windowName, const std::string& channelName ) override;
85  protected:
89  virtual void updateVertices();
90 
92  virtual void updateFilledPolygon( DtFilledPolygon* poly, Ellipse ellipseInfo );
93 
95  virtual void updateLineSegments( std::vector<DtSegmentedLine*>& vec, Ellipse ellipseInfo );
96 
98  virtual void deleteAllEllipses();
99 
101  DtFilledPolygon* createFilledPolygon();
102 
104  virtual void createLinesVector( unsigned int lineCount, std::vector<DtSegmentedLine*>& vec );
105 
109  virtual void createEllipseStruct( Ellipse ellipse );
110 
111  protected:
112 
114  {
117  std::vector<DtSegmentedLine*> clippedOutlineEllipse;
118  };
119  std::vector< EllipseStruct > myEllipses;
120 
121  unsigned int myEllipseCount;
122  };
123 
126  {
127  public:
130 
133 
135  static DtOsgWindowEllipseGroupInstanceCreator& instance( DtDe& de );
136 
138  static void registerInstance( DtDe& de, DtOsgWindowEllipseGroupInstanceCreator* instance );
139 
141  virtual DtOsgWindowEllipseGroupInstance* create();
142 
143  protected:
145  };
146 }
Contains makVrv::DtOsgWindowEllipseInstance class.
float centerY
Definition: DtOsgWindowEllipseGroupInstance.h:50
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: DtOsgWindowEllipseGroupInstance.h:44
float startAngle
Definition: DtOsgWindowEllipseGroupInstance.h:53
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float lineWidth
Definition: DtOsgWindowEllipseGroupInstance.h:48
Creator for DtOsgWindowEllipseInstance.
Definition: DtOsgWindowEllipseGroupInstance.h:125
unsigned int stipplePattern
Definition: DtOsgWindowEllipseGroupInstance.h:46
std::vector< DtSegmentedLine * > clippedOutlineEllipse
Definition: DtOsgWindowEllipseGroupInstance.h:117
A variable vertex convex filled 2D polygon.
Definition: DtFilledPolygon.h:26
std::vector< EllipseStruct > myEllipses
Definition: DtOsgWindowEllipseGroupInstance.h:119
Contains makVrv::DtVirtualBaseClass class.
float centerX
Definition: DtOsgWindowEllipseGroupInstance.h:49
Ellipse ellipseInfo
Definition: DtOsgWindowEllipseGroupInstance.h:115
DtFilledPolygon * filledEllipse
Definition: DtOsgWindowEllipseGroupInstance.h:116
Contains makVrv::DtOsgWindowEllipseGroup class.
float endAngle
Definition: DtOsgWindowEllipseGroupInstance.h:54
float radius
Definition: DtOsgWindowEllipseGroupInstance.h:51
float innerRadius
Definition: DtOsgWindowEllipseGroupInstance.h:52
OSG Implementation of DtWindowEllipseInstance. Uses vrvGraphics to implement a 2D ellipse...
Definition: DtOsgWindowEllipseInstance.h:35
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:70
This class updates vertices for each ellipse added via addellipse. They are stored in a vector of Ell...
Definition: DtOsgWindowEllipseGroupInstance.h:35
bool fill
Definition: DtOsgWindowEllipseGroupInstance.h:47
Definition: DtOsgWindowEllipseGroupInstance.h:113
unsigned int myEllipseCount
Definition: DtOsgWindowEllipseGroupInstance.h:121
DtDe & myDe
Definition: DtOsgWindowEllipseGroupInstance.h:144

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)