|
| enum | boundaries : unsigned int {
e_half_length_0 = 0u
, e_half_length_1 = 1u
, e_half_length_2 = 2u
, e_divisor = 3u
,
e_size = 4u
} |
| | Indices describing the entries in the shape boundary array.
|
|
template<concepts::scalar scalar_t> |
| using | bounds_type = darray<scalar_t, boundaries::e_size> |
| | Container definition for the shape boundary values.
|
|
template<concepts::algebra algebra_t> |
| using | local_frame_type = cartesian2D<algebra_t> |
| | Local coordinate frame for boundary checks.
|
|
template<typename bool_t> |
| using | result_type = detail::boundary_check_result<bool_t> |
| | Result type of a boundary check.
|
|
| template<concepts::scalar scalar_t> |
| constexpr scalar_t | area (const bounds_type< scalar_t > &bounds) const |
| | The area of a the shape.
|
| template<concepts::algebra algebra_t> |
| dpoint3D< algebra_t > | centroid (const bounds_type< dscalar< algebra_t > > &bounds) const |
| template<concepts::scalar scalar_t> |
| constexpr bool | check_consistency (const bounds_type< scalar_t > &bounds, std::ostream &os) const |
| | Check consistency of boundary values.
|
| template<concepts::algebra algebra_t> |
| darray< dscalar< algebra_t >, 6 > | local_min_bounds (const bounds_type< dscalar< algebra_t > > &bounds, const dscalar< algebra_t > env=std::numeric_limits< dscalar< algebra_t > >::epsilon()) const |
| | Lower and upper point for minimal axis aligned bounding box.
|
| template<concepts::scalar scalar_t> |
| constexpr scalar_t | measure (const bounds_type< scalar_t > &bounds) const |
| | Measure of the shape: Area.
|
| template<concepts::scalar scalar_t> |
| constexpr bounds_type< scalar_t > | merge (const bounds_type< scalar_t > &bounds, const bounds_type< scalar_t > &o_bounds) const |
| | Merge two trapezoid shapes.
|
| template<concepts::scalar scalar_t, concepts::point point_t> |
| scalar_t | min_dist_to_boundary (const bounds_type< scalar_t > &bounds, const point_t &loc_p) const |
| | Find the minimum distance to any boundary.
|
| template<concepts::algebra algebra_t> |
| dvector< dpoint3D< algebra_t > > | vertices (const bounds_type< dscalar< algebra_t > > &bounds, dindex) const |
| | Generate vertices in local cartesian frame.
|
| template<concepts::algebra algebra_t> |
| constexpr result_type< dbool< algebra_t > > | check_boundaries (const bounds_type< dscalar< algebra_t > > &bounds, const dtransform3D< algebra_t > &trf, const dpoint3D< algebra_t > &glob_p, const dscalar< algebra_t > tol=std::numeric_limits< dscalar< algebra_t > >::epsilon(), const dscalar< algebra_t > edge_tol=0.f) const |
| | Check boundary values for a local point.
|
| template<concepts::scalar scalar_t, concepts::point point_t> |
| constexpr auto | check_boundaries (const bounds_type< scalar_t > &bounds, const point_t &loc_p, const scalar_t tol=std::numeric_limits< scalar_t >::epsilon(), const scalar_t edge_tol=0.f) const |
Geometrical shape of a trapezoid2D.
It is defined by half lengths in local0 coordinate bounds[0] and bounds[1] at -/+ half length in the local1 coordinate bounds[2]. bounds[3] contains the precomputed value of 1 / (2 * bounds[2]), which avoids excessive floating point divisions.