12 #include "dCoreStdafx.h"
14 #include "dClassAlloc.h"
16 #ifndef __D_BEZIER_SPLINE_H__
17 #define __D_BEZIER_SPLINE_H__
32 D_CORE_API dInt32 GetDegree ()
const;
34 D_CORE_API
dBigVector CurvePoint (dFloat64 u)
const;
35 D_CORE_API
dBigVector CurveDerivative (dFloat64 u, dInt32 index = 1)
const;
36 D_CORE_API dInt32 CurveAllDerivatives (dFloat64 u,
dBigVector*
const defivatives)
const;
38 D_CORE_API dFloat64 CalculateLength (dFloat64 tol)
const;
40 D_CORE_API
void GlobalCubicInterpolation (dInt32 count,
const dBigVector*
const points,
const dBigVector& firstTangent,
const dBigVector& lastTangent);
41 D_CORE_API
void CreateFromKnotVectorAndControlPoints (dInt32 degree, dInt32 knotCount,
const dFloat64*
const knotVector,
const dBigVector*
const controlPoints);
43 D_CORE_API
void InsertKnot (dFloat64 u);
44 D_CORE_API
bool RemoveKnot (dFloat64 u, dFloat64 tol);
46 D_CORE_API dInt32 GetControlPointCount()
const;
50 D_CORE_API
dBigVector GetControlPoint(dInt32 i)
const;
51 D_CORE_API
void SetControlPoint(dInt32 i,
const dBigVector& point);
53 D_CORE_API dInt32 GetKnotCount()
const;
57 D_CORE_API dFloat64 GetKnot(dInt32 i)
const;
58 D_CORE_API dFloat64 FindClosestKnot (
dBigVector& closestPointOnCurve,
const dBigVector& point, dInt32 subdivitionSteps = 2)
const;
62 dInt32 GetSpan(dFloat64 u)
const;
64 dBigVector CurvePoint (dFloat64 u, dInt32 span)
const;
65 void CreateCubicKnotVector(dInt32 count,
const dBigVector*
const points);
68 void BasicsFunctions (dFloat64 u, dInt32 span, dFloat64*
const functionOut)
const;
69 void BasicsFunctionsDerivatives (dFloat64 u, dInt32 span, dFloat64*
const derivatyivesOut)
const;
76 dInt32 m_controlPointsCount;