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(ON_TORUS_INC_)
00018 #define ON_TORUS_INC_
00019
00020 class ON_RevSurface;
00021 class ON_TextLog;
00022
00023
00024
00025
00026
00027
00028
00029 class ON_CLASS ON_Torus
00030 {
00031
00032 public:
00033
00034
00035 ON_Plane plane;
00036 double major_radius;
00037 double minor_radius;
00038
00039 public:
00040
00041 ON_Torus();
00042 ON_Torus( const ON_Plane& major__plane, double major__radius, double minor__radius );
00043 ON_Torus( const ON_Circle& major__circle, double minor__radius );
00044 ~ON_Torus();
00045
00046 ON_BOOL32 IsValid( ON_TextLog* text_log = NULL ) const;
00047
00048 ON_BOOL32 Create( const ON_Plane& major__plane, double major__radius, double minor__radius );
00049 ON_BOOL32 Create( const ON_Circle& major__circle, double minor__radius);
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 ON_Circle MajorCircleRadians(double minor_angle_radians ) const;
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 ON_Circle MajorCircleDegrees(double minor_angle_degrees) const;
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 ON_Circle MinorCircleRadians(double major_angle_radians) const;
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 ON_Circle MinorCircleDegrees(double major_angle_degrees) const;
00120
00121 ON_3dPoint Center() const;
00122 ON_3dVector Axis() const;
00123 double MajorRadius() const;
00124 double MinorRadius() const;
00125
00126 ON_3dPoint PointAt(
00127 double major_angle_radians,
00128 double minor_angle_radians
00129 ) const;
00130
00131 ON_3dVector NormalAt(
00132 double major_angle_radians,
00133 double minor_angle_radians
00134 ) const;
00135
00136
00137 ON_BOOL32 ClosestPointTo(
00138 ON_3dPoint test_point,
00139 double* major_angle_radians,
00140 double* minor_angle_radians
00141 ) const;
00142
00143
00144 ON_3dPoint ClosestPointTo(
00145 ON_3dPoint test_point
00146 ) const;
00147
00148
00149 ON_BOOL32 Rotate(
00150 double sin_angle,
00151 double cos_angle,
00152 const ON_3dVector& axis_of_rotation
00153 );
00154
00155 ON_BOOL32 Rotate(
00156 double angle_radians,
00157 const ON_3dVector& axis_of_rotation
00158 );
00159
00160
00161 ON_BOOL32 Rotate(
00162 double sin_angle,
00163 double cos_angle,
00164 const ON_3dVector& axis_of_rotation,
00165 const ON_3dPoint& center_of_rotation
00166 );
00167
00168 ON_BOOL32 Rotate(
00169 double angle_radians,
00170 const ON_3dVector& axis_of_rotation,
00171 const ON_3dPoint& center_of_rotation
00172 );
00173
00174 ON_BOOL32 Translate(
00175 const ON_3dVector&
00176 );
00177
00178 ON_BOOL32 Transform( const ON_Xform& );
00179
00180
00181 int GetNurbForm( ON_NurbsSurface& ) const;
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191 ON_RevSurface* RevSurfaceForm( ON_RevSurface* srf = NULL ) const;
00192 };
00193
00194 #endif