PolyFEM
Loading...
Searching...
No Matches
QuadraticBSpline3d.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <array>
6#include <cassert>
7
8#include <Eigen/Dense>
9
10namespace polyfem
11{
12 namespace basis
13 {
15 {
16 public:
18 {
19 }
20
21 QuadraticBSpline3d(const std::array<double, 4> &knots_u, const std::array<double, 4> &knots_v, const std::array<double, 4> &knots_w)
22 : spline_u_(knots_u), spline_v_(knots_v), spline_w_(knots_w)
23 {
24 }
25
26 void init(const std::array<double, 4> &knots_u, const std::array<double, 4> &knots_v, const std::array<double, 4> &knots_w);
27
28 void interpolate(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const;
29 double interpolate(const double u, const double v, const double w) const;
30
31 void derivative(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const;
32
33 private:
37 };
38 } // namespace basis
39} // namespace polyfem
QuadraticBSpline3d(const std::array< double, 4 > &knots_u, const std::array< double, 4 > &knots_v, const std::array< double, 4 > &knots_w)
void interpolate(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const
void derivative(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const
void init(const std::array< double, 4 > &knots_u, const std::array< double, 4 > &knots_v, const std::array< double, 4 > &knots_w)