12#include "detray/definitions/algebra.hpp"
13#include "detray/definitions/detail/qualifiers.hpp"
14#include "detray/definitions/math.hpp"
19template <concepts::algebra algebra_t>
61 const auto local3 = trf.point_to_local(p);
62 return {vector::perp(local3), vector::phi(local3), local3[2]};
75 return trf.point_to_global(
point3_type{x, y, p[2]});
85 template <
typename mask_t>
99 return trf.vector_to_global(
vector2_type{math::cos(p[1]), math::sin(p[1])});
Detray include(s).
Definition array_operators.hpp:18
get_scalar_t< A, T > dscalar
Scalar type for algebra A and value type T.
Definition algebra.hpp:64
get_vector2D_t< A, T > dvector2D
Two-dimensional vector type for algebra A and value type T.
Definition algebra.hpp:76
get_vector3D_t< A, T > dvector3D
Three-dimensional vector type for algebra A and value type T.
Definition algebra.hpp:80
get_transform3D_t< A, T > dtransform3D
Three-dimensional transform type for algebra A and value type T.
Definition algebra.hpp:84
get_point3D_t< A, T > dpoint3D
Three-dimensional point type for algebra A and value type T.
Definition algebra.hpp:72
get_point2D_t< A, T > dpoint2D
Two-dimensional point type for algebra A and value type T.
Definition algebra.hpp:68
Projection into a 3D cylindrical coordinate frame.
Definition cylindrical3D.hpp:20
static point3_type local_to_global(const transform3_type &trf, const point3_type &p)
This method transforms from a local 3D cylindrical point to a point in the global cartesian 3D frame.
Definition cylindrical3D.hpp:70
static point3_type local_to_global(const transform3_type &trf, const mask_t &, const loc_point &p, const vector3_type &)
This method transforms from a local 3D cylindrical point to a point in the global cartesian 3D frame.
Definition cylindrical3D.hpp:86
static point3_type global_to_local_3D(const transform3_type &trf, const point3_type &p, const vector3_type &dir)
This method transforms a point from a global cartesian 3D frame to a local 3D cylindrical point.
Definition cylindrical3D.hpp:46
dscalar< algebra_t > scalar_type
Scalar type associated with the algebra backend.
Definition cylindrical3D.hpp:24
static vector3_type normal(const transform3_type &trf, const point3_type &p)
Evaluate the surface normal at a local cylindrical position.
Definition cylindrical3D.hpp:96
dpoint2D< algebra_t > point2_type
Two-dimensional point type.
Definition cylindrical3D.hpp:26
static loc_point global_to_local(const transform3_type &trf, const point3_type &p, const vector3_type &)
This method transforms a point from a global cartesian 3D frame to a local 3D cylindrical point.
Definition cylindrical3D.hpp:58
dpoint3D< algebra_t > point3_type
Three-dimensional point type.
Definition cylindrical3D.hpp:28
algebra_t algebra_type
Algebra backend used by this coordinate frame.
Definition cylindrical3D.hpp:22
dvector2D< algebra_t > vector2_type
Two-dimensional vector type.
Definition cylindrical3D.hpp:30
point3_type loc_point
Local point type in 3D cylindrical coordinates.
Definition cylindrical3D.hpp:37
dtransform3D< algebra_t > transform3_type
Three-dimensional transform type.
Definition cylindrical3D.hpp:34
dvector3D< algebra_t > vector3_type
Three-dimensional vector type.
Definition cylindrical3D.hpp:32