Home | History | Annotate | Download | only in Splines

Lines Matching full:knots

29    * The knots are computed as
35 * where \f$p\f$ is the degree and \f$m+1\f$ the number knots
40 * \param[out] knots The output knot vector.
45 void KnotAveraging(const KnotVectorType& parameters, DenseIndex degree, KnotVectorType& knots)
47 knots.resize(parameters.size()+degree+1);
50 knots(j+degree) = parameters.segment(j,degree).mean();
52 knots.segment(0,degree+1) = KnotVectorType::Zero(degree+1);
53 knots.segment(knots.size()-degree-1,degree+1) = KnotVectorType::Ones(degree+1);
70 * \param[out] knots The calculated knot vector. These will be returned as a
81 KnotVectorType& knots)
90 KnotAveraging(parameters, degree, knots);
118 // There are (endIndex - startIndex + 1) knots obtained from the averaging
170 // Number of knots (one for each point and derivative) plus spline order.
172 knots.resize(numKnots);
174 knots.head(degree).fill(temporaryKnots[0]);
175 knots.tail(degree).fill(temporaryKnots.template tail<1>()[0]);
176 knots.segment(degree, temporaryKnots.size()) = temporaryKnots;
297 KnotVectorType knots;
298 KnotAveraging(knot_parameters, degree, knots);
304 const DenseIndex span = SplineType::Span(knot_parameters[i], degree, knots);
307 A.row(i).segment(span-degree, degree+1) = SplineType::BasisFunctions(knot_parameters[i], degree, knots);
317 return SplineType(knots, ctrls);
345 KnotVectorType knots;
347 KnotAveragingWithDerivatives(parameters, degree, derivativeIndices, knots);
363 Scalar y = (knots(degree + 1) - knots(0)) / degree;
378 Scalar y = (knots(knots.size() - 1) - knots(knots.size() - (degree + 2))) / degree;
386 const DenseIndex span = SplineType::Span(parameters[i], degree, knots);
391 = SplineType::BasisFunctionDerivatives(parameters[i], 1, degree, knots);
399 = SplineType::BasisFunctions(parameters[i], degree, knots);
411 SplineType spline(knots, controlPoints);