File: IGESGeom_ConicArc.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (150 lines) | stat: -rw-r--r-- 5,160 bytes parent folder | download | duplicates (5)
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
150
// 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

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_IGESGeom_ConicArc.hxx>

#include <Standard_Real.hxx>
#include <gp_XY.hxx>
#include <IGESData_IGESEntity.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
class gp_XY;
class gp_Pnt2d;
class gp_Pnt;
class gp_Dir;


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

public:

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


};







#endif // _IGESGeom_ConicArc_HeaderFile