handles a single patch
More...
#include <Patch.hpp>
handles a single patch
Definition at line 20 of file Patch.hpp.
|
| Patch () |
| constructors More...
|
|
| Patch (const std::vector< Eigen::Matrix< double, -1, -1 >> &control_points, const std::vector< double > &knots_x, const std::vector< double > &knots_y) |
| Constructor of a Patch. More...
|
|
void | init_Patch (const std::vector< Eigen::Matrix< double, -1, -1 >> &xyzw, const std::vector< double > &x_knots, const std::vector< double > &y_knots) |
| init More...
|
|
Eigen::Vector3d | eval (const Eigen::Vector2d &reference_point) const |
| Evaluate patch at given point. More...
|
|
Eigen::Matrix< double, 3, 2 > | evalJacobian (const Eigen::Vector2d &reference_point) const |
| Evaluate Jacobian of the parametrization at given point. More...
|
|
Eigen::Matrix< double, 3, 1 > | evalNormal (const Eigen::Vector2d &reference_point) const |
| Evaluate normal vector at given point. More...
|
|
Eigen::Vector3d | eval (double x, double y) const |
| Evaluate patch at given point. More...
|
|
Eigen::Matrix< double, 3, 2 > | evalJacobian (double x, double y) const |
| Evaluate Jacobian of the parametrization at given point. More...
|
|
Eigen::Matrix< double, 3, 1 > | evalNormal (double x, double y) const |
| Evaluate normal vector at given point. More...
|
|
void | updateSurfacePoint (SurfacePoint *srf_pt, const Eigen::Vector2d &ref_pt, double w, const Eigen::Vector2d &xi) const |
| Updates the surface point and returns the physical point and the derivatives there. More...
|
|
|
std::vector< double > | data_ |
| getter
|
|
int | polynomial_degree_x_ |
|
int | polynomial_degree_y_ |
|
std::vector< double > | unique_knots_x_ |
|
std::vector< double > | unique_knots_y_ |
|
◆ Patch() [1/2]
constructors
Default constructor.
Definition at line 28 of file Patch.hpp.
◆ Patch() [2/2]
Bembel::Patch::Patch |
( |
const std::vector< Eigen::Matrix< double, -1, -1 >> & |
control_points, |
|
|
const std::vector< double > & |
knots_x, |
|
|
const std::vector< double > & |
knots_y |
|
) |
| |
|
inline |
Constructor of a Patch.
A patch is defined by a set of control points and knot vectors in the x and y directions. It is used to create complex surfaces in computer graphics and CAD applications.
- Parameters
-
control_points | std::vector<Eigen::MatrixXd> {x, y, z, w} where the rows are the control points in x direction. |
knots_x | The knot vector in the x direction. |
knots_y | The knot vector in the y direction. |
Definition at line 42 of file Patch.hpp.
◆ eval() [1/2]
Eigen::Vector3d Bembel::Patch::eval |
( |
const Eigen::Vector2d & |
reference_point | ) |
const |
|
inline |
Evaluate patch at given point.
I look up the position in the knot vector, scale the input arguments, evaluate the 1D basis functions and sum over them with the control points from data.
- Parameters
-
reference_point | Point in reference domain. |
- Returns
- Point in physical domain.
Definition at line 115 of file Patch.hpp.
◆ eval() [2/2]
Eigen::Vector3d Bembel::Patch::eval |
( |
double |
x, |
|
|
double |
y |
|
) |
| const |
|
inline |
Evaluate patch at given point.
I look up the position in the knot vector, scale the input arguments, evaluate the 1D basis functions and sum over them with the control points from data.
- Parameters
-
x | Coordinate in reference domain. |
y | Coordinate in reference domain. |
- Returns
- Point in physical domain.
Definition at line 257 of file Patch.hpp.
◆ evalJacobian() [1/2]
Eigen::Matrix<double, 3, 2> Bembel::Patch::evalJacobian |
( |
const Eigen::Vector2d & |
reference_point | ) |
const |
|
inline |
Evaluate Jacobian of the parametrization at given point.
- Parameters
-
reference_point | Point in reference domain. |
- Returns
- 3x2 Matrix with the Jacobian.
Definition at line 163 of file Patch.hpp.
◆ evalJacobian() [2/2]
Eigen::Matrix<double, 3, 2> Bembel::Patch::evalJacobian |
( |
double |
x, |
|
|
double |
y |
|
) |
| const |
|
inline |
Evaluate Jacobian of the parametrization at given point.
- Parameters
-
x | Coordinate in reference domain. |
y | Coordinate in reference domain. |
- Returns
- 3x2 Matrix with the Jacobian.
Definition at line 267 of file Patch.hpp.
◆ evalNormal() [1/2]
Eigen::Matrix<double, 3, 1> Bembel::Patch::evalNormal |
( |
const Eigen::Vector2d & |
reference_point | ) |
const |
|
inline |
Evaluate normal vector at given point.
- Parameters
-
reference_point | Point in reference domain. |
- Returns
- 3x1 normal vector.
Definition at line 240 of file Patch.hpp.
◆ evalNormal() [2/2]
Eigen::Matrix<double, 3, 1> Bembel::Patch::evalNormal |
( |
double |
x, |
|
|
double |
y |
|
) |
| const |
|
inline |
Evaluate normal vector at given point.
- Parameters
-
x | Coordinate in reference domain. |
y | Coordinate in reference domain. |
- Returns
- 3x1 normal vector.
Definition at line 277 of file Patch.hpp.
◆ init_Patch()
void Bembel::Patch::init_Patch |
( |
const std::vector< Eigen::Matrix< double, -1, -1 >> & |
xyzw, |
|
|
const std::vector< double > & |
x_knots, |
|
|
const std::vector< double > & |
y_knots |
|
) |
| |
|
inline |
init
Initializes a Patch.
A patch is defined by a set of control points and knot vectors in the x and y directions. It is used to create complex surfaces in computer graphics and CAD applications.
- Parameters
-
xyzw | std::vector<Eigen::MatrixXd> {x, y, z, w} where the rows are the control points in x direction. |
x_knots | The knot vector in the x direction. |
y_knots | The knot vector in the y direction. |
Definition at line 63 of file Patch.hpp.
◆ updateSurfacePoint()
void Bembel::Patch::updateSurfacePoint |
( |
SurfacePoint * |
srf_pt, |
|
|
const Eigen::Vector2d & |
ref_pt, |
|
|
double |
w, |
|
|
const Eigen::Vector2d & |
xi |
|
) |
| const |
|
inline |
Updates the surface point and returns the physical point and the derivatives there.
This is a combination of eval und evalJacobian, to avoid duplication of work.
- Parameters
-
srf_pt | Pointer to the SurfacePoint which gets updated. |
ref_pt | Point in reference domain with respect to the patch. |
w | quadrature weight. |
xi | Point in reference domain with respect to the element. |
Definition at line 294 of file Patch.hpp.
The documentation for this class was generated from the following file: