22#if !defined(OPENNURBS_CURVE_INC_)
23#define OPENNURBS_CURVE_INC_
111 unsigned int SizeOf()
const;
156 int bGrowBox =
false,
170 ON_BOOL32 GetDomain(
double* t0,
double* t1 )
const;
227 bool ChangeDimension(
228 int desired_dimension
260 int* span_vector_index,
391 double min_abs_size = 0.0,
392 double min_rel_size = 10.0
460 bool GetNextDiscontinuity(
467 double cos_angle_tolerance=0.99984769515639123915701155881391,
505 double cos_angle_tolerance=0.99984769515639123915701155881391,
831 bool GetClosestPoint(
834 double maximum_distance = 0.0,
849 double seed_parameter,
868 double intersection_tolerance = 0.0,
896 double intersection_tolerance = 0.0,
897 double overlap_tolerance = 0.0,
941 int IntersectSurface(
944 double intersection_tolerance = 0.0,
945 double overlap_tolerance = 0.0,
975 double fractional_tolerance = 1.0e-8,
1019 bool RemoveShortSegments(
1021 bool bRemoveShortSegments =
true
1044 double fractional_tolerance = 1.0e-8,
1074 double absolute_tolerance = 0.0,
1075 double fractional_tolerance = 1.0e-8,
1174 double tolerance = 0.0,
1202 int HasNurbForm()
const;
1225 double tolerance = 0.0,
1243 ON_BOOL32 GetCurveParameterFromNurbFormParameter(
1262 ON_BOOL32 GetNurbFormParameterFromCurveParameter(
1275 void DestroyCurveTree();
1282 const ON_CurveTree* CurveTree()
const;
1285 ON_CurveTree* CreateCurveTree()
const;
1300 bool LengthMassProperties(
1302 bool bLength =
true,
1303 bool bFirstMoments =
true,
1304 bool bSecondMoments =
true,
1305 bool bProductMoments =
true,
1306 double rel_tol = 1.0e-6,
1307 double abs_tol = 1.0e-6
1351 bool AreaMassProperties(
1356 bool bFirstMoments =
true,
1357 bool bSecondMoments =
true,
1358 bool bProductMoments =
true,
1359 double rel_tol = 1.0e-6,
1360 double abs_tol = 1.0e-6
1387 bool bSkipFirstPoint,
1397 bool bSkipFirstPoint,
1438#if defined(ON_DLL_TEMPLATE)
1442#pragma warning( push )
1443#pragma warning( disable : 4231 )
1445#pragma warning( pop )
1480 int bGrowBox =
false,
1551 bool bPreserveDirection =
false,
Copies the current selection to the clipboard.
Definition Duplicate.js:12
Definition opennurbs_point.h:403
Definition opennurbs_point.h:931
Definition opennurbs_arc.h:34
Definition opennurbs_archive.h:152
Definition opennurbs_bounding_box.h:25
Definition opennurbs_curve.h:1449
Definition opennurbs_curve.h:88
ON_OBJECT_DECLARE(ON_Curve)
virtual ON_BOOL32 Evaluate(double t, int der_count, int v_stride, double *v, int side=0, int *hint=0) const =0
virtual int Degree() const =0
ON_CurveTree * m_ctree
Definition opennurbs_curve.h:1435
ON_CurveTree * CurveTreeHelper()
virtual ON_BOOL32 Reverse()=0
virtual int SpanCount() const =0
virtual ON_BOOL32 GetSpanVector(double *knots) const =0
virtual ON_Interval Domain() const =0
virtual ON_BOOL32 IsInPlane(const ON_Plane &test_plane, double tolerance=ON_ZERO_TOLERANCE) const =0
Definition opennurbs_ellipse.h:23
Definition opennurbs_geometry.h:36
virtual bool GetTightBoundingBox(ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const
Definition opennurbs_geometry.cpp:98
virtual bool EvaluatePoint(const class ON_ObjRef &objref, ON_3dPoint &P) const
Definition opennurbs_geometry.cpp:247
ON_Geometry & operator=(const ON_Geometry &)
Definition opennurbs_geometry.cpp:26
Definition opennurbs_point.h:46
Definition opennurbs_line.h:20
Definition opennurbs_massprop.h:25
Definition opennurbs_curve.h:37
int m_reserved1
Definition opennurbs_curve.h:52
double m_max_ang_radians
Definition opennurbs_curve.h:57
double m_reserved3
Definition opennurbs_curve.h:83
double m_tolerance
Definition opennurbs_curve.h:73
ON_MeshCurveParameters()
Definition opennurbs_mesh.cpp:603
int m_main_seg_count
Definition opennurbs_curve.h:49
int m_reserved2
Definition opennurbs_curve.h:53
double m_max_aspect
Definition opennurbs_curve.h:68
double m_max_chr
Definition opennurbs_curve.h:61
int m_sub_seg_count
Definition opennurbs_curve.h:50
double m_min_edge_length
Definition opennurbs_curve.h:77
double m_reserved4
Definition opennurbs_curve.h:84
double m_max_edge_length
Definition opennurbs_curve.h:81
Definition opennurbs_nurbscurve.h:27
Definition opennurbs_objref.h:167
virtual unsigned int SizeOf() const
Definition opennurbs_object.cpp:1677
virtual ON::object_type ObjectType() const
Definition opennurbs_object.cpp:1616
virtual void DestroyRuntimeCache(bool bDelete=true)
Definition opennurbs_object.cpp:1757
Definition opennurbs_plane.h:20
Definition opennurbs_polylinecurve.h:21
ON_BOOL32 Write(ON_BinaryArchive &binary_archive) const
Definition opennurbs_polylinecurve.cpp:175
ON_BOOL32 Read(ON_BinaryArchive &binary_archive)
Definition opennurbs_polylinecurve.cpp:186
bool GetTightBoundingBox(ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const
Definition opennurbs_bezier.cpp:816
Definition opennurbs_array.h:46
Definition opennurbs_surface.h:58
Trims an entity to another entity or trims both entities if this.trimBoth is true.
Definition Trim.js:12
ON_DECL ON_Curve * ON_TrimCurve(const ON_Curve &curve, ON_Interval trim_parameters)
Definition opennurbs_curve.cpp:2530
ON_DECL bool ON_ForceMatchCurveEnds(ON_Curve &Crv0, int end0, ON_Curve &Crv1, int end1)
Definition opennurbs_curve.cpp:1899
ON_DECL int ON_ClosedCurveOrientation(const ON_Curve &curve, const ON_Xform *xform)
Definition opennurbs_brep.cpp:6722
ON_DECL bool ON_SortCurves(int curve_count, const ON_Curve *const *curve_list, int *index, bool *bReverse)
Definition opennurbs_curve.cpp:3401
ON_DECL int ON_JoinCurves(const ON_SimpleArray< const ON_Curve * > &InCurves, ON_SimpleArray< ON_Curve * > &OutCurves, double join_tol, bool bPreserveDirection=false, ON_SimpleArray< int > *key=0)
Definition opennurbs_curve.cpp:2886
ON_DECL bool ON_SortLines(int line_count, const ON_Line *line_list, int *index, bool *bReverse)
Definition opennurbs_curve.cpp:3292
#define ON_ZERO_TOLERANCE
Definition opennurbs_defines.h:238
#define ON_DECL
Definition opennurbs_defines.h:92
#define ON_CLASS
Definition opennurbs_defines.h:91
#define ON_SQRT_EPSILON
Definition opennurbs_defines.h:147
char s
Definition opennurbs_string.cpp:32
#define NULL
Definition opennurbs_system.h:256
int ON_BOOL32
Definition opennurbs_system.h:362