13 class BSplineParametrization2D;
14 class BSplineParametrization3D;
22 BSplineParametrization1DTo2D(
const Eigen::MatrixXd &initial_control_points,
const Eigen::VectorXd &knots,
const int num_vertices,
const bool exclude_ends =
true)
28 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
29 int size(
const int x_size)
const override
33 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
34 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad_full,
const Eigen::VectorXd &
x)
const override;
46 mutable std::shared_ptr<BSplineParametrization2D>
spline_;
86 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
88 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
89 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad_full,
const Eigen::VectorXd &
x)
const override;
96 int optimal_new_control_point_idx(
const Eigen::MatrixXd &
V,
const Eigen::MatrixXi &
F,
const Eigen::VectorXi &boundary_loop,
const std::vector<int> &existing_points)
const;
main class that contains the polyfem solver and all its state
bool invoked_inverse_eval_
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
const Eigen::VectorXd knots_
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad_full, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
std::shared_ptr< BSplineParametrization2D > spline_
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
const Eigen::MatrixXd initial_control_points_
BSplineParametrization1DTo2D(const Eigen::MatrixXd &initial_control_points, const Eigen::VectorXd &knots, const int num_vertices, const bool exclude_ends=true)
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::MatrixXi F_surface_
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
Eigen::MatrixXd boundary_bbw_weights_
const int num_control_vertices_
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad_full, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::MatrixXd control_points_
Eigen::MatrixXd V_surface_
void compute_faces_for_partial_vertices(const Eigen::MatrixXd &V, Eigen::MatrixXi &F) const
const bool allow_rotations_
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::MatrixXd get_bbw_weights()
Eigen::MatrixXd bbw_weights_
bool invoked_inverse_eval_
int size(const int x_size) const override
Compute DOF of y given DOF of x.
BoundedBiharmonicWeights2Dto3D(const int num_control_vertices, const int num_vertices, const Eigen::MatrixXd &V_surface, const Eigen::MatrixXi &F_surface)
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
int optimal_new_control_point_idx(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::VectorXi &boundary_loop, const std::vector< int > &existing_points) const
polyfem::legacy::State State