3D torus function. The function is defined by the torus center, axis, and major and inner radii. The function presents a negative sign inside the torus, and positive outside.
More...
|
| TorusBzr (real major_radius, real minor_radius) |
| Constructor.
|
|
| TorusBzr (real major_radius, real minor_radius, const Point< 3 > ¢er) |
| Constructor.
|
|
| TorusBzr (real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis) |
| Constructor.
|
|
| TorusBase (real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis) |
| Constructor.
|
|
real | major_radius () const |
| Gets the major radius of the torus.
|
|
real | minor_radius () const |
| Gets the minor radius of the torus.
|
|
const Point< 3 > & | center () const |
| Gets the center of the plane.
|
|
const Point< 3 > & | axis () const |
| Gets the axis of the plane.
|
|
| BezierTP (const TensorSizeTP< dim > &order) |
| Constructor.
|
|
| BezierTP (const TensorSizeTP< dim > &order, const CoefsType &value) |
| Constructs a constant value Bezier tensor product.
|
|
| BezierTP (const TensorSizeTP< dim > &order, const std::vector< CoefsType > &coefs) |
| Constructor.
|
|
| BezierTP (const BezierTP< dim, range > &bezier) |
| Copy constructor.
|
|
| BezierTP (const MonomialsTP< dim, range > &monomials) |
| Constructor.
|
|
virtual Value< real > | operator() (const Point< dim > &point) const final |
| Evaluator operator.
|
|
virtual Value< Interval< dim > > | operator() (const Point< dim, Interval< dim > > &point) const final |
| Evaluator operator.
|
|
virtual Gradient< real > | grad (const Point< dim > &point) const final |
| Gradient evaluator operator.
|
|
virtual Gradient< Interval< dim > > | grad (const Point< dim, Interval< dim > > &point) const final |
| Gradient evaluator operator.
|
|
virtual Hessian< real > | hessian (const Point< dim > &point) const final |
| Hessian evaluator operator.
|
|
const ::algoim::xarray< CoefsType, dim > & | get_xarray () const |
| Gets a constant reference to the stored xarray view of the polynomial coefficients.
|
|
std::shared_ptr< BezierTP< dim - 1, range > > | extract_facet (const int local_facet_id) const |
|
std::shared_ptr< BezierTP< dim, range > > | raise_order (const TensorSizeTP< dim > &new_order) const |
| Raises the order of the Bezier tensor product.
|
|
std::shared_ptr< BezierTP< dim, range > > | negate () const |
| Creates a new Bezier tensor product (TP) object that is the negation of the current object.
|
|
void | rescale_domain (const BoundBox< dim > &new_domain) |
| Recomputes (in-place) the Bezier coefficients for a new domain (that may not be [0, 1]).
|
|
FuncSign | sign () const |
| Returns the sign of the function represented by the Bézier tensor-product using the properties of the control points convex hull.
|
|
std::shared_ptr< BezierTP< dim, range > > | operator* (const BezierTP< dim, range > &rhs) const |
| Product of two Beziers.
|
|
std::shared_ptr< BezierTP< dim, range > > | operator+ (const BezierTP< dim, range > &rhs) const |
| Addition of two Beziers.
|
|
std::shared_ptr< BezierTP< dim, range > > | operator- (const BezierTP< dim, range > &rhs) const |
| Subtraction of two Beziers.
|
|
std::shared_ptr< BezierTP< sub_dim, range > > | compose (const BezierTP< sub_dim, dim > &rhs) const |
| Composes the current Bezier with the given Bezier rhs .
|
|
| PolynomialTP (const TensorSizeTP< dim > &order) |
| Constructor.
|
|
| PolynomialTP (const TensorSizeTP< dim > &order, const CoefsType &value) |
| Constructs a constant value PolynomialTP object with the specified order.
|
|
| PolynomialTP (const TensorSizeTP< dim > &order, const std::vector< CoefsType > &coefs) |
| Constructor.
|
|
std::size_t | get_num_coefs () const |
| Get the number of coeficients.
|
|
const std::vector< CoefsType > & | get_coefs () const |
| Gets the polynomial coefficients.
|
|
const TensorSizeTP< dim > & | get_order () const |
| Gets the polynomial order along the parametric directions.
|
|
int | get_order (int dir) const |
| Gets the polynomial order (degree + 1) along the direction dir .
|
|
const CoefsType & | get_coef (int index) const |
| Retrieves the coefficients at the specified index.
|
|
CoefsType & | get_coef (int index) |
| Retrieves the coefficients at the specified index.
|
|
const CoefsType & | get_coef (const TensorIndexTP< dim > &index) const |
| Retrieves the coefficient associated with the given tensor index.
|
|
CoefsType & | get_coef (const TensorIndexTP< dim > &index) |
| Retrieves the coefficient associated with the given tensor index.
|
|
int | get_degree (int dir) const |
| Gets the polynomial degree (order - 1) along the direction dir .
|
|
void | transform_image (const BoundBox< range > &old_domain, const BoundBox< range > &new_domain) |
| Transforms (in place) the coefficients of the polynomial from old_domain to new_domain .
|
|
void | coefs_linear_transform (const real scale, const CoefsType &shift) |
| Applies a linear transformation to every coefficient.
|
|
Public Member Functions inherited from qugar::impl::DomainFunc< dim, range > |
| DomainFunc ()=default |
| Default constructor.
|
|
| DomainFunc (const DomainFunc &)=default |
| Default copy constructor.
|
|
| DomainFunc (DomainFunc &&)=default |
| Default move constructor.
|
|
DomainFunc & | operator= (const DomainFunc &)=default |
| Default copy assignment operator.
|
|
DomainFunc & | operator= (DomainFunc &&)=default |
| Default move assignment operator.
|
|
virtual | ~DomainFunc ()=default |
| Default virtual destructor.
|
|
|
using | Parent |
| Parent type.
|
|
using | CoefsType |
| Coefs type.
|
|
using | Value |
| Value type.
|
|
using | Gradient |
| Gradient type.
|
|
using | Hessian |
| Hessian type.
|
|
using | Interval |
| Algoim's interval alias.
|
|
using | CoefsType = std::conditional_t<range == 1, real, Point<range>> |
| Coefs type.
|
|
Public Types inherited from qugar::impl::DomainFunc< dim, range > |
template<int N> |
using | Interval = ::algoim::Interval<N> |
| Algoim's interval alias.
|
|
template<typename T > |
using | Value = std::conditional_t<range == 1, T, Vector<T, range>> |
| Value type.
|
|
template<typename T > |
using | Gradient = Vector<Value<T>, dim> |
| Gradient type.
|
|
template<typename T > |
using | Hessian = Vector<Value<T>, num_hessian> |
| Hessian (symmetric type).
|
|
static Value< T > | casteljau (const Point< dim, T > &point, typename std::vector< CoefsType >::const_iterator &coefs, const Vector< int, dim > &order) |
| Evaluates a Bezier polynomial using the Casteljau's algorithm.
|
|
static Vector< Value< T >, dim+1 > | casteljau_der (const Point< dim, T > &point, typename std::vector< CoefsType >::const_iterator &coefs, const Vector< int, dim > &order) |
| Evaluates the gradient Bezier polynomial using the Casteljau's algorithm.
|
|
Static Public Attributes inherited from qugar::impl::DomainFunc< dim, range > |
static const int | num_hessian = dim * (dim + 1) / 2 |
| Number of Hessian (symmetric) components.
|
|
static Point< 3 > | get_default_center () |
| Gets the default center of the torus. It is set to the center of the Cartesian coordinate system.
|
|
static Point< 3 > | get_default_axis () |
| Gets the default axis of the torus. It is set to the z-axis of the Cartesian coordinate system.
|
|
real | major_radius_ |
| Major radius of the torus.
|
|
real | minor_radius_ |
| Minor radius of the torus.
|
|
Point< 3 > | center_ |
| Center of the torus.
|
|
Point< 3 > | axis_ |
| Axis of the torus.
|
|
TensorSizeTP< dim > | order_ |
| Order of the polynomial along each parametric direction.
|
|
std::vector< CoefsType > | coefs_ |
|
3D torus function. The function is defined by the torus center, axis, and major and inner radii. The function presents a negative sign inside the torus, and positive outside.
- Note
- Bezier version.