Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00015
00016
00017 #if !defined(OPENNURBS_ELLIPSE_INC_)
00018 #define OPENNURBS_ELLIPSE_INC_
00019
00020 class ON_Ellipse;
00021 class ON_Plane;
00022
00023 class ON_CLASS ON_Ellipse
00024 {
00025 public:
00026 ON_Ellipse();
00027
00028 ON_Ellipse(
00029 const ON_Plane&,
00030 double, double
00031 );
00032
00033 ON_Ellipse(
00034 const ON_Circle&
00035 );
00036
00037 ~ON_Ellipse();
00038
00039 ON_Ellipse& operator=(const ON_Circle&);
00040
00041 ON_BOOL32 Create(
00042 const ON_Plane&,
00043 double, double
00044 );
00045
00046 ON_BOOL32 Create(
00047 const ON_Circle&
00048 );
00049
00050 ON_BOOL32 IsValid() const;
00051
00052
00053 ON_BOOL32 IsCircle() const;
00054
00055 double Radius(
00056 int
00057 ) const;
00058 const ON_3dPoint& Center() const;
00059 const ON_3dVector& Normal() const;
00060 const ON_Plane& Plane() const;
00061
00062
00063
00064
00065
00066 double FocalDistance() const;
00067
00068 bool GetFoci( ON_3dPoint& F1, ON_3dPoint& F2 ) const;
00069
00070
00071
00072
00073 ON_3dPoint PointAt( double ) const;
00074 ON_3dVector DerivativeAt(
00075 int,
00076 double
00077 ) const;
00078
00079 ON_3dVector TangentAt( double ) const;
00080 ON_3dVector CurvatureAt( double ) const;
00081
00082
00083 ON_BOOL32 ClosestPointTo(
00084 const ON_3dPoint&,
00085 double*
00086 ) const;
00087
00088 ON_3dPoint ClosestPointTo(
00089 const ON_3dPoint&
00090 ) const;
00091
00092
00093 double EquationAt( const ON_2dPoint& ) const;
00094 ON_2dVector GradientAt( const ON_2dPoint& ) const;
00095
00096
00097 ON_BOOL32 Rotate(
00098 double,
00099 double,
00100 const ON_3dVector&
00101 );
00102 ON_BOOL32 Rotate(
00103 double,
00104 const ON_3dVector&
00105 );
00106
00107
00108 ON_BOOL32 Rotate(
00109 double,
00110 double,
00111 const ON_3dVector&,
00112 const ON_3dPoint&
00113 );
00114 ON_BOOL32 Rotate(
00115 double,
00116 const ON_3dVector&,
00117 const ON_3dPoint&
00118 );
00119
00120 ON_BOOL32 Translate(
00121 const ON_3dVector&
00122 );
00123
00124
00125 int GetNurbForm( ON_NurbsCurve& ) const;
00126
00127 public:
00128
00129
00130
00131 ON_Plane plane;
00132 double radius[2];
00133 };
00134
00135 #endif