PolyFEM
Loading...
Searching...
No Matches
polyfem::BSplineParametrization3D Class Reference

#include <BSplineParametrization.hpp>

Inheritance diagram for polyfem::BSplineParametrization3D:
[legend]
Collaboration diagram for polyfem::BSplineParametrization3D:
[legend]

Public Member Functions

 BSplineParametrization3D (const Eigen::MatrixXd &control_points, const Eigen::MatrixXd &knots_u, const Eigen::MatrixXd &knots_v, const Eigen::MatrixXd &V)
 
int vertex_size () override
 
void get_parameters (const Eigen::MatrixXd &V, Eigen::MatrixXd &control_points, const bool mesh_changed) override
 
void reparametrize (const Eigen::MatrixXd &control_points, Eigen::MatrixXd &newV) override
 
void derivative_wrt_params (const Eigen::VectorXd &grad_boundary, Eigen::VectorXd &grad_control_points) override
 
- Public Member Functions inherited from polyfem::BSplineParametrization
 BSplineParametrization (const Eigen::MatrixXd &V)
 
virtual ~BSplineParametrization ()=default
 

Static Public Member Functions

static void gradient (const Eigen::MatrixXd &point, const Eigen::MatrixXd &control_points, const Eigen::MatrixXd &uv_parameter, const double distance, Eigen::MatrixXd &grad)
 
static void eval (const Eigen::MatrixXd &control_points, const Eigen::MatrixXd &uv_parameter, Eigen::MatrixXd &val)
 
static void deriv (const Eigen::MatrixXd &control_points, const Eigen::MatrixXd &uv_parameter, Eigen::MatrixXd &deriv_u, Eigen::MatrixXd &deriv_v)
 

Private Attributes

std::vector< int > node_ids_
 
std::map< int, Eigen::MatrixXd > node_id_to_param_
 
const int dim
 
nanospline::BSplinePatch< double, 3, 3, 3 > patch
 

Additional Inherited Members

- Protected Attributes inherited from polyfem::BSplineParametrization
int num_vertices
 

Detailed Description

Definition at line 54 of file BSplineParametrization.hpp.

Constructor & Destructor Documentation

◆ BSplineParametrization3D()

polyfem::BSplineParametrization3D::BSplineParametrization3D ( const Eigen::MatrixXd &  control_points,
const Eigen::MatrixXd &  knots_u,
const Eigen::MatrixXd &  knots_v,
const Eigen::MatrixXd &  V 
)

Definition at line 136 of file BSplineParametrization.cpp.

References dim, polyfem::log_and_throw_error(), polyfem::logger(), node_id_to_param_, node_ids_, patch, and V.

Here is the call graph for this function:

Member Function Documentation

◆ deriv()

void polyfem::BSplineParametrization3D::deriv ( const Eigen::MatrixXd &  control_points,
const Eigen::MatrixXd &  uv_parameter,
Eigen::MatrixXd &  deriv_u,
Eigen::MatrixXd &  deriv_v 
)
static

Definition at line 269 of file BSplineParametrization.cpp.

References patch.

◆ derivative_wrt_params()

void polyfem::BSplineParametrization3D::derivative_wrt_params ( const Eigen::VectorXd &  grad_boundary,
Eigen::VectorXd &  grad_control_points 
)
overridevirtual

Implements polyfem::BSplineParametrization.

Definition at line 226 of file BSplineParametrization.cpp.

References dim, node_id_to_param_, node_ids_, and patch.

◆ eval()

void polyfem::BSplineParametrization3D::eval ( const Eigen::MatrixXd &  control_points,
const Eigen::MatrixXd &  uv_parameter,
Eigen::MatrixXd &  val 
)
static

Definition at line 261 of file BSplineParametrization.cpp.

References patch, and val.

◆ get_parameters()

void polyfem::BSplineParametrization3D::get_parameters ( const Eigen::MatrixXd &  V,
Eigen::MatrixXd &  control_points,
const bool  mesh_changed 
)
overridevirtual

Implements polyfem::BSplineParametrization.

Definition at line 179 of file BSplineParametrization.cpp.

References dim, node_id_to_param_, node_ids_, patch, and V.

◆ gradient()

void polyfem::BSplineParametrization3D::gradient ( const Eigen::MatrixXd &  point,
const Eigen::MatrixXd &  control_points,
const Eigen::MatrixXd &  uv_parameter,
const double  distance,
Eigen::MatrixXd &  grad 
)
static

Definition at line 251 of file BSplineParametrization.cpp.

References patch, and val.

◆ reparametrize()

void polyfem::BSplineParametrization3D::reparametrize ( const Eigen::MatrixXd &  control_points,
Eigen::MatrixXd &  newV 
)
overridevirtual

Implements polyfem::BSplineParametrization.

Definition at line 211 of file BSplineParametrization.cpp.

References dim, node_id_to_param_, node_ids_, and patch.

◆ vertex_size()

int polyfem::BSplineParametrization3D::vertex_size ( )
inlineoverridevirtual

Implements polyfem::BSplineParametrization.

Definition at line 59 of file BSplineParametrization.hpp.

References node_id_to_param_.

Member Data Documentation

◆ dim

const int polyfem::BSplineParametrization3D::dim
private

◆ node_id_to_param_

std::map<int, Eigen::MatrixXd> polyfem::BSplineParametrization3D::node_id_to_param_
private

◆ node_ids_

std::vector<int> polyfem::BSplineParametrization3D::node_ids_
private

◆ patch

nanospline::BSplinePatch<double, 3, 3, 3> polyfem::BSplineParametrization3D::patch
private

The documentation for this class was generated from the following files: