Rhino C++ API
8.13
|
#include <opennurbs_curveproxy.h>
Public Member Functions | |
ON_CurveProxy () ON_NOEXCEPT | |
ON_CurveProxy (const ON_Curve *) | |
ON_CurveProxy (const ON_Curve *, ON_Interval) | |
ON_CurveProxy (const ON_CurveProxy &) | |
virtual | ~ON_CurveProxy () |
ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const override |
virtual ON_Object::DataCRC override More... | |
int | Degree () const override |
void | DestroyRuntimeCache (bool bDelete=true) override |
virtual ON_Object::DestroyRuntimeCache override More... | |
int | Dimension () const override |
ON_Geometry overrides. More... | |
ON_Interval | Domain () const override |
ON_Curve overrides. More... | |
void | Dump (ON_TextLog &) const override |
for debugging More... | |
ON_Curve * | DuplicateCurve () const override |
bool | Evaluate (double, int, int, double *, int=0, int *=0) const override |
Domain changes from [a,b] to [-b,-a]. More... | |
bool | GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override |
virtual ON_Geometry GetBBox override More... | |
bool | GetClosestPoint (const ON_3dPoint &, double *, double=0.0, const ON_Interval *=nullptr) const override |
bool | GetCurveParameterFromNurbFormParameter (double, double *) const override |
virtual ON_Curve::GetCurveParameterFromNurbFormParameter override More... | |
bool | GetLength (double *, double=1.0e-8, const ON_Interval *=nullptr) const override |
bool | GetLocalClosestPoint (const ON_3dPoint &, double, double *, const ON_Interval *=nullptr) const override |
bool | GetNextDiscontinuity (ON::continuity c, double t0, double t1, double *t, int *hint=nullptr, int *dtype=nullptr, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const override |
bool | GetNormalizedArcLengthPoint (double s, double *t, double fractional_tolerance=1.0e-8, const ON_Interval *sub_domain=nullptr) const override |
bool | GetNormalizedArcLengthPoints (int count, const double *s, double *t, double absolute_tolerance=0.0, double fractional_tolerance=1.0e-8, const ON_Interval *sub_domain=nullptr) const override |
int | GetNurbForm (ON_NurbsCurve &, double=0.0, const ON_Interval *=nullptr) const override |
bool | GetNurbFormParameterFromCurveParameter (double, double *) const override |
virtual ON_Curve::GetNurbFormParameterFromCurveParameter override More... | |
bool | GetParameterTolerance (double, double *, double *) const override |
(optional - override if curve is piecewise smooth) More... | |
bool | GetSpanVector (double *) const override |
int | HasNurbForm () const override |
bool | IsArc (const ON_Plane *=nullptr, ON_Arc *=nullptr, double=ON_ZERO_TOLERANCE) const override |
bool | IsClosed (void) const override |
bool | IsContinuous (ON::continuity c, double t, int *hint=nullptr, double point_tolerance=ON_ZERO_TOLERANCE, double d1_tolerance=ON_ZERO_TOLERANCE, double d2_tolerance=ON_ZERO_TOLERANCE, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const override |
bool | IsInPlane (const ON_Plane &, double=ON_ZERO_TOLERANCE) const override |
bool | IsLinear (double=ON_ZERO_TOLERANCE) const override |
bool | IsPeriodic (void) const override |
periodic.) More... | |
bool | IsPlanar (ON_Plane *=nullptr, double=ON_ZERO_TOLERANCE) const override |
int | IsPolyline (ON_SimpleArray< ON_3dPoint > *pline_points=nullptr, ON_SimpleArray< double > *pline_t=nullptr) const override |
virtual override of ON_Curve::IsPolyline More... | |
bool | IsShort (double tolerance, const ON_Interval *sub_domain=0, double *length_estimate=0) const override |
bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
ON_Object overrides. More... | |
ON_CurveProxy & | operator= (const ON_CurveProxy &) |
const ON_Curve * | ProxyCurve () const |
ON_Interval | ProxyCurveDomain () const |
bool | ProxyCurveIsReversed () const |
bool | Read (ON_BinaryArchive &) override |
double | RealCurveParameter (double t) const |
bool | Reverse () override |
bool | SetDomain (double t0, double t1) override |
bool | SetDomain (ON_Interval domain) |
void | SetProxyCurve (const ON_Curve *real_curve) |
void | SetProxyCurve (const ON_Curve *real_curve, ON_Interval real_curve_subdomain) |
bool | SetProxyCurveDomain (ON_Interval proxy_curve_subdomain) |
unsigned int | SizeOf () const override |
virtual ON_Object::SizeOf override More... | |
int | SpanCount () const override |
number of smooth spans in curve More... | |
bool | Split (double t, ON_Curve *&left_side, ON_Curve *&right_side) const override |
override of virtual ON_Curve::Split More... | |
double | ThisCurveParameter (double real_curve_parameter) const |
bool | Transform (const ON_Xform &) override |
bool | Trim (const ON_Interval &domain) override |
override of virtual ON_Curve::Trim More... | |
bool | Write (ON_BinaryArchive &) const override |
Public Member Functions inherited from ON_Curve | |
ON_Curve () ON_NOEXCEPT | |
ON_Curve (const ON_Curve &) | |
virtual | ~ON_Curve () |
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 bool | ChangeClosedCurveSeam (double t) |
bool | ChangeClosedCurveSeam (double t, double min_dist) |
virtual bool | ChangeDimension (int desired_dimension) |
virtual class ON_CurveTree * | CreateCurveTree () const |
ON_3dVector | CurvatureAt (double t) const |
const class ON_CurveTree * | CurveTree () const |
ON_3dVector | DerivativeAt (double t) const |
void | DestroyCurveTree () |
bool | Ev1Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, int side=0, int *hint=0) const |
bool | Ev2Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, ON_3dVector &second_derivative, int side=0, int *hint=0) const |
bool | EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const override |
virtual ON_Geometry override More... | |
bool | EvCurvature (double t, ON_3dPoint &point, ON_3dVector &tangent, ON_3dVector &kappa, int side=0, int *hint=0) const |
bool | EvPoint (double t, ON_3dPoint &point, int side=0, int *hint=0) const |
bool | EvSignedCurvature (double t, ON_3dPoint &point, ON_3dVector &tangent, double &kappa, const ON_3dVector *normal=nullptr, int side=0, int *hint=0) const |
bool | EvTangent (double t, ON_3dPoint &point, ON_3dVector &tangent, int side=0, int *hint=0) const |
virtual bool | Extend (const ON_Interval &domain) |
bool | FirstSpanIsLinear (double min_length, double tolerance) const |
bool | FirstSpanIsLinear (double min_length, double tolerance, ON_Line *span_line) const |
bool | FrameAt (double t, ON_Plane &plane) const |
bool | GetDomain (double *t0, double *t1) const |
curve interface More... | |
virtual bool | GetSpanVectorIndex (double t, int side, int *span_vector_index, ON_Interval *span_domain) const |
bool | GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const override |
virtual ON_Geometry GetTightBoundingBox override More... | |
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 |
int | IntersectPlane (ON_PlaneEquation plane_equation, ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, const ON_Interval *curve_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 |
bool | IsArcAt (double t, const ON_Plane *plane=0, ON_Arc *arc=0, double tolerance=ON_ZERO_TOLERANCE, double *t0=0, double *t1=0) const |
bool | IsClosable (double tolerance, double min_abs_size=0.0, double min_rel_size=10.0) const |
virtual bool | IsEllipse (const ON_Plane *plane=nullptr, ON_Ellipse *ellipse=nullptr, double tolerance=ON_ZERO_TOLERANCE) const |
bool | LastSpanIsLinear (double min_length, double tolerance) const |
bool | LastSpanIsLinear (double min_length, double tolerance, ON_Line *span_line) const |
bool | LengthMassProperties (class 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) const |
ON_NurbsCurve * | NurbsCurve (ON_NurbsCurve *pNurbsCurve=nullptr, double tolerance=0.0, const ON_Interval *subdomain=nullptr) const |
ON::object_type | ObjectType () const override |
ON_Curve & | operator= (const ON_Curve &) |
ON_3dPoint | PointAt (double t) const |
ON_3dPoint | PointAtEnd () const |
ON_3dPoint | PointAtStart () const |
virtual bool | RemoveShortSegments (double tolerance, bool bRemoveShortSegments=true) |
bool | SetDomain (ON_Interval domain) |
virtual bool | SetEndPoint (ON_3dPoint end_point) |
virtual bool | SetStartPoint (ON_3dPoint start_point) |
double | SignedCurvatureAt (double t, const ON_3dVector *plane_normal=nullptr) const |
const ON_SimpleArray< double > | SpanVector () const |
The curve's span vector is a stricltly monotone increasing list of doubles that are the intervals on which the curve is C-infinity. More... | |
ON_3dVector | TangentAt (double t) const |
Public Member Functions inherited from ON_Geometry | |
ON_Geometry ()=default | |
ON_Geometry (const ON_Geometry &)=default | |
~ON_Geometry ()=default | |
ON_BoundingBox | BoundingBox () const |
virtual class ON_Brep * | BrepForm (class ON_Brep *brep=nullptr) const |
virtual void | ClearBoundingBox () |
virtual ON_COMPONENT_INDEX | ComponentIndex () const |
bool | GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const |
bool | GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const |
virtual bool | HasBrepForm () const |
virtual bool | IsDeformable () const |
virtual bool | IsMorphable () const |
bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
virtual bool | MakeDeformable () |
virtual bool | Morph (const class ON_SpaceMorph &morph) |
ON_Geometry & | operator= (const ON_Geometry &)=default |
bool | Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
bool | Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center) |
bool | Scale (double scale_factor) |
virtual bool | SwapCoordinates (int i, int j) |
const ON_BoundingBox | TightBoundingBox () const |
bool | Translate (const ON_3dVector &translation_vector) |
Public Member Functions inherited from ON_Object | |
ON_Object () ON_NOEXCEPT | |
ON_Object (const ON_Object &) | |
virtual | ~ON_Object () |
virtual ON_AggregateComponentStatus | AggregateComponentStatus () const |
bool | AttachUserData (class ON_UserData *pUserData) |
unsigned int | ClearAllComponentStates () const |
virtual unsigned int | ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const |
virtual unsigned int | ClearComponentStates (ON_ComponentStatus states_to_clear) const |
void | CopyUserData (const ON_Object &source_object) |
unsigned int | CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution) |
virtual bool | DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) |
bool | DetachUserData (class ON_UserData *pUserData) |
void | EmergencyDestroy () |
class ON_UserData * | FirstUserData () const |
virtual unsigned int | GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const |
class 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 |
bool | IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const |
bool | IsKindOf (const ON_ClassId *pClassId) const |
virtual void | MarkAggregateComponentStatusAsNotCurrent () const |
virtual void | MemoryRelocate () |
virtual ON_UUID | ModelObjectId () const |
void | MoveUserData (ON_Object &source_object) |
unsigned int | MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems) |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
virtual unsigned int | SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const |
virtual unsigned int | SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
int | SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace) |
bool | ThisIsNullptr (bool bSilentError) const |
void | TransformUserData (const class ON_Xform &xform) |
virtual bool | UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map) |
int | UserStringCount () const |
Protected Member Functions | |
void | SetProxyCurveIsReversed (bool bReversed) |
Protected Member Functions inherited from ON_Curve | |
bool | ParameterSearch (double t, int &index, bool bEnableSnap, const ON_SimpleArray< double > &m_t, double RelTol=ON_SQRT_EPSILON) const |
Additional Inherited Members | |
Public Types inherited from ON_Object | |
enum | UserDataConflictResolution : unsigned char { UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3, UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6 } |
Static Public Member Functions inherited from ON_Curve | |
static class ON_NurbsCurve * | CreateCubicLoft (int point_count, int point_dim, int point_stride, const double *point_list, double k, int is_closed=0, ON::cubic_loft_end_condition start_shape=ON::cubic_loft_ec_quadratic, ON::cubic_loft_end_condition end_shape=ON::cubic_loft_ec_quadratic, class ON_NurbsCurve *nurbs_curve=0) |
Static Public Attributes inherited from ON_Geometry | |
const static ON_Geometry | Unset |
ON_CurveProxy::ON_CurveProxy | ( | ) |
|
virtual |
ON_CurveProxy::ON_CurveProxy | ( | const ON_CurveProxy & | ) |
ON_CurveProxy::ON_CurveProxy | ( | const ON_Curve * | ) |
ON_CurveProxy::ON_CurveProxy | ( | const ON_Curve * | , |
ON_Interval | |||
) |
|
overridevirtual |
virtual ON_Object::DataCRC override
Reimplemented from ON_Object.
|
overridevirtual |
Description: Returns maximum algebraic degree of any span or a good estimate if curve spans are not algebraic. Returns: degree
Implements ON_Curve.
|
overridevirtual |
virtual ON_Object::DestroyRuntimeCache override
Reimplemented from ON_Curve.
Reimplemented in CRhinoPolyEdgeSegment, and ON_PolyEdgeSegment.
|
overridevirtual |
ON_Geometry overrides.
Reimplemented from ON_Geometry.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Description: Get a duplicate of the curve. Returns: A duplicate of the curve.
Remarks: The caller must delete the returned curve. For non-ON_CurveProxy objects, this simply duplicates the curve using ON_Object::Duplicate. For ON_CurveProxy objects, this duplicates the actual proxy curve geometry and, if necessary, trims and reverse the result to that the returned curve's parameterization and locus match the proxy curve's.
Reimplemented from ON_Curve.
Reimplemented in CRhinoPolyEdgeSegment, and ON_PolyEdgeSegment.
|
overridevirtual |
Domain changes from [a,b] to [-b,-a].
Implements ON_Curve.
|
overridevirtual |
virtual ON_Geometry GetBBox override
Reimplemented from ON_Geometry.
|
overridevirtual |
Find parameter of the point on a curve that is closest to test_point. If the maximum_distance parameter is > 0, then only points whose distance to the given point is <= maximum_distance will be returned. Using a positive value of maximum_distance can substantially speed up the search. If the sub_domain parameter is not nullptr, then the search is restricted to the specified portion of the curve.
true if returned if the search is successful. false is returned if the search fails.
Reimplemented from ON_Curve.
|
overridevirtual |
virtual ON_Curve::GetCurveParameterFromNurbFormParameter override
Reimplemented from ON_Curve.
|
overridevirtual |
Length of curve. true if returned if the length calculation is successful. false is returned if the length is not calculated.
The arc length will be computed so that (returned length - real length)/(real length) <= fractional_tolerance More simply, if you want N significant figures in the answer, set the fractional_tolerance to 1.0e-N. For "nice" curves, 1.0e-8 works fine. For very high degree nurbs and nurbs with bad parameterizations, use larger values of fractional_tolerance.
Reimplemented from ON_Curve.
|
overridevirtual |
Find parameter of the point on a curve that is locally closest to the test_point. The search for a local close point starts at seed_parameter. If the sub_domain parameter is not nullptr, then the search is restricted to the specified portion of the curve.
true if returned if the search is successful. false is returned if the search fails.
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Search for a derivative, tangent, or curvature discontinuity. Parameters: c - [in] type of continuity to test for. If ON::continuity::C1_continuous t0 - [in] search begins at t0 t1 - [in] (t0 < t1) search ends at t1 t - [out] if a discontinuity is found, the *t reports the parameter at the discontinuity. hint - [in/out] if GetNextDiscontinuity will be called repeatedly, passing a "hint" with initial value *hint=0 will increase the speed of the search.
dtype - [out] if not nullptr, *dtype reports the kind of discontinuity found at *t. A value of 1 means the first derivative or unit tangent was discontinuous. A value of 2 means the second derivative or curvature was discontinuous. cos_angle_tolerance - [in] default = cos(1 degree) Used only when c is ON::continuity::G1_continuous or ON::continuity::G2_continuous. If the cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported. curvature_tolerance - [in] (default = ON_SQRT_EPSILON) Used only when c is ON::continuity::G2_continuous or ON::continuity::Gsmooth_continuous.
ON::continuity::G2_continuous: If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported. ON::continuity::Gsmooth_continuous: If K0 and K1 are curvatures evaluated from above and below and the angle between K0 and K1 is at least twice angle tolerance or ||K0| - |K1|| > (max(|K0|,|K1|) > curvature_tolerance, then a curvature discontinuity is reported. Returns: true if a discontinuity was found on the interior of the interval (t0,t1). Remarks: Overrides ON_Curve::GetNextDiscontinuity.
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Get the parameter of the point on the curve that is a prescribed arc length from the start of the curve. Parameters: s - [in] normalized arc length parameter. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve. t - [out] parameter such that the length of the curve from its start to t is arc_length. fractional_tolerance - [in] desired fractional precision. fabs(("exact" length from start to t) - arc_length)/arc_length <= fractional_tolerance sub_domain - [in] If not nullptr, the calculation is performed on the specified sub-domain of the curve. Returns: true if successful
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Get the parameter of the point on the curve that is a prescribed arc length from the start of the curve. Parameters: count - [in] number of parameters in s. s - [in] array of normalized arc length parameters. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve. t - [out] array of curve parameters such that the length of the curve from its start to t[i] is s[i]*curve_length. absolute_tolerance - [in] if absolute_tolerance > 0, then the difference between (s[i+1]-s[i])*curve_length and the length of the curve segment from t[i] to t[i+1] will be <= absolute_tolerance. fractional_tolerance - [in] desired fractional precision for each segment. fabs("true" length - actual length)/(actual length) <= fractional_tolerance sub_domain - [in] If not nullptr, the calculation is performed on the specified sub-domain of the curve. A 0.0 s value corresponds to sub_domain->Min() and a 1.0 s value corresponds to sub_domain->Max(). Returns: true if successful
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Get a NURBS curve representation of this curve. Parameters: nurbs_curve - [out] NURBS representation returned here tolerance - [in] tolerance to use when creating NURBS representation. subdomain - [in] if not nullptr, then the NURBS representation for this portion of the curve is returned. Returns: 0 unable to create NURBS representation with desired accuracy. 1 success - returned NURBS parameterization matches the curve's to wthe desired accuracy 2 success - returned NURBS point locus matches the curve's to the desired accuracy and the domain of the NURBS curve is correct. On However, This curve's parameterization and the NURBS curve parameterization may not match to the desired accuracy. This situation happens when getting NURBS representations of curves that have a transcendental parameterization like circles Remarks: This is a low-level virtual function. If you do not need the parameterization information provided by the return code, then ON_Curve::NurbsCurve may be easier to use. See Also: ON_Curve::NurbsCurve
Reimplemented from ON_Curve.
|
overridevirtual |
virtual ON_Curve::GetNurbFormParameterFromCurveParameter override
Reimplemented from ON_Curve.
|
overridevirtual |
(optional - override if curve is piecewise smooth)
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Get number of parameters of "knots". Parameters: span_parameters - [out] an array of length SpanCount()+1 is filled in with the parameters where the curve is not smooth (C-infinity). Returns: true if successful
Implements ON_Curve.
|
overridevirtual |
Description: Does a NURBS curve representation of this curve. Parameters: Returns: 0 unable to create NURBS representation with desired accuracy. 1 success - NURBS parameterization matches the curve's to wthe desired accuracy 2 success - NURBS point locus matches the curve's and the domain of the NURBS curve is correct.
However, This curve's parameterization and the NURBS curve parameterization may not match. This situation happens when getting NURBS representations of curves that have a transcendental parameterization like circles Remarks: This is a low-level virtual function.
See Also: ON_Curve::GetNurbForm ON_Curve::NurbsCurve
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Test a curve to see if the locus if its points is an arc or circle. Parameters: plane - [in] if not nullptr, test is performed in this plane arc - [out] if not nullptr and true is returned, then arc parameters are filled in tolerance - [in] tolerance to use when checking Returns: ON_Arc.m_angle > 0 if curve locus is an arc between specified points. If ON_Arc.m_angle is 2.0*ON_PI, then the curve is a circle.
Reimplemented from ON_Curve.
|
overridevirtual |
CV = euclidean location of end CV, or curve is
Reimplemented from ON_Curve.
Reimplemented in CRhinoPolyEdgeSegment, and ON_PolyEdgeSegment.
|
overridevirtual |
Description: Test continuity at a curve parameter value. Parameters: c - [in] continuity to test for t - [in] parameter to test hint - [in] evaluation hint point_tolerance - [in] if the distance between two points is greater than point_tolerance, then the curve is not C0. d1_tolerance - [in] if the difference between two first derivatives is greater than d1_tolerance, then the curve is not C1. d2_tolerance - [in] if the difference between two second derivatives is greater than d2_tolerance, then the curve is not C2. cos_angle_tolerance - [in] default = cos(1 degree) Used only when c is ON::continuity::G1_continuous or ON::continuity::G2_continuous. If the cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported. curvature_tolerance - [in] (default = ON_SQRT_EPSILON) Used only when c is ON::continuity::G2_continuous or ON::continuity::Gsmooth_continuous.
ON::continuity::G2_continuous: If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported. ON::continuity::Gsmooth_continuous: If K0 and K1 are curvatures evaluated from above and below and the angle between K0 and K1 is at least twice angle tolerance or ||K0| - |K1|| > (max(|K0|,|K1|) > curvature_tolerance, then a curvature discontinuity is reported. Returns: true if the curve has at least the c type continuity at the parameter t. Remarks: Overrides ON_Curve::IsContinuous.
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Test a curve to see if it lies in a specific plane. Parameters: test_plane - [in] tolerance - [in] tolerance to use when checking Returns: true if the maximum distance from the curve to the test_plane is <= tolerance.
Implements ON_Curve.
|
overridevirtual |
Description: Test a curve to see if the locus if its points is a line segment. Parameters: tolerance - [in] ///< tolerance to use when checking linearity Returns: true if the ends of the curve are farther than tolerance apart and the maximum distance from any point on the curve to the line segment connecting the curve's ends is <= tolerance.
Reimplemented from ON_Curve.
|
overridevirtual |
periodic.)
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Test a curve to see if it is planar. Parameters: plane - [out] if not nullptr and true is returned, the plane parameters are filled in. tolerance - [in] tolerance to use when checkin Note: If the curve is a simple planar closed curve the plane orientation agrees with the curve orientation. Returns: true if there is a plane such that the maximum distance from the curve to the plane is <= tolerance.
Reimplemented from ON_Curve.
|
overridevirtual |
virtual override of ON_Curve::IsPolyline
Reimplemented from ON_Curve.
|
overridevirtual |
Description: Used to quickly find short curves. Parameters: tolerance - [in] (>=0) sub_domain - [in] If not nullptr, the test is performed on the interval that is the intersection of sub_domain with Domain(). Returns: True if the length of the curve is <= tolerance. Remarks: Faster than calling Length() and testing the result.
Reimplemented from ON_Curve.
|
overridevirtual |
ON_CurveProxy& ON_CurveProxy::operator= | ( | const ON_CurveProxy & | ) |
const ON_Curve* ON_CurveProxy::ProxyCurve | ( | ) | const |
Returns: "Real" curve geometry that "this" is a proxy for.
ON_Interval ON_CurveProxy::ProxyCurveDomain | ( | ) | const |
Returns: Sub interval of the "real" curve's domain that "this" uses. This interval is not necessarily the same as "this" curve's domain. Remarks: This function is poorly named. It does NOT get the proxy curve's domain. It does get the evaluation interval of the "real" curve for which "this" is a proxy.
bool ON_CurveProxy::ProxyCurveIsReversed | ( | ) | const |
Returns: True if "this" as a curve is reversed from the "real" curve geometry.
|
overridevirtual |
Description: Low level archive writing tool used by ON_BinaryArchive::ReadObject(). Parameters: binary_archive - archive to read from Returns: Returns true if the read is successful. Remarks: Use ON_BinaryArchive::ReadObject() to read objects. This Read() function should read the objects definition back into its data members.
The default implementation of this virtual function returns false and does nothing.
Reimplemented from ON_Object.
Reimplemented in ON_PolyEdgeSegment.
double ON_CurveProxy::RealCurveParameter | ( | double | t | ) | const |
Parameters: t - [in] parameter for "this" curve Returns: Corresponding parameter in m_real_curve's domain.
|
overridevirtual |
reverse parameterization
Implements ON_Curve.
|
overridevirtual |
virtual ON_Curve::SetDomain() override
Reimplemented from ON_Curve.
bool ON_CurveProxy::SetDomain | ( | ON_Interval | domain | ) |
void ON_CurveProxy::SetProxyCurve | ( | const ON_Curve * | real_curve | ) |
Description: Sets the curve geometry that "this" is a proxy for.
Sets proxy domain to proxy_curve->Domain(). Parameters: real_curve - [in]
void ON_CurveProxy::SetProxyCurve | ( | const ON_Curve * | real_curve, |
ON_Interval | real_curve_subdomain | ||
) |
Description: Sets the curve geometry that "this" is a proxy for.
Sets proxy domain to proxy_curve->Domain(). Parameters: real_curve - [in] real_curve_subdomain - [in] increasing sub interval of real_curve->Domain(). This interval defines the portion the "real" curve geometry that "this" proxy uses. bReversed - [in] true if the parameterization of "this" proxy as a curve is reversed from the underlying "real" curve geometry.
bool ON_CurveProxy::SetProxyCurveDomain | ( | ON_Interval | proxy_curve_subdomain | ) |
Description: Sets portion of the "real" curve that this proxy represents. Does NOT change the domain of "this" curve. Parameters: proxy_curve_subdomain - [in] increasing sub interval of ProxyCurve()->Domain(). This interval defines the portion the curve geometry that "this" proxy uses. Remarks: This function is poorly named. It does NOT set the proxy curve's domain. It does set the interval of the "real" curve for which "this" is a proxy.
|
protected |
Used by CRhinoPolyEdgeSegment::Create() to restore the value of ON_CurveProxy::m_bReversed.
|
overridevirtual |
virtual ON_Object::SizeOf override
Reimplemented from ON_Curve.
|
overridevirtual |
number of smooth spans in curve
Implements ON_Curve.
|
overridevirtual |
override of virtual ON_Curve::Split
Reimplemented from ON_Curve.
Reimplemented in CRhinoPolyEdgeSegment, and ON_PolyEdgeSegment.
double ON_CurveProxy::ThisCurveParameter | ( | double | real_curve_parameter | ) | const |
Parameters: real_curve_parameter - [in] m_real_curve parameter Returns: Corresponding parameter for "this" curve
|
overridevirtual |
Description: overrides virtual ON_Geometry::Transform(). ON_Curve::Transform() calls ON_Geometry::Transform(xform), which calls ON_Object::TransformUserData(xform), and then calls this->DestroyCurveTree(). Parameters: xform - [in] transformation to apply to object. Remarks: Classes derived from ON_Curve should call ON_Curve::Transform() to handle user data transformations and curve tree destruction and then transform their definition.
Reimplemented from ON_Curve.
|
overridevirtual |
override of virtual ON_Curve::Trim
Reimplemented from ON_Curve.
Reimplemented in CRhinoPolyEdgeSegment, and ON_PolyEdgeSegment.
|
overridevirtual |
Description: Low level archive writing tool used by ON_BinaryArchive::WriteObject(). Parameters: binary_archive - archive to write to Returns: Returns true if the write is successful. Remarks: Use ON_BinaryArchive::WriteObject() to write objects. This Write() function should just write the specific definition of this object. It should not write and any chunk typecode or length information.
The default implementation of this virtual function returns false and does nothing.
Reimplemented from ON_Object.
Reimplemented in ON_PolyEdgeSegment.