|
| enum | boundaries : unsigned int { e_cross_section = 0u
, e_half_z = 1u
, e_size = 2u
} |
| | Indices for the line cross-section and half-length boundary values.
|
|
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 = line2D<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 > > &) 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: Volume.
|
| 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 line 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 |
template<bool kSquareCrossSect = false>
class detray::line< kSquareCrossSect >
Geometrical shape of a line surface.
- Template Parameters
-
| kSquareCrossSect | determines whether the line has a cricular or square cross section. This also changes the local coord. frame.m |
The line can either have a circular or a square cross section. In the first case bounds[0] refers to the radius, while in the second case it is the half length of the square. The second boundary bounds[1] is the half length in z.