Class to transform between world and local coordinates. More...
#include <LocalTransformationGeo.h>
Public Types | |
using | GlobalPoint_t = geo::Point_t |
Type for global 3D point. More... | |
using | GlobalVector_t = geo::Vector_t |
Type for global 3D displacement. More... | |
using | LocalPoint_t = LocalPoint |
Type for local 3D point. More... | |
using | LocalVector_t = LocalVector |
Type for local 3D displacement. More... | |
using | TransformationMatrix_t = StoredMatrix |
Type of transformation matrix. More... | |
Public Types inherited from geo::LocalTransformation< StoredMatrix > | |
using | TransformationMatrix_t = StoredMatrix |
Type of transformation matrix. More... | |
Public Member Functions | |
LocalTransformationGeo (std::vector< TGeoNode const * > const &path, size_t depth) | |
Constructor: uses the specified transformation matrix. More... | |
GlobalPoint_t | toWorldCoords (LocalPoint_t const &local) const |
Transforms a point from local frame to world frame. More... | |
GlobalVector_t | toWorldCoords (LocalVector_t const &local) const |
Transforms a vector from local frame to world frame. More... | |
LocalPoint_t | toLocalCoords (GlobalPoint_t const &world) const |
Transforms a point from world frame to local frame. More... | |
LocalVector_t | toLocalCoords (GlobalVector_t const &world) const |
Transforms a vector from world frame to local frame. More... | |
LocalTransformationGeo (TransformationMatrix_t const &matrix) | |
Constructor: uses the specified transformation matrix. More... | |
LocalTransformationGeo (TransformationMatrix_t &&matrix) | |
Public Member Functions inherited from geo::LocalTransformation< StoredMatrix > | |
LocalTransformation (std::vector< TGeoNode const * > const &path, size_t depth) | |
Constructor: chains the transformations from the specified nodes. More... | |
LocalTransformation (std::vector< TGeoNode const * > const &path) | |
Constructor: chains the transformations from all specified nodes. More... | |
template<typename ITER > | |
LocalTransformation (ITER begin, ITER end) | |
Constructor: sequence of transformations from a node path. More... | |
void | LocalToWorld (double const *local, double *world) const |
Transforms a point from local frame to world frame. More... | |
void | LocalToWorldVect (double const *local, double *world) const |
Transforms a vector from local frame to world frame. More... | |
void | WorldToLocal (double const *world, double *local) const |
Transforms a point from world frame to local frame. More... | |
void | WorldToLocalVect (const double *world, double *local) const |
Transforms a vector from world frame to local frame. More... | |
TransformationMatrix_t const & | Matrix () const |
Direct access to the transformation matrix. More... | |
template<> | |
void | LocalToWorld (double const *local, double *world) const |
template<> | |
void | LocalToWorldVect (double const *local, double *world) const |
template<> | |
void | WorldToLocal (double const *world, double *local) const |
template<> | |
void | WorldToLocalVect (const double *world, double *local) const |
template<> | |
void | LocalToWorld (double const *local, double *world) const |
template<> | |
void | LocalToWorldVect (double const *local, double *world) const |
template<> | |
void | WorldToLocal (double const *world, double *local) const |
template<> | |
void | WorldToLocalVect (const double *world, double *local) const |
LocalTransformation (TransformationMatrix_t const &matrix) | |
Constructor: uses the specified local-to-world transformation. More... | |
LocalTransformation (TransformationMatrix_t &&matrix) | |
template<typename DestPoint , typename SrcPoint , typename = std::enable_if_t<!std::is_same<SrcPoint, DestPoint>::value>> | |
DestPoint | LocalToWorld (SrcPoint const &local) const |
Transforms a point from local frame to world frame. More... | |
template<typename Point > | |
Point | LocalToWorld (Point const &local) const |
template<typename DestVector , typename SrcVector , typename = std::enable_if_t<!std::is_same<SrcVector, DestVector>::value>> | |
DestVector | LocalToWorldVect (SrcVector const &local) const |
Transforms a vector from local frame to world frame. More... | |
template<typename Vector > | |
Vector | LocalToWorldVect (Vector const &local) const |
template<typename DestPoint , typename SrcPoint , typename = std::enable_if_t<!std::is_same<SrcPoint, DestPoint>::value>> | |
DestPoint | WorldToLocal (SrcPoint const &world) const |
Transforms a point from world frame to local frame. More... | |
template<typename Point > | |
Point | WorldToLocal (Point const &world) const |
template<typename DestVector , typename SrcVector , typename = std::enable_if_t<!std::is_same<SrcVector, DestVector>::value>> | |
DestVector | WorldToLocalVect (SrcVector const &world) const |
Transforms a vector from world frame to local frame. More... | |
template<typename Vector > | |
Vector | WorldToLocalVect (Vector const &world) const |
Private Types | |
using | Base_t = geo::LocalTransformation< StoredMatrix > |
Additional Inherited Members | |
Protected Member Functions inherited from geo::LocalTransformation< StoredMatrix > | |
template<typename DestPoint , typename SrcPoint > | |
DestPoint | LocalToWorldImpl (SrcPoint const &local) const |
template<typename DestVector , typename SrcVector > | |
DestVector | LocalToWorldVectImpl (SrcVector const &local) const |
template<typename DestPoint , typename SrcPoint > | |
DestPoint | WorldToLocalImpl (SrcPoint const &world) const |
template<typename DestVector , typename SrcVector > | |
DestVector | WorldToLocalVectImpl (SrcVector const &world) const |
template<> | |
DestPoint | WorldToLocalImpl (SrcPoint const &world) const |
template<> | |
DestVector | WorldToLocalVectImpl (SrcVector const &world) const |
template<> | |
DestPoint | LocalToWorldImpl (SrcPoint const &local) const |
template<> | |
DestVector | LocalToWorldVectImpl (SrcVector const &local) const |
Protected Attributes inherited from geo::LocalTransformation< StoredMatrix > | |
TransformationMatrix_t | fGeoMatrix |
local to world transform More... | |
Class to transform between world and local coordinates.
StoredMatrix | type of transformation matrix internally stored |
LocalPoint | type representing a local point |
LocalVector | type representing a local displacement vector |
geo::LocalTransformation
This class provides two directions of transformations (world to local and the other way around), for points and for vectors.
Compared to geo::LocalTransformation
, this class offers a simplified interface for the supported vectors: toWorldCoords()
and toLocalCoords()
apply the correct transformation depending on whether the argument is a point or a displacement vector.
geo::Point_t
and geo::Vector_t
are explicitly tagged to be in the global coordinate frame, but mechanically it will work just the same. Definition at line 53 of file LocalTransformationGeo.h.
|
private |
Definition at line 54 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalPoint_t = geo::Point_t |
Type for global 3D point.
Definition at line 57 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalVector_t = geo::Vector_t |
Type for global 3D displacement.
Definition at line 58 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalPoint_t = LocalPoint |
Type for local 3D point.
Definition at line 59 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalVector_t = LocalVector |
Type for local 3D displacement.
Definition at line 60 of file LocalTransformationGeo.h.
using geo::LocalTransformation< StoredMatrix >::TransformationMatrix_t = StoredMatrix |
Type of transformation matrix.
Definition at line 68 of file LocalTransformation.h.
|
inline |
Constructor: uses the specified transformation matrix.
matrix | the transformation matrix to be used |
The specified matrix is copied into a local copy.
Definition at line 71 of file LocalTransformationGeo.h.
|
inline |
Definition at line 73 of file LocalTransformationGeo.h.
|
inline |
Constructor: uses the specified transformation matrix.
path | the path of ROOT geometry nodes |
depth | the index in the path of the last node to be considered |
The specified matrix is copied into a local copy.
Definition at line 85 of file LocalTransformationGeo.h.
|
inline |
Transforms a point from world frame to local frame.
world | world coordinates [cm] |
The full transformation is applied. Fox example:
local
will be a LocalPoint_t
containing the local coordinates of the specified point.
Definition at line 134 of file LocalTransformationGeo.h.
|
inline |
Transforms a vector from world frame to local frame.
world | world coordinates: [0] x, [1] y, [2] z [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
Definition at line 145 of file LocalTransformationGeo.h.
|
inline |
Transforms a point from local frame to world frame.
local | local coordinates [cm] |
The full transformation is applied. Fox example:
center
will be a geo::Point_t
containing the world coordinates of the center of the volume, which is usually represented by the origin in the local coordinates.
Definition at line 104 of file LocalTransformationGeo.h.
|
inline |
Transforms a vector from local frame to world frame.
local | local coordinates [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
Definition at line 116 of file LocalTransformationGeo.h.