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