|
ACTS
Experiment-independent tracking
|
Class representing a frustum shape. More...
#include <Acts/Utilities/Frustum.hpp>
Public Types | |
| using | transform_type = Eigen::Transform<value_t, DIM, Eigen::Affine> |
| Associated transform type. | |
| using | value_type = value_t |
| Re expose the value type. | |
| using | vertex_array_type = Eigen::Array<value_t, DIM, 1> |
| Vertex array type corresponding to the vertex type. | |
| using | VertexType = Eigen::Matrix<value_t, DIM, 1> |
| Vertex type based on the value type and dimension. | |
Public Member Functions | |
| Frustum (const VertexType &origin, const VertexType &dir, value_type opening_angle) | |
| Constructor for the 3D case. | |
| Frustum (const VertexType &origin, const VertexType &dir, value_type opening_angle) | |
| Constructor for the 2D case. | |
| const VertexType & | dir () const |
| Getter for the direction of the frustum. | |
| void | draw (IVisualization3D &helper, value_type far_distance=10) const |
| Draw a representation of this frustum using a visualization helper. | |
| const std::array< VertexType, SIDES+1 > & | normals () const |
| Getter for the normal vectors of the planes defining this frustum. | |
| const VertexType & | origin () const |
| Getter for the oriogin of the frustum. | |
| std::ostream & | svg (std::ostream &os, value_type w, value_type h, value_type far_distance=1, value_type unit=20.) const |
| Draw a representation of this frustum as an SVG string to an outstream. | |
| Frustum< value_t, DIM, SIDES > | transformed (const transform_type &trf) const |
| Transforms this frustum using a given transform and returns a new instance. | |
Static Public Attributes | |
| static constexpr std::size_t | dim = DIM |
| Re expose the number of dimensions. | |
| static constexpr std::size_t | sides = SIDES |
| Re expose the number of sides. | |
Class representing a frustum shape.
The frustum is defined using an origin, a direction and an opening angle. These parameters are then used to calculate a number of side planes, each having a position and a normal vector. The "near plane" is assumed to coincide with the origin point, and the normal with the "direction" of the frustum. No far plane is defined.
| value_t | The floating point value to use |
| DIM | The number of dimensions of ambient space |
| SIDES | The number of sides (= side planes) the frustum has (exactly 2 in 2D, minimum 3 in 3D) |
| using Acts::Frustum< value_t, DIM, SIDES >::transform_type = Eigen::Transform<value_t, DIM, Eigen::Affine> |
Associated transform type.
| using Acts::Frustum< value_t, DIM, SIDES >::value_type = value_t |
Re expose the value type.
| using Acts::Frustum< value_t, DIM, SIDES >::vertex_array_type = Eigen::Array<value_t, DIM, 1> |
Vertex array type corresponding to the vertex type.
| using Acts::Frustum< value_t, DIM, SIDES >::VertexType = Eigen::Matrix<value_t, DIM, 1> |
Vertex type based on the value type and dimension.
| Acts::Frustum< value_t, DIM, SIDES >::Frustum | ( | const VertexType & | origin, |
| const VertexType & | dir, | ||
| value_type | opening_angle ) |
Constructor for the 2D case.
| origin | The origin of the frustum |
| dir | The direction of the frustum |
| opening_angle | The opening angle |
opening_angle is defined as the angle between opposing side planes. The opening angle needs to be < pi. | Acts::Frustum< value_t, DIM, SIDES >::Frustum | ( | const VertexType & | origin, |
| const VertexType & | dir, | ||
| value_type | opening_angle ) |
Constructor for the 3D case.
| origin | The origin of the frustum |
| dir | The direction of the frustum |
| opening_angle | The opening angle |
opening_angle is defined as the angle between opposing side planes. The opening angle needs to be < pi. | const VertexType & Acts::Frustum< value_t, DIM, SIDES >::dir | ( | ) | const |
Getter for the direction of the frustum.
| void Acts::Frustum< value_t, DIM, SIDES >::draw | ( | IVisualization3D & | helper, |
| value_type | far_distance = 10 ) const |
Draw a representation of this frustum using a visualization helper.
| helper | The visualization helper |
| far_distance | The distance to the virtual "far plane" at which point the side planes terminate visually. |
| const std::array< VertexType, SIDES+1 > & Acts::Frustum< value_t, DIM, SIDES >::normals | ( | ) | const |
Getter for the normal vectors of the planes defining this frustum.
| const VertexType & Acts::Frustum< value_t, DIM, SIDES >::origin | ( | ) | const |
Getter for the oriogin of the frustum.
| std::ostream & Acts::Frustum< value_t, DIM, SIDES >::svg | ( | std::ostream & | os, |
| value_type | w, | ||
| value_type | h, | ||
| value_type | far_distance = 1, | ||
| value_type | unit = 20. ) const |
Draw a representation of this frustum as an SVG string to an outstream.
| os | The out stream to write to |
| w | The width of the output SVG |
| h | The height of the output SVG |
| far_distance | The distance to the virtual "far line" at which point the side lines terminate visually. |
| unit | Multiplicative factor to apply to internal distances |
| Frustum< value_t, DIM, SIDES > Acts::Frustum< value_t, DIM, SIDES >::transformed | ( | const transform_type & | trf | ) | const |
Transforms this frustum using a given transform and returns a new instance.
| trf | The transform to apply |
trf applied.
|
staticconstexpr |
Re expose the number of dimensions.
|
staticconstexpr |
Re expose the number of sides.