![]() |
QCAD
Open Source 2D CAD
|
#include <opennurbs_curve.h>
Public Member Functions | |
bool | AreaMassProperties (ON_3dPoint base_point, ON_3dVector plane_normal, ON_MassProperties &mp, bool bArea=true, bool bFirstMoments=true, bool bSecondMoments=true, bool bProductMoments=true, double rel_tol=1.0e-6, double abs_tol=1.0e-6) const |
virtual ON_BOOL32 | ChangeClosedCurveSeam (double t) |
virtual bool | ChangeDimension (int desired_dimension) |
virtual ON_CurveTree * | CreateCurveTree () const |
ON_3dVector | CurvatureAt (double t) const |
const ON_CurveTree * | CurveTree () const |
virtual int | Degree () const =0 |
ON_3dVector | DerivativeAt (double t) const |
void | DestroyCurveTree () |
void | DestroyRuntimeCache (bool bDelete=true) |
virtual ON_Interval | Domain () const =0 |
virtual ON_Curve * | DuplicateCurve () const |
ON_BOOL32 | Ev1Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, int side=0, int *hint=0) const |
ON_BOOL32 | Ev2Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, ON_3dVector &second_derivative, int side=0, int *hint=0) const |
virtual ON_BOOL32 | Evaluate (double t, int der_count, int v_stride, double *v, int side=0, int *hint=0) const =0 |
bool | EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const |
ON_BOOL32 | EvCurvature (double t, ON_3dPoint &point, ON_3dVector &tangent, ON_3dVector &kappa, int side=0, int *hint=0) const |
ON_BOOL32 | EvPoint (double t, ON_3dPoint &point, int side=0, int *hint=0) const |
ON_BOOL32 | EvTangent (double t, ON_3dPoint &point, ON_3dVector &tangent, int side=0, int *hint=0) const |
virtual bool | Extend (const ON_Interval &domain) |
ON_BOOL32 | FrameAt (double t, ON_Plane &plane) const |
virtual bool | GetClosestPoint (const ON_3dPoint &, double *t, double maximum_distance=0.0, const ON_Interval *sub_domain=NULL) const |
virtual ON_BOOL32 | GetCurveParameterFromNurbFormParameter (double nurbs_t, double *curve_t) const |
ON_BOOL32 | GetDomain (double *t0, double *t1) const |
virtual ON_BOOL32 | GetLength (double *length, double fractional_tolerance=1.0e-8, const ON_Interval *sub_domain=NULL) const |
virtual ON_BOOL32 | GetLocalClosestPoint (const ON_3dPoint &test_point, double seed_parameter, double *t, const ON_Interval *sub_domain=0) const |
virtual bool | GetNextDiscontinuity (ON::continuity c, double t0, double t1, double *t, int *hint=NULL, int *dtype=NULL, double cos_angle_tolerance=0.99984769515639123915701155881391, double curvature_tolerance=ON_SQRT_EPSILON) const |
virtual ON_BOOL32 | GetNormalizedArcLengthPoint (double s, double *t, double fractional_tolerance=1.0e-8, const ON_Interval *sub_domain=NULL) const |
virtual ON_BOOL32 | GetNormalizedArcLengthPoints (int count, const double *s, double *t, double absolute_tolerance=0.0, double fractional_tolerance=1.0e-8, const ON_Interval *sub_domain=NULL) const |
virtual int | GetNurbForm (ON_NurbsCurve &nurbs_curve, double tolerance=0.0, const ON_Interval *subdomain=NULL) const |
virtual ON_BOOL32 | GetNurbFormParameterFromCurveParameter (double curve_t, double *nurbs_t) const |
virtual ON_BOOL32 | GetParameterTolerance (double t, double *tminus, double *tplus) const |
virtual ON_BOOL32 | GetSpanVector (double *knots) const =0 |
virtual ON_BOOL32 | GetSpanVectorIndex (double t, int side, int *span_vector_index, ON_Interval *span_domain) const |
bool | GetTightBoundingBox (ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const |
virtual int | HasNurbForm () const |
int | IntersectCurve (const ON_Curve *curveB, ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, const ON_Interval *curveA_domain=0, const ON_Interval *curveB_domain=0) const |
virtual int | IntersectSelf (ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, const ON_Interval *curve_domain=0) const |
int | IntersectSurface (const ON_Surface *surfaceB, ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, const ON_Interval *curveA_domain=0, const ON_Interval *surfaceB_udomain=0, const ON_Interval *surfaceB_vdomain=0) const |
virtual ON_BOOL32 | IsArc (const ON_Plane *plane=NULL, ON_Arc *arc=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
bool | IsClosable (double tolerance, double min_abs_size=0.0, double min_rel_size=10.0) const |
virtual ON_BOOL32 | IsClosed () const |
virtual bool | IsContinuous (ON::continuity c, double t, int *hint=NULL, double point_tolerance=ON_ZERO_TOLERANCE, double d1_tolerance=ON_ZERO_TOLERANCE, double d2_tolerance=ON_ZERO_TOLERANCE, double cos_angle_tolerance=0.99984769515639123915701155881391, double curvature_tolerance=ON_SQRT_EPSILON) const |
virtual bool | IsEllipse (const ON_Plane *plane=NULL, ON_Ellipse *ellipse=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
virtual ON_BOOL32 | IsInPlane (const ON_Plane &test_plane, double tolerance=ON_ZERO_TOLERANCE) const =0 |
virtual ON_BOOL32 | IsLinear (double tolerance=ON_ZERO_TOLERANCE) const |
virtual ON_BOOL32 | IsPeriodic () const |
virtual ON_BOOL32 | IsPlanar (ON_Plane *plane=NULL, double tolerance=ON_ZERO_TOLERANCE) const |
virtual int | IsPolyline (ON_SimpleArray< ON_3dPoint > *pline_points=NULL, ON_SimpleArray< double > *pline_t=NULL) const |
bool | IsShort (double tolerance, const ON_Interval *sub_domain=NULL) const |
bool | LengthMassProperties (ON_MassProperties &mp, bool bLength=true, bool bFirstMoments=true, bool bSecondMoments=true, bool bProductMoments=true, double rel_tol=1.0e-6, double abs_tol=1.0e-6) const |
class ON_PolylineCurve * | MeshCurve (ON_MeshCurveParameters &mp, ON_PolylineCurve *polyline, bool bSkipFirstPoint, const ON_Interval *domain) |
class ON_PolylineCurve * | MeshCurve (ON_MeshCurveParameters &mp, ON_PolylineCurve *polyline, bool bSkipFirstPoint, const ON_Interval *domain) const |
ON_NurbsCurve * | NurbsCurve (ON_NurbsCurve *pNurbsCurve=NULL, double tolerance=0.0, const ON_Interval *subdomain=NULL) const |
ON::object_type | ObjectType () const |
ON_Curve () | |
ON_Curve (const ON_Curve &) | |
ON_Curve & | operator= (const ON_Curve &) |
ON_3dPoint | PointAt (double t) const |
ON_3dPoint | PointAtEnd () const |
ON_3dPoint | PointAtStart () const |
bool | RemoveShortSegments (double tolerance, bool bRemoveShortSegments=true) |
virtual ON_BOOL32 | Reverse ()=0 |
virtual ON_BOOL32 | SetDomain (double t0, double t1) |
bool | SetDomain (ON_Interval domain) |
virtual ON_BOOL32 | SetEndPoint (ON_3dPoint end_point) |
virtual ON_BOOL32 | SetStartPoint (ON_3dPoint start_point) |
unsigned int | SizeOf () const |
virtual int | SpanCount () const =0 |
virtual ON_BOOL32 | Split (double t, ON_Curve *&left_side, ON_Curve *&right_side) const |
ON_3dVector | TangentAt (double t) const |
virtual ON_BOOL32 | Trim (const ON_Interval &domain) |
virtual | ~ON_Curve () |
![]() | |
ON_BoundingBox | BoundingBox () const |
virtual ON_Brep * | BrepForm (ON_Brep *brep=NULL) const |
virtual void | ClearBoundingBox () |
virtual ON_COMPONENT_INDEX | ComponentIndex () const |
virtual int | Dimension () const =0 |
virtual ON_BOOL32 | GetBBox (double *boxmin, double *boxmax, int bGrowBox=false) const =0 |
ON_BOOL32 | GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, int bGrowBox=false) const |
ON_BOOL32 | GetBoundingBox (ON_BoundingBox &bbox, int bGrowBox=false) const |
virtual ON_BOOL32 | HasBrepForm () const |
virtual bool | IsDeformable () const |
virtual bool | IsMorphable () const |
virtual bool | MakeDeformable () |
virtual bool | Morph (const ON_SpaceMorph &morph) |
ON_Geometry () | |
ON_Geometry (const ON_Geometry &) | |
ON_Geometry & | operator= (const ON_Geometry &) |
ON_BOOL32 | Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
ON_BOOL32 | Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
ON_BOOL32 | Scale (double scale_factor) |
virtual ON_BOOL32 | SwapCoordinates (int i, int j) |
virtual ON_BOOL32 | Transform (const ON_Xform &xform) |
ON_BOOL32 | Translate (const ON_3dVector &translation_vector) |
virtual | ~ON_Geometry () |
![]() | |
ON_BOOL32 | AttachUserData (ON_UserData *pUserData) |
bool | CopyFrom (const ON_Object *src) |
void | CopyUserData (const ON_Object &source_object) |
virtual ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const |
ON_BOOL32 | DetachUserData (ON_UserData *pUserData) |
virtual void | Dump (ON_TextLog &) const |
ON_UserData * | FirstUserData () const |
ON_UserData * | GetUserData (const ON_UUID &userdata_uuid) const |
bool | GetUserString (const wchar_t *key, ON_wString &string_value) const |
int | GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const |
int | GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const |
ON_BOOL32 | IsKindOf (const ON_ClassId *pClassId) const |
virtual ON_BOOL32 | IsValid (ON_TextLog *text_log=NULL) const =0 |
virtual void | MemoryRelocate () |
virtual ON_UUID | ModelObjectId () const |
void | MoveUserData (ON_Object &source_object) |
ON_Object () | |
ON_Object (const ON_Object &) | |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
virtual ON_BOOL32 | Read (ON_BinaryArchive &binary_archive) |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
void | TransformUserData (const ON_Xform &xform) |
virtual ON_BOOL32 | Write (ON_BinaryArchive &binary_archive) const |
virtual | ~ON_Object () |
Protected Member Functions | |
ON_CurveTree * | CurveTreeHelper () |
bool | ParameterSearch (double t, int &index, bool bEnableSnap, const ON_SimpleArray< double > &m_t, double RelTol=ON_SQRT_EPSILON) const |
Protected Attributes | |
ON_CurveTree * | m_ctree |
Private Member Functions | |
ON_OBJECT_DECLARE (ON_Curve) | |
Additional Inherited Members | |
![]() | |
ON_MEMORY_POOL * | m_mempool |
ON_Curve::ON_Curve | ( | ) |
|
virtual |
bool ON_Curve::AreaMassProperties | ( | ON_3dPoint | base_point, |
ON_3dVector | plane_normal, | ||
ON_MassProperties & | mp, | ||
bool | bArea = true, | ||
bool | bFirstMoments = true, | ||
bool | bSecondMoments = true, | ||
bool | bProductMoments = true, | ||
double | rel_tol = 1.0e-6, | ||
double | abs_tol = 1.0e-6 ) const |
|
virtual |
Reimplemented in ON_ArcCurve, ON_NurbsCurve, ON_PolyCurve, ON_PolyEdgeCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
ON_3dVector ON_Curve::CurvatureAt | ( | double | t | ) | const |
const ON_CurveTree * ON_Curve::CurveTree | ( | ) | const |
|
protected |
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
ON_3dVector ON_Curve::DerivativeAt | ( | double | t | ) | const |
void ON_Curve::DestroyCurveTree | ( | ) |
|
virtual |
Reimplemented from ON_Object.
Reimplemented in ON_CurveProxy, ON_PolyCurve, ON_PolyEdgeCurve, and ON_PolyEdgeSegment.
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_CurveProxy, ON_PolyCurve, ON_PolyEdgeCurve, and ON_PolyEdgeSegment.
ON_BOOL32 ON_Curve::Ev1Der | ( | double | t, |
ON_3dPoint & | point, | ||
ON_3dVector & | first_derivative, | ||
int | side = 0, | ||
int * | hint = 0 ) const |
ON_BOOL32 ON_Curve::Ev2Der | ( | double | t, |
ON_3dPoint & | point, | ||
ON_3dVector & | first_derivative, | ||
ON_3dVector & | second_derivative, | ||
int | side = 0, | ||
int * | hint = 0 ) const |
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented from ON_Geometry.
Reimplemented in ON_PolyCurve.
ON_BOOL32 ON_Curve::EvCurvature | ( | double | t, |
ON_3dPoint & | point, | ||
ON_3dVector & | tangent, | ||
ON_3dVector & | kappa, | ||
int | side = 0, | ||
int * | hint = 0 ) const |
ON_BOOL32 ON_Curve::EvPoint | ( | double | t, |
ON_3dPoint & | point, | ||
int | side = 0, | ||
int * | hint = 0 ) const |
ON_BOOL32 ON_Curve::EvTangent | ( | double | t, |
ON_3dPoint & | point, | ||
ON_3dVector & | tangent, | ||
int | side = 0, | ||
int * | hint = 0 ) const |
|
virtual |
Reimplemented in ON_ArcCurve, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_PolylineCurve, and ON_NurbsCurve.
|
virtual |
Reimplemented in ON_LineCurve, ON_ArcCurve, ON_CurveProxy, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
ON_BOOL32 ON_Curve::GetDomain | ( | double * | t0, |
double * | t1 ) const |
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_PolyCurve, ON_PolylineCurve, ON_LineCurve, and ON_NurbsCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_CurveProxy, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_LineCurve, ON_ArcCurve, ON_CurveProxy, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_NurbsCurve, ON_CurveOnSurface, and ON_CurveProxy.
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_NurbsCurve, and ON_PolylineCurve.
|
virtual |
|
virtual |
Reimplemented from ON_Geometry.
Reimplemented in ON_LineCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
int ON_Curve::IntersectCurve | ( | const ON_Curve * | curveB, |
ON_SimpleArray< ON_X_EVENT > & | x, | ||
double | intersection_tolerance = 0.0, | ||
double | overlap_tolerance = 0.0, | ||
const ON_Interval * | curveA_domain = 0, | ||
const ON_Interval * | curveB_domain = 0 ) const |
|
virtual |
Reimplemented in ON_ArcCurve, and ON_LineCurve.
int ON_Curve::IntersectSurface | ( | const ON_Surface * | surfaceB, |
ON_SimpleArray< ON_X_EVENT > & | x, | ||
double | intersection_tolerance = 0.0, | ||
double | overlap_tolerance = 0.0, | ||
const ON_Interval * | curveA_domain = 0, | ||
const ON_Interval * | surfaceB_udomain = 0, | ||
const ON_Interval * | surfaceB_vdomain = 0 ) const |
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_NurbsCurve, and ON_PolylineCurve.
bool ON_Curve::IsClosable | ( | double | tolerance, |
double | min_abs_size = 0.0, | ||
double | min_rel_size = 10.0 ) const |
|
virtual |
Reimplemented in ON_BrepEdge, ON_NurbsCurve, ON_PolyEdgeCurve, ON_PolyEdgeSegment, ON_PolylineCurve, ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, and ON_PolyCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_NurbsCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_NurbsCurve, ON_PolylineCurve, ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, and ON_PolyCurve.
|
virtual |
Reimplemented in ON_NurbsCurve, ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_NurbsCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
bool ON_Curve::IsShort | ( | double | tolerance, |
const ON_Interval * | sub_domain = NULL ) const |
bool ON_Curve::LengthMassProperties | ( | ON_MassProperties & | mp, |
bool | bLength = true, | ||
bool | bFirstMoments = true, | ||
bool | bSecondMoments = true, | ||
bool | bProductMoments = true, | ||
double | rel_tol = 1.0e-6, | ||
double | abs_tol = 1.0e-6 ) const |
ON_PolylineCurve * ON_Curve::MeshCurve | ( | ON_MeshCurveParameters & | mp, |
ON_PolylineCurve * | polyline, | ||
bool | bSkipFirstPoint, | ||
const ON_Interval * | domain ) |
ON_PolylineCurve * ON_Curve::MeshCurve | ( | ON_MeshCurveParameters & | mp, |
ON_PolylineCurve * | polyline, | ||
bool | bSkipFirstPoint, | ||
const ON_Interval * | domain ) const |
ON_NurbsCurve * ON_Curve::NurbsCurve | ( | ON_NurbsCurve * | pNurbsCurve = NULL, |
double | tolerance = 0.0, | ||
const ON_Interval * | subdomain = NULL ) const |
|
virtual |
Reimplemented from ON_Object.
|
private |
|
protected |
ON_3dPoint ON_Curve::PointAt | ( | double | t | ) | const |
ON_3dPoint ON_Curve::PointAtEnd | ( | ) | const |
ON_3dPoint ON_Curve::PointAtStart | ( | ) | const |
bool ON_Curve::RemoveShortSegments | ( | double | tolerance, |
bool | bRemoveShortSegments = true ) |
|
pure virtual |
Implemented in ON_ArcCurve, ON_BrepEdge, ON_BrepTrim, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
bool ON_Curve::SetDomain | ( | ON_Interval | domain | ) |
|
virtual |
Reimplemented in ON_ArcCurve, ON_BrepEdge, ON_BrepTrim, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, ON_PolyEdgeCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented in ON_ArcCurve, ON_BrepEdge, ON_BrepTrim, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, ON_PolyEdgeCurve, and ON_PolylineCurve.
|
virtual |
Reimplemented from ON_Object.
Reimplemented in ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
|
pure virtual |
Implemented in ON_ArcCurve, ON_CurveOnSurface, ON_CurveProxy, ON_LineCurve, ON_NurbsCurve, ON_PolyCurve, and ON_PolylineCurve.
Reimplemented in ON_ArcCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, ON_PolyEdgeSegment, ON_NurbsCurve, and ON_PolylineCurve.
ON_3dVector ON_Curve::TangentAt | ( | double | t | ) | const |
|
virtual |
Reimplemented in ON_ArcCurve, ON_NurbsCurve, ON_PolylineCurve, ON_CurveProxy, ON_LineCurve, ON_PolyCurve, and ON_PolyEdgeSegment.
|
protected |