File BSpline.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.
This header contains alias definitions defining which classes to use for the different degrees of derivatives.
-
namespace
Utils -
namespace
BSplines¶ -
class
BSpline - #include <BSpline.h>
Contains the standard implementation of a basis-spline curve. Evaluation and getter methods are defined so that knot vectors and control points of derivatives are calculated when they are needed.
Public Functions
-
BSpline()¶
-
BSpline(Eigen::VectorXd knotVector, Eigen::MatrixXd controlPoints, int degree)¶
-
Eigen::VectorXd
calculateBSplineCoefficientVector(double u, int derivativeOrder = 0) const¶
-
Coefficients
calculateBSplineCoefficients(double u, int derivativeOrder = 0) const¶
-
Eigen::VectorXd
front() const Return the value at u = 0.0.
-
Eigen::VectorXd
back() const Return the value at u = 1.0.
-
Eigen::VectorXd
evaluate(double u, int derivativeOrder = 0) const¶
-
Eigen::VectorXd
operator()(double u) const¶
-
Eigen::VectorXd
evaluateNaive(double u, int derivativeOrder = 0) const¶
-
void
reverse()¶
-
int
getDegree() const¶
-
int
getOrder() const¶
-
int
getDim() const¶
-
int
controlPointCount() const¶
-
int
getHighestCalculatedDerivative() const¶
-
const Eigen::VectorXd &
getKnotVector() const¶
-
const Eigen::VectorXd &
getKnotVectorDerivative(int derivativeOrder) const¶
-
const Eigen::MatrixXd &
getControlPointMatrix() const¶
-
const Eigen::VectorXd &
deriveAndGetKnotVector(int derivativeOrder)¶
-
const Eigen::MatrixXd &
deriveAndGetControlPointMatrix(int derivativeOrder)¶
-
bool
isClampedAndNormed() const¶
Private Functions
-
void
calculateDerivatives(int highestDerivativeToCalculate) const¶
-
const Eigen::MatrixXd &
getControlPointMatrix(int k) const¶
-
Eigen::VectorXd
deBoorCoefficient(double u, int i, int p, int k = 0) const¶
-
void
deriveKnotVectors(int highestDerivativeToCalculate) const¶
-
Eigen::VectorXd
deriveControlPoint(int i, int highestDerivativeToCalculate) const¶
-
void
deriveControlPointMatrices(int highestDerivativeToCalculate) const¶
-
int
findIdxOfLowerOrEqualDomainKnot(double u, int k) const¶
-
-
class
-
namespace
-
namespace