LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
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 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... | |
void | LocalToWorld (double const *local, double *world) const |
Transforms a point from local frame to world frame. More... | |
template<> | |
void | LocalToWorld (double const *local, double *world) const |
template<> | |
void | LocalToWorld (double const *local, double *world) const |
void | LocalToWorldVect (double const *local, double *world) const |
Transforms a vector from local frame to world frame. More... | |
template<> | |
void | LocalToWorldVect (double const *local, double *world) const |
template<> | |
void | LocalToWorldVect (double const *local, double *world) const |
void | WorldToLocal (double const *world, double *local) const |
Transforms a point from world frame to local frame. More... | |
template<> | |
void | WorldToLocal (double const *world, double *local) const |
template<> | |
void | WorldToLocal (double const *world, double *local) const |
void | WorldToLocalVect (const double *world, double *local) const |
Transforms a vector from world frame to local frame. More... | |
template<> | |
void | WorldToLocalVect (const double *world, double *local) const |
template<> | |
void | WorldToLocalVect (const double *world, double *local) const |
TransformationMatrix_t const & | Matrix () const |
Direct access to the transformation matrix. More... | |
LocalTransformationGeo (TransformationMatrix_t const &matrix) | |
Constructor: uses the specified transformation matrix. More... | |
LocalTransformationGeo (TransformationMatrix_t &&matrix) | |
Constructor: uses the specified transformation matrix. More... | |
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 |
Transforms a point from local frame to world frame. More... | |
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 |
Transforms a vector from local frame to world frame. More... | |
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 |
Transforms a point from world frame to local frame. More... | |
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 |
Transforms a vector from world frame to local frame. More... | |
Protected Member Functions | |
template<typename DestPoint , typename SrcPoint > | |
DestPoint | LocalToWorldImpl (SrcPoint const &local) const |
template<> | |
DestPoint | LocalToWorldImpl (SrcPoint const &local) const |
template<typename DestVector , typename SrcVector > | |
DestVector | LocalToWorldVectImpl (SrcVector const &local) const |
template<> | |
DestVector | LocalToWorldVectImpl (SrcVector const &local) const |
template<typename DestPoint , typename SrcPoint > | |
DestPoint | WorldToLocalImpl (SrcPoint const &world) const |
template<> | |
DestPoint | WorldToLocalImpl (SrcPoint const &world) const |
template<typename DestVector , typename SrcVector > | |
DestVector | WorldToLocalVectImpl (SrcVector const &world) const |
template<> | |
DestVector | WorldToLocalVectImpl (SrcVector const &world) const |
Protected Attributes | |
TransformationMatrix_t | fGeoMatrix |
local to world transform More... | |
Private Types | |
using | Base_t = geo::LocalTransformation< StoredMatrix > |
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 50 of file LocalTransformationGeo.h.
|
private |
Definition at line 51 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalPoint_t = geo::Point_t |
Type for global 3D point.
Definition at line 54 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalVector_t = geo::Vector_t |
Type for global 3D displacement.
Definition at line 55 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalPoint_t = LocalPoint |
Type for local 3D point.
Definition at line 56 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalVector_t = LocalVector |
Type for local 3D displacement.
Definition at line 57 of file LocalTransformationGeo.h.
using geo::LocalTransformation< StoredMatrix >::TransformationMatrix_t = StoredMatrix |
Type of transformation matrix.
Definition at line 62 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 68 of file LocalTransformationGeo.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 69 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 79 of file LocalTransformationGeo.h.
|
inherited |
Definition at line 23 of file GeoVectorLocalTransformation.cxx.
References geo::vect::fillCoords().
|
inherited |
|
inherited |
Transforms a point from local frame to world frame.
local | local coordinates: [0] x, [1] y, [2] z [cm] |
world | (output) corresponding world coordinates [cm] |
The full transformation is applied. Fox example:
center
will contain the world coordinates of the center of the volume, which is usually represented by the origin in the local coordinates.
In-place replacement is not supported: world
and local
buffers are assumed not to, and must not, overlap.
Referenced by geo::GeometryCore::DetectorEnclosureBox().
|
inlineinherited |
Transforms a point from local frame to world frame.
SrcPoint | type of the input (local) vector |
DestPoint | type of the output (world) vector (default: as Point ) |
local | local coordinates [cm] |
The full transformation is applied. Fox example:
center
will be a TVector3
containing the world coordinates of the center of the volume, which is usually represented by the origin in the local coordinates (a TVector3 is by default constructed to point to the origin).
Definition at line 160 of file LocalTransformation.h.
|
inlineinherited |
Transforms a point from local frame to world frame.
SrcPoint | type of the input (local) vector |
DestPoint | type of the output (world) vector (default: as Point ) |
local | local coordinates [cm] |
The full transformation is applied. Fox example:
center
will be a TVector3
containing the world coordinates of the center of the volume, which is usually represented by the origin in the local coordinates (a TVector3 is by default constructed to point to the origin).
Definition at line 165 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inherited |
Definition at line 37 of file GeoVectorLocalTransformation.cxx.
References geo::vect::fillCoords().
|
inherited |
|
inherited |
Transforms a vector from local frame to world frame.
local | local coordinates: [0] x, [1] y, [2] z [cm] |
world | (output) corresponding world coordinates [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
In-place replacement is not supported: world
and local
buffers are assumed not to, and must not, overlap.
|
inlineinherited |
Transforms a vector from local frame to world frame.
SrcVector | type of the input (local) vector |
DestVector | type of output (world) vector (default: as Vector ) |
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 198 of file LocalTransformation.h.
|
inlineinherited |
Transforms a vector from local frame to world frame.
SrcVector | type of the input (local) vector |
DestVector | type of output (world) vector (default: as Vector ) |
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 203 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
Direct access to the transformation matrix.
Definition at line 298 of file LocalTransformation.h.
Referenced by geo::AuxDetGeo::AuxDetGeo(), and geo::TPCGeo::TPCGeo().
|
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 130 of file LocalTransformationGeo.h.
Referenced by geo::AuxDetSensitiveGeo::toLocalCoords(), geo::AuxDetGeo::toLocalCoords(), geo::OpDetGeo::toLocalCoords(), geo::WireGeo::toLocalCoords(), geo::CryostatGeo::toLocalCoords(), and geo::TPCGeo::toLocalCoords().
|
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 143 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 98 of file LocalTransformationGeo.h.
Referenced by geo::OpDetGeo::Height(), geo::AuxDetSensitiveGeo::toWorldCoords(), geo::AuxDetGeo::toWorldCoords(), geo::OpDetGeo::toWorldCoords(), geo::CryostatGeo::toWorldCoords(), geo::WireGeo::toWorldCoords(), and geo::TPCGeo::toWorldCoords().
|
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 111 of file LocalTransformationGeo.h.
|
inherited |
|
inherited |
Definition at line 51 of file GeoVectorLocalTransformation.cxx.
References geo::vect::fillCoords().
|
inherited |
Transforms a point from world frame to local frame.
world | world coordinates: [0] x, [1] y, [2] z [cm] |
local | (output) corresponding local coordinates [cm] |
The full transformation is applied. Fox example:
local
will contain the local coordinates of the specified point.
In-place replacement is not supported: world
and local
buffers are assumed not to, and must not, overlap.
|
inlineinherited |
Transforms a point from world frame to local frame.
SrcPoint | type of the input (local) vector |
DestPoint | type of the output (world) vector (default: as Point ) |
world | world coordinates [cm] |
The full transformation is applied. Fox example:
local
will be a TVector3
containing the local coordinates of the specified point.
Definition at line 248 of file LocalTransformation.h.
|
inlineinherited |
Transforms a point from world frame to local frame.
SrcPoint | type of the input (local) vector |
DestPoint | type of the output (world) vector (default: as Point ) |
world | world coordinates [cm] |
The full transformation is applied. Fox example:
local
will be a TVector3
containing the local coordinates of the specified point.
Definition at line 253 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
Definition at line 65 of file GeoVectorLocalTransformation.cxx.
References geo::vect::fillCoords(), and scale.
|
inherited |
Transforms a vector from world frame to local frame.
world | world coordinates: [0] x, [1] y, [2] z [cm] |
local | (output) corresponding local coordinates [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
In-place replacement is not supported: world
and local
buffers are assumed not to, and must not, overlap.
|
inlineinherited |
Transforms a vector from world frame to local frame.
SrcVector | type of the input (local) vector |
DestVector | type of output (world) vector (default: as Vector ) |
world | coordinates [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
Definition at line 286 of file LocalTransformation.h.
|
inlineinherited |
Transforms a vector from world frame to local frame.
SrcVector | type of the input (local) vector |
DestVector | type of output (world) vector (default: as Vector ) |
world | coordinates [cm] |
The translation is not applied, since the argument is supposed to be a vector, relative difference between two points.
Definition at line 291 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
local to world transform
Definition at line 301 of file LocalTransformation.h.