23 #if !defined(OPENNURBS_CURVE_INC_)
24 #define OPENNURBS_CURVE_INC_
112 unsigned int SizeOf()
const;
157 int bGrowBox =
false,
171 ON_BOOL32 GetDomain(
double* t0,
double* t1 )
const;
213 ON_BOOL32 ChangeClosedCurveSeam(
228 bool ChangeDimension(
229 int desired_dimension
238 int SpanCount()
const = 0;
248 ON_BOOL32 GetSpanVector(
258 ON_BOOL32 GetSpanVectorIndex(
261 int* span_vector_index,
271 int Degree()
const = 0;
279 ON_BOOL32 GetParameterTolerance(
295 double tolerance = ON_ZERO_TOLERANCE
335 double tolerance = ON_ZERO_TOLERANCE
364 double tolerance = ON_ZERO_TOLERANCE,
373 double tolerance = ON_ZERO_TOLERANCE
388 double tolerance = ON_ZERO_TOLERANCE
402 double tolerance = ON_ZERO_TOLERANCE
423 double min_abs_size = 0.0,
424 double min_rel_size = 10.0
432 ON_BOOL32 IsClosed()
const;
439 ON_BOOL32 IsPeriodic()
const;
496 bool GetNextDiscontinuity(
503 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
504 double curvature_tolerance=ON_SQRT_EPSILON
545 double point_tolerance=ON_ZERO_TOLERANCE,
546 double d1_tolerance=ON_ZERO_TOLERANCE,
547 double d2_tolerance=ON_ZERO_TOLERANCE,
548 double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE,
549 double curvature_tolerance=ON_SQRT_EPSILON
560 ON_BOOL32 Reverse()=0;
579 ON_BOOL32 SetStartPoint(
599 ON_BOOL32 SetEndPoint(
695 ON_BOOL32 FrameAt(
double t,
ON_Plane& plane)
const;
819 ON_BOOL32 EvCurvature(
879 bool FirstSpanIsLinear(
884 bool LastSpanIsLinear(
889 bool FirstSpanIsLinear(
895 bool LastSpanIsLinear(
996 double tolerance = 0.0,
1024 int HasNurbForm()
const;
1047 double tolerance = 0.0,
1065 ON_BOOL32 GetCurveParameterFromNurbFormParameter(
1084 ON_BOOL32 GetNurbFormParameterFromCurveParameter(
1097 void DestroyCurveTree();
1128 double RelTol=ON_SQRT_EPSILON)
const;
1133 #if defined(ON_DLL_TEMPLATE)
1137 #pragma warning( push )
1138 #pragma warning( disable : 4231 )
1140 #pragma warning( pop )
1173 bool GetTightBoundingBox(
1175 int bGrowBox =
false,
1216 bool ON_ForceMatchCurveEnds(
1246 bool bPreserveDirection =
false,
1375 int ON_ClosedCurveOrientation(
const ON_Curve& curve,
const ON_Xform* xform );
virtual ON::object_type ObjectType() const
virtual unsigned int SizeOf() const
virtual bool EvaluatePoint(const class ON_ObjRef &objref, ON_3dPoint &P) const
ON_Geometry & operator=(const ON_Geometry &)
virtual void DestroyRuntimeCache(bool bDelete=true)
virtual bool GetTightBoundingBox(ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const