summaryrefslogtreecommitdiff
path: root/inc/IGESGeom_ConicArc.hxx
blob: 600a84ee7de1ef2d76ba227fa61e5809a6e01edb (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// 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 _IGESGeom_ConicArc_HeaderFile
#define _IGESGeom_ConicArc_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IGESGeom_ConicArc_HeaderFile
#include <Handle_IGESGeom_ConicArc.hxx>
#endif

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _gp_XY_HeaderFile
#include <gp_XY.hxx>
#endif
#ifndef _IGESData_IGESEntity_HeaderFile
#include <IGESData_IGESEntity.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class gp_XY;
class gp_Pnt2d;
class gp_Pnt;
class gp_Dir;


//! defines IGESConicArc, Type <104> Form <0-3>  in package IGESGeom <br>
//!          A conic arc is a bounded connected portion of a parent <br>
//!          conic curve which consists of more than one point. The <br>
//!          parent conic curve is either an ellipse, a parabola, or <br>
//!          a hyperbola. The definition space coordinate system is <br>
//!          always chosen so that the conic arc lies in a plane either <br>
//!          coincident with or parallel to XT, YT plane. Within such <br>
//!          a plane a conic is defined by the six coefficients in the <br>
//!          following equation. <br>
//!          A*XT^2 + B*XT*YT + C*YT^2 + D*XT + E*YT + F = 0 <br>
class IGESGeom_ConicArc : public IGESData_IGESEntity {

public:

  
  Standard_EXPORT   IGESGeom_ConicArc();
  //! This method is used to set the fields of the class <br>
//!           ConicalArc <br>
//!       - A, B, C, D, E, F : Coefficients of the equation <br>
//!                            defining conic arc <br>
//!       - ZT               : Parallel ZT displacement of the arc <br>
//!                            from XT, YT plane. <br>
//!       - aStart           : Starting point of the conic arc <br>
//!       - anEnd            : End point of the conic arc <br>
  Standard_EXPORT     void Init(const Standard_Real A,const Standard_Real B,const Standard_Real C,const Standard_Real D,const Standard_Real E,const Standard_Real F,const Standard_Real ZT,const gp_XY& aStart,const gp_XY& anEnd) ;
  //! sets the Form Number equal to ComputedFormNumber, <br>
//!           returns True if changed <br>
  Standard_EXPORT     Standard_Boolean OwnCorrect() ;
  //! Computes the Form Number according to the equation <br>
//!           1 for Ellipse, 2 for Hyperbola, 3 for Parabola <br>
  Standard_EXPORT     Standard_Integer ComputedFormNumber() const;
  
  Standard_EXPORT     void Equation(Standard_Real& A,Standard_Real& B,Standard_Real& C,Standard_Real& D,Standard_Real& E,Standard_Real& F) const;
  //! returns the Z displacement of the arc from XT, YT plane <br>
  Standard_EXPORT     Standard_Real ZPlane() const;
  //! returns the starting point of the arc <br>
  Standard_EXPORT     gp_Pnt2d StartPoint() const;
  //! returns the starting point of the arc after applying <br>
//! Transf. Matrix <br>
  Standard_EXPORT     gp_Pnt TransformedStartPoint() const;
  //! returns the end point of the arc <br>
  Standard_EXPORT     gp_Pnt2d EndPoint() const;
  //! returns the end point of the arc after applying <br>
//! Transf. Matrix <br>
  Standard_EXPORT     gp_Pnt TransformedEndPoint() const;
  //! returns True if parent conic curve is an ellipse <br>
  Standard_EXPORT     Standard_Boolean IsFromEllipse() const;
  //! returns True if parent conic curve is a parabola <br>
  Standard_EXPORT     Standard_Boolean IsFromParabola() const;
  //! returns True if parent conic curve is a hyperbola <br>
  Standard_EXPORT     Standard_Boolean IsFromHyperbola() const;
  //! returns True if StartPoint = EndPoint <br>
  Standard_EXPORT     Standard_Boolean IsClosed() const;
  //! Z-Axis of conic (i.e. [0,0,1]) <br>
  Standard_EXPORT     gp_Dir Axis() const;
  //! Z-Axis after applying Trans. Matrix <br>
  Standard_EXPORT     gp_Dir TransformedAxis() const;
  //! Returns a Definition computed from equation, easier to use <br>
//!           <Center> : the center of the the conic (meaningless for <br>
//!                      a parabola) (defined with Z displacement) <br>
//!           <MainAxis> : the Main Axis of the conic (for a Circle, <br>
//!                        arbitrary the X Axis) <br>
//!           <Rmin,Rmax> : Minor and Major Radii of the conic <br>
//!                         For a Circle, Rmin = Rmax, <br>
//!                         For a Parabola, Rmin = Rmax = the Focal <br>
//!  Warning : the basic definition (by equation) is not very stable, <br>
//!           limit cases may be approximative <br>
  Standard_EXPORT     void Definition(gp_Pnt& Center,gp_Dir& MainAxis,Standard_Real& rmin,Standard_Real& rmax) const;
  //! Same as Definition, but the Location is applied on the <br>
//!           Center and the MainAxis <br>
  Standard_EXPORT     void TransformedDefinition(gp_Pnt& Center,gp_Dir& MainAxis,Standard_Real& rmin,Standard_Real& rmax) const;
  //! Computes and returns the coordinates of the definition of <br>
//!           a comic from its equation. Used by Definition & <br>
//!           TransformedDefinition, or may be called directly if needed <br>
  Standard_EXPORT     void ComputedDefinition(Standard_Real& Xcen,Standard_Real& Ycen,Standard_Real& Xax,Standard_Real& Yax,Standard_Real& Rmin,Standard_Real& Rmax) const;




  DEFINE_STANDARD_RTTI(IGESGeom_ConicArc)

protected:




private: 


Standard_Real theA;
Standard_Real theB;
Standard_Real theC;
Standard_Real theD;
Standard_Real theE;
Standard_Real theF;
Standard_Real theZT;
gp_XY theStart;
gp_XY theEnd;


};





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


#endif