summaryrefslogtreecommitdiff
path: root/inc/Graphic2d_Circle.hxx
blob: 2122fa0c0358938285ab9d25aaf1deef675f6ae4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Graphic2d_Circle_HeaderFile
#define _Graphic2d_Circle_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Graphic2d_Circle_HeaderFile
#include <Handle_Graphic2d_Circle.hxx>
#endif

#ifndef _Standard_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Graphic2d_Line_HeaderFile
#include <Graphic2d_Line.hxx>
#endif
#ifndef _Handle_Graphic2d_GraphicObject_HeaderFile
#include <Handle_Graphic2d_GraphicObject.hxx>
#endif
#ifndef _Quantity_Length_HeaderFile
#include <Quantity_Length.hxx>
#endif
#ifndef _Quantity_PlaneAngle_HeaderFile
#include <Quantity_PlaneAngle.hxx>
#endif
#ifndef _Handle_Graphic2d_Drawer_HeaderFile
#include <Handle_Graphic2d_Drawer.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Aspect_FStream_HeaderFile
#include <Aspect_FStream.hxx>
#endif
#ifndef _Aspect_IFStream_HeaderFile
#include <Aspect_IFStream.hxx>
#endif
class Graphic2d_CircleDefinitionError;
class Graphic2d_GraphicObject;
class Graphic2d_Drawer;


//! Constructs a primitive Circle <br>
class Graphic2d_Circle : public Graphic2d_Line {

public:

  //! Creates a complete circle. <br>
//!	    The center is <X>, <Y>. <br>
//!	    The radius is <Radius>. <br>
//!  Warning: Raises CircleDefinitionError if the <br>
//!          radius is null. <br>
  Standard_EXPORT   Graphic2d_Circle(const Handle(Graphic2d_GraphicObject)& aGraphicObject,const Quantity_Length X,const Quantity_Length Y,const Quantity_Length Radius);
  //! Creates an arc. <br>
//!	    The center is <X>, <Y>. <br>
//!	    The radius is <Radius>. <br>
//!	    Angles are measured counterclockwise with 0 radian <br>
//!	    at 3 o'clock. <br>
//!  Warning: Raises CircleDefinitionError if the <br>
//!          radius is null. <br>
  Standard_EXPORT   Graphic2d_Circle(const Handle(Graphic2d_GraphicObject)& aGraphicObject,const Quantity_Length X,const Quantity_Length Y,const Quantity_Length Radius,const Quantity_PlaneAngle Alpha,const Quantity_PlaneAngle Beta);
  //! returns the coordinates of center of the circle <br>
  Standard_EXPORT     void Center(Quantity_Length& X,Quantity_Length& Y) const;
  //! returns the radius of this circle <br>
  Standard_EXPORT     Quantity_Length Radius() const;
  //! returns the first angle of the arc <br>
  Standard_EXPORT     Quantity_PlaneAngle FirstAngle() const;
  //! returns the second angle of the arc <br>
  Standard_EXPORT     Quantity_PlaneAngle SecondAngle() const;
  //! defines the coordinates of center of the circle <br>
  Standard_EXPORT     void SetCenter(const Quantity_Length X,const Quantity_Length Y) ;
  //! defines the radius of this circle <br>
  Standard_EXPORT     void SetRadius(const Quantity_Length theR) ;
  //! defines the angles of the arc <br>
  Standard_EXPORT     void SetAngles(const Quantity_PlaneAngle Alpha,const Quantity_PlaneAngle Beta) ;
  
  Standard_EXPORT   virtual  void Save(Aspect_FStream& aFStream) const;
  
  Standard_EXPORT   static  void Retrieve(Aspect_IFStream& anIFStream,const Handle(Graphic2d_GraphicObject)& aGraphicObject) ;




  DEFINE_STANDARD_RTTI(Graphic2d_Circle)

protected:

  //! Draws the circle <me>. <br>
  Standard_EXPORT     void Draw(const Handle(Graphic2d_Drawer)& aDrawer) ;
  //! Draws element <anIndex> of the circle <me>. <br>
  Standard_EXPORT   virtual  void DrawElement(const Handle(Graphic2d_Drawer)& aDrawer,const Standard_Integer anIndex) ;
  //! Draws vertex <anIndex> of the circle <me>. <br>
  Standard_EXPORT   virtual  void DrawVertex(const Handle(Graphic2d_Drawer)& aDrawer,const Standard_Integer anIndex) ;
  //! Returns Standard_True if the circle <me> is picked, <br>
//!	    Standard_False if not. <br>
  Standard_EXPORT     Standard_Boolean Pick(const Standard_ShortReal X,const Standard_ShortReal Y,const Standard_ShortReal aPrecision,const Handle(Graphic2d_Drawer)& aDrawer) ;



private: 

  
  Standard_EXPORT     void DoMinMax() ;

Standard_ShortReal myX;
Standard_ShortReal myY;
Standard_ShortReal myRadius;
Standard_ShortReal myFirstAngle;
Standard_ShortReal mySecondAngle;
Standard_Boolean myisArc;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif