23 #if !defined(OPENNURBS_CURVE_INC_) 24 #define OPENNURBS_CURVE_INC_ 98 ON_Curve(const ON_Curve&);
99 ON_Curve& operator=(const ON_Curve&);
101 #if defined(ON_HAS_RVALUEREF) 103 ON_Curve( ON_Curve&& ) ON_NOEXCEPT;
108 ON_Curve& operator=( ON_Curve&& );
116 unsigned int SizeOf()
const override;
135 ON_Curve* DuplicateCurve()
const;
175 bool GetDomain(
double* t0,
double* t1 )
const;
217 bool ChangeClosedCurveSeam(
232 bool ChangeDimension(
233 int desired_dimension
242 int SpanCount()
const = 0;
262 bool GetSpanVectorIndex(
265 int* span_vector_index,
275 int Degree()
const = 0;
283 bool GetParameterTolerance(
299 double tolerance = ON_ZERO_TOLERANCE
339 double tolerance = ON_ZERO_TOLERANCE
368 double tolerance = ON_ZERO_TOLERANCE,
377 double tolerance = ON_ZERO_TOLERANCE
392 double tolerance = ON_ZERO_TOLERANCE
406 double tolerance = ON_ZERO_TOLERANCE
427 double min_abs_size = 0.0,
428 double min_rel_size = 10.0
436 bool IsClosed()
const;
443 bool IsPeriodic()
const;
500 bool GetNextDiscontinuity(
507 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
508 double curvature_tolerance=ON_SQRT_EPSILON
549 double point_tolerance=ON_ZERO_TOLERANCE,
550 double d1_tolerance=ON_ZERO_TOLERANCE,
551 double d2_tolerance=ON_ZERO_TOLERANCE,
552 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
553 double curvature_tolerance=ON_SQRT_EPSILON
703 bool FrameAt(
double t,
ON_Plane& plane)
const;
888 bool FirstSpanIsLinear(
893 bool LastSpanIsLinear(
898 bool FirstSpanIsLinear(
904 bool LastSpanIsLinear(
969 ON_Curve*& left_side,
970 ON_Curve*& right_side
1006 double tolerance = 0.0,
1034 int HasNurbForm()
const;
1057 double tolerance = 0.0,
1075 bool GetCurveParameterFromNurbFormParameter(
1094 bool GetNurbFormParameterFromCurveParameter(
1107 void DestroyCurveTree();
1139 double RelTol=ON_SQRT_EPSILON)
const;
1144 #if defined(ON_DLL_TEMPLATE) 1149 class ON_CLASS
ON_CurveArray :
public ON_SimpleArray<ON_Curve*>
1181 bool bGrowBox =
false,
1200 ON_Curve* ON_TrimCurve(
1201 const ON_Curve& curve,
1222 bool ON_ForceMatchCurveEnds(
1257 int ON_JoinCurves(
const ON_SimpleArray<const ON_Curve*>& InCurves,
1258 ON_SimpleArray<ON_Curve*>& OutCurves,
1260 bool bPreserveDirection =
false,
1288 int ON_JoinCurves(
const ON_SimpleArray<const ON_Curve*>& InCurves,
1289 ON_SimpleArray<ON_Curve*>& OutCurves,
1293 bool bPreserveDirection =
false,
1360 const ON_Curve*
const* curve_list,
1381 const ON_SimpleArray<const ON_Curve*>& curves,
1403 const ON_SimpleArray<ON_Curve*>& curves,
1422 int ON_ClosedCurveOrientation(
const ON_Curve& curve,
const ON_Xform* xform );
1443 double ON_CurveOrientationArea(
1444 const ON_Curve* curve,
virtual bool Transform(const ON_Xform &xform)
Transforms the object.
int m_main_seg_count
Definition: opennurbs_curve.h:42
Definition: opennurbs_curve.h:1168
An ON_Arc is a subcurve of 3d circle.
Definition: opennurbs_arc.h:33
virtual void DestroyRuntimeCache(bool bDelete=true)
Expert user function. If you are using openNURBS in its default configuration to read and write 3dm a...
virtual bool EvaluatePoint(const class ON_ObjRef &objref, ON_3dPoint &P) const
Evaluate the location of a point from the object reference.
double m_max_edge_length
Definition: opennurbs_curve.h:74
ON_Curve is a pure virtual class for curve objects
Definition: opennurbs_curve.h:93
int m_reserved2
Definition: opennurbs_curve.h:46
int m_sub_seg_count
Definition: opennurbs_curve.h:43
double m_max_chr
Definition: opennurbs_curve.h:54
virtual ON::object_type ObjectType() const
Useful for switch statements that need to differentiate between basic object types like points...
Base class for all geometry classes that must provide runtime class id. Provides interface for common...
Definition: opennurbs_geometry.h:37
virtual bool GetTightBoundingBox(class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const
Get tight bounding box.
virtual unsigned int SizeOf() const
Definition: opennurbs_bounding_box.h:25
double m_max_aspect
Definition: opennurbs_curve.h:61
double m_reserved4
Definition: opennurbs_curve.h:77
double m_reserved3
Definition: opennurbs_curve.h:76
Definition: opennurbs_curve.h:29
double m_tolerance
Definition: opennurbs_curve.h:66
double m_max_ang_radians
Definition: opennurbs_curve.h:50
Definition: opennurbs_line.h:20
int m_reserved1
Definition: opennurbs_curve.h:45
double m_min_edge_length
Definition: opennurbs_curve.h:70
Definition: opennurbs_ellipse.h:23
Definition: opennurbs_nurbscurve.h:26
Definition: opennurbs_archive.h:1783
virtual bool Read(ON_BinaryArchive &binary_archive)
Low level archive writing tool used by ON_BinaryArchive::ReadObject().
Definition: opennurbs_objref.h:163
Definition: opennurbs_point.h:460
virtual bool Write(ON_BinaryArchive &binary_archive) const
Low level archive writing tool used by ON_BinaryArchive::WriteObject().
Definition: opennurbs_plane.h:20
Definition: opennurbs_point.h:1152
Definition: opennurbs_point.h:46