Rhino C++ API
8.14
|
#include <opennurbs_circle.h>
Public Member Functions | |
ON_Circle ()=default | |
ON_Circle (const ON_2dPoint &P, const ON_2dPoint &Q, const ON_2dPoint &R) | |
ON_Circle (const ON_3dPoint ¢er, double radius) | |
ON_Circle (const ON_3dPoint &P, const ON_3dPoint &Q, const ON_3dPoint &R) | |
ON_Circle (const ON_Circle &)=default | |
ON_Circle (const ON_Plane &plane, const ON_3dPoint ¢er, double radius) | |
ON_Circle (const ON_Plane &plane, double radius) | |
~ON_Circle ()=default | |
ON_BoundingBox | BoundingBox () const |
const ON_3dPoint & | Center () const |
double | Circumference () const |
ON_3dPoint | ClosestPointTo (const ON_3dPoint &point) const |
returns point on circle that is closest to given point More... | |
bool | ClosestPointTo (const ON_3dPoint &point, double *t) const |
returns parameters of point on circle that is closest to given point More... | |
bool | Create (const ON_2dPoint &P, const ON_2dPoint &Q, const ON_2dPoint &R) |
bool | Create (const ON_2dPoint &P, const ON_2dVector &tangent_at_P, const ON_2dPoint &Q) |
bool | Create (const ON_3dPoint ¢er, double radius) |
bool | Create (const ON_3dPoint &P, const ON_3dPoint &Q, const ON_3dPoint &R) |
bool | Create (const ON_3dPoint &P, const ON_3dVector &tangent_at_P, const ON_3dPoint &Q) |
bool | Create (const ON_Plane &plane, const ON_3dPoint ¢er, double radius) |
bool | Create (const ON_Plane &plane, double radius) |
ON_3dVector | DerivativeAt (int, double) const |
double | Diameter () const |
double | EquationAt (const ON_2dPoint &plane_point) const |
evaluate circle's implicit equation in plane More... | |
int | GetNurbForm (ON_NurbsCurve &nurbs_curve) const |
bool | GetNurbFormParameterFromRadian (double circle_radians_parameter, double *nurbs_parameter) const |
bool | GetRadianFromNurbFormParameter (double nurbs_parameter, double *circle_radians_parameter) const |
bool | GetTightBoundingBox (ON_BoundingBox &tight_bbox, bool bGrowBox=false, const ON_Xform *xform=nullptr) const |
ON_2dVector | GradientAt (const ON_2dPoint &plane_point) const |
bool | IsInPlane (const ON_Plane &, double=ON_ZERO_TOLERANCE) const |
bool UpdatePoints(); ///< sets m_point[] to have valid points More... | |
bool | IsValid () const |
A Valid circle has m_radius>0 and m_plane.IsValid(). More... | |
double | MaximumCoordinate () const |
///< absolute value of maximum coordinate More... | |
const ON_3dVector & | Normal () const |
ON_Circle & | operator= (const ON_Circle &)=default |
const ON_Plane & | Plane () const |
plane containing circle More... | |
ON_3dPoint | PointAt (double) const |
double | Radius () const |
bool | Reverse () |
bool | Rotate (double angle_in_radians, const ON_3dVector &axis_of_rotation) |
bool | Rotate (double angle_in_radians, const ON_3dVector &axis_of_rotation, const ON_3dPoint ¢er_of_rotation) |
bool | Rotate (double sin_angle, double cos_angle, const ON_3dVector &axis_of_rotation) |
rotate circle about its center More... | |
bool | Rotate (double sin_angle, double cos_angle, const ON_3dVector &axis_of_rotation, const ON_3dPoint ¢er_of_rotation) |
rotate circle about a point and axis More... | |
ON_3dVector | TangentAt (double) const |
bool | Transform (const ON_Xform &) |
bool | Translate (const ON_3dVector &delta) |
Public Attributes | |
ON_Plane | plane = ON_Plane::World_xy |
double | radius = 1.0 |
Static Public Attributes | |
static const ON_Circle | UnitCircle |
unit circle in the xy plane More... | |
Description: ON_Circle is a circle in 3d. The circle is represented by a radius and an orthonormal frame of the plane containing the circle, with origin at the center.
An Is_Valid() circle has positive radius and an Is_ Valid() plane defining the frame.
The circle is parameterized by radians from 0 to 2 Pi given by t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis
where center, xaxis and yaxis define the orthonormal frame of the circle's plane.
|
default |
|
default |
|
default |
ON_Circle::ON_Circle | ( | const ON_Plane & | plane, |
double | radius | ||
) |
Creates a circle in the plane with center at plane.origin.
ON_Circle::ON_Circle | ( | const ON_3dPoint & | center, |
double | radius | ||
) |
Creates a circle parallel to the world XY plane with given center and radius
ON_Circle::ON_Circle | ( | const ON_Plane & | plane, |
const ON_3dPoint & | center, | ||
double | radius | ||
) |
Creates a circle parallel to the plane with given center and radius.
ON_Circle::ON_Circle | ( | const ON_2dPoint & | P, |
const ON_2dPoint & | Q, | ||
const ON_2dPoint & | R | ||
) |
Create a circle through three 2d points. The start/end of the circle is at point P.
P | circle through 3 2d points |
ON_Circle::ON_Circle | ( | const ON_3dPoint & | P, |
const ON_3dPoint & | Q, | ||
const ON_3dPoint & | R | ||
) |
Create a circle through three 3d points. The start/end of the circle is at point P.
ON_BoundingBox ON_Circle::BoundingBox | ( | ) | const |
const ON_3dPoint& ON_Circle::Center | ( | ) | const |
double ON_Circle::Circumference | ( | ) | const |
ON_3dPoint ON_Circle::ClosestPointTo | ( | const ON_3dPoint & | point | ) | const |
returns point on circle that is closest to given point
bool ON_Circle::ClosestPointTo | ( | const ON_3dPoint & | point, |
double * | t | ||
) | const |
returns parameters of point on circle that is closest to given point
bool ON_Circle::Create | ( | const ON_2dPoint & | P, |
const ON_2dPoint & | Q, | ||
const ON_2dPoint & | R | ||
) |
Create a circle through three 2d points. The start/end of the circle is at point P.
P | circle through 3 2d points |
bool ON_Circle::Create | ( | const ON_2dPoint & | P, |
const ON_2dVector & | tangent_at_P, | ||
const ON_2dPoint & | Q | ||
) |
Create a circle from two 2d points and a tangent at the first point. The start/end of the circle is at point P.
bool ON_Circle::Create | ( | const ON_3dPoint & | center, |
double | radius | ||
) |
Creates a circle parallel to the world XY plane with given center and radius
bool ON_Circle::Create | ( | const ON_3dPoint & | P, |
const ON_3dPoint & | Q, | ||
const ON_3dPoint & | R | ||
) |
Create a circle through three 3d points. The start/end of the circle is at point P.
bool ON_Circle::Create | ( | const ON_3dPoint & | P, |
const ON_3dVector & | tangent_at_P, | ||
const ON_3dPoint & | Q | ||
) |
Create a circle from two 3d points and a tangent at the first point. The start/end of the circle is at point P.
bool ON_Circle::Create | ( | const ON_Plane & | plane, |
const ON_3dPoint & | center, | ||
double | radius | ||
) |
Creates a circle parallel to the plane with given centr and radius.
bool ON_Circle::Create | ( | const ON_Plane & | plane, |
double | radius | ||
) |
Creates a circle in the plane with center at plane.origin.
ON_3dVector ON_Circle::DerivativeAt | ( | int | , |
double | |||
) | const |
double ON_Circle::Diameter | ( | ) | const |
double ON_Circle::EquationAt | ( | const ON_2dPoint & | plane_point | ) | const |
evaluate circle's implicit equation in plane
int ON_Circle::GetNurbForm | ( | ON_NurbsCurve & | nurbs_curve | ) | const |
Description: Get a four span rational degree 2 NURBS circle representation of the circle. Returns: 2 for success, 0 for failure Remarks: Note that the parameterization of NURBS curve does not match circle's transcendental parameterization. Use ON_Circle::GetRadianFromNurbFormParameter() and ON_Circle::GetParameterFromRadian() to convert between the NURBS curve parameter and the transcendental parameter.
bool ON_Circle::GetNurbFormParameterFromRadian | ( | double | circle_radians_parameter, |
double * | nurbs_parameter | ||
) | const |
Description: Convert a circle radians parameter to a NURBS curve circle parameter. Parameters: circle_radians_parameter - [in] 0.0 to 2.0*ON_PI nurbs_parameter - [out] Example:
ON_Circle circle = ...; double circle_t = 1.2345; ///< some number in interval (0,2.0*ON_PI). double nurbs_t; circle.GetNurbFormParameterFromRadian( circle_t, &nurbs_t ); ON_NurbsCurve nurbs_curve; circle.GetNurbsForm( nurbs_curve ); circle_pt = circle.PointAt(circle_t); nurbs_pt = nurbs_curve.PointAt(nurbs_t);
/ circle_pt and nurbs_pt will be the same
Remarks: The NURBS curve parameter is with respect to the NURBS curve created by ON_Circle::GetNurbForm. At radian values of 0.0, 0.5*ON_PI, ON_PI, 1.5*ON_PI, and 2.0*ON_PI, the nurbs parameter and radian parameter are the same. At all other values the nurbs and radian parameter values are different. See Also: ON_Circle::GetNurbFormParameterFromRadian
bool ON_Circle::GetRadianFromNurbFormParameter | ( | double | nurbs_parameter, |
double * | circle_radians_parameter | ||
) | const |
Description: Convert a NURBS curve circle parameter to a circle radians parameter. Parameters: nurbs_parameter - [in] circle_radians_parameter - [out] Example:
ON_Circle circle = ...; double nurbs_t = 1.2345; ///< some number in interval (0,2.0*ON_PI). double circle_t; circle.GetRadianFromNurbFormParameter( nurbs_t, &circle_t ); ON_NurbsCurve nurbs_curve; circle.GetNurbsForm( nurbs_curve ); circle_pt = circle.PointAt(circle_t); nurbs_pt = nurbs_curve.PointAt(nurbs_t);
/ circle_pt and nurbs_pt will be the same
Remarks: The NURBS curve parameter is with respect to the NURBS curve created by ON_Circle::GetNurbForm. At nurbs parameter values of 0.0, 0.5*ON_PI, ON_PI, 1.5*ON_PI, and 2.0*ON_PI, the nurbs parameter and radian parameter are the same. At all other values the nurbs and radian parameter values are different. See Also: ON_Circle::GetNurbFormParameterFromRadian
bool ON_Circle::GetTightBoundingBox | ( | ON_BoundingBox & | tight_bbox, |
bool | bGrowBox = false , |
||
const ON_Xform * | xform = nullptr |
||
) | const |
Description: Get tight bounding box. Parameters: tight_bbox - [in/out] tight bounding box bGrowBox -[in] (default=false)
If true and the input tight_bbox is valid, then returned tight_bbox is the union of the input tight_bbox and the arc's tight bounding box. xform -[in] (default=nullptr) If not nullptr, the tight bounding box of the transformed arc is calculated. The arc is not modified. Returns: True if a valid tight_bbox is returned.
ON_2dVector ON_Circle::GradientAt | ( | const ON_2dPoint & | plane_point | ) | const |
bool ON_Circle::IsInPlane | ( | const ON_Plane & | , |
double | = ON_ZERO_TOLERANCE |
||
) | const |
bool UpdatePoints(); ///< sets m_point[] to have valid points
bool ON_Circle::IsValid | ( | ) | const |
A Valid circle has m_radius>0 and m_plane.IsValid().
double ON_Circle::MaximumCoordinate | ( | ) | const |
///< absolute value of maximum coordinate
const ON_3dVector& ON_Circle::Normal | ( | ) | const |
const ON_Plane& ON_Circle::Plane | ( | ) | const |
plane containing circle
ON_3dPoint ON_Circle::PointAt | ( | double | ) | const |
Circles use trigonometric parameterization t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis
double ON_Circle::Radius | ( | ) | const |
bool ON_Circle::Reverse | ( | ) |
bool ON_Circle::Rotate | ( | double | angle_in_radians, |
const ON_3dVector & | axis_of_rotation | ||
) |
bool ON_Circle::Rotate | ( | double | angle_in_radians, |
const ON_3dVector & | axis_of_rotation, | ||
const ON_3dPoint & | center_of_rotation | ||
) |
bool ON_Circle::Rotate | ( | double | sin_angle, |
double | cos_angle, | ||
const ON_3dVector & | axis_of_rotation | ||
) |
rotate circle about its center
bool ON_Circle::Rotate | ( | double | sin_angle, |
double | cos_angle, | ||
const ON_3dVector & | axis_of_rotation, | ||
const ON_3dPoint & | center_of_rotation | ||
) |
rotate circle about a point and axis
ON_3dVector ON_Circle::TangentAt | ( | double | ) | const |
bool ON_Circle::Transform | ( | const ON_Xform & | ) |
bool ON_Circle::Translate | ( | const ON_3dVector & | delta | ) |
ON_Plane ON_Circle::plane = ON_Plane::World_xy |
double ON_Circle::radius = 1.0 |
|
static |
unit circle in the xy plane