PolyFEM
Loading...
Searching...
No Matches
QuadraticBSpline2d.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 QuadraticBSpline2d(const std::array<double, 4> &knots_u, const std::array<double, 4> &knots_v)
22 : spline_u_(knots_u), spline_v_(knots_v)
23 {
24 }
25
26 void init(const std::array<double, 4> &knots_u, const std::array<double, 4> &knots_v);
27
28 void interpolate(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const;
29 double interpolate(const double u, const double v) const;
30
31 void derivative(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const;
32
33 private:
36 };
37 } // namespace basis
38} // namespace polyfem
void init(const std::array< double, 4 > &knots_u, const std::array< double, 4 > &knots_v)
void interpolate(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const
void derivative(const Eigen::MatrixXd &ts, Eigen::MatrixXd &result) const
QuadraticBSpline2d(const std::array< double, 4 > &knots_u, const std::array< double, 4 > &knots_v)