![]() |
LArSoft
v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
|
Class to transform between world and local coordinates. More...
#include "LocalTransformationGeo.h"
Public Types | |
using | GlobalPoint_t = Point_t |
Type for global 3D point. More... | |
using | GlobalVector_t = 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 = 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 46 of file LocalTransformationGeo.h.
|
private |
Definition at line 47 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalPoint_t = Point_t |
Type for global 3D point.
Definition at line 50 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::GlobalVector_t = Vector_t |
Type for global 3D displacement.
Definition at line 51 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalPoint_t = LocalPoint |
Type for local 3D point.
Definition at line 52 of file LocalTransformationGeo.h.
using geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::LocalVector_t = LocalVector |
Type for local 3D displacement.
Definition at line 53 of file LocalTransformationGeo.h.
using geo::LocalTransformation< StoredMatrix >::TransformationMatrix_t = StoredMatrix |
Type of transformation matrix.
Definition at line 64 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 64 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 65 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 75 of file LocalTransformationGeo.h.
|
inherited |
Definition at line 21 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 162 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 167 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inherited |
Definition at line 34 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 200 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 205 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
Direct access to the transformation matrix.
Definition at line 300 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 126 of file LocalTransformationGeo.h.
Referenced by geo::AuxDetSensitiveGeo::toLocalCoords(), geo::AuxDetGeo::toLocalCoords(), geo::OpDetGeo::toLocalCoords(), geo::TPCGeo::toLocalCoords(), geo::CryostatGeo::toLocalCoords(), geo::WireGeo::toLocalCoords(), and geo::PlaneGeo::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 139 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 94 of file LocalTransformationGeo.h.
Referenced by geo::PlaneGeo::ComposePoint(), geo::OpDetGeo::Height(), geo::AuxDetSensitiveGeo::toWorldCoords(), geo::AuxDetGeo::toWorldCoords(), geo::OpDetGeo::toWorldCoords(), geo::TPCGeo::toWorldCoords(), geo::CryostatGeo::toWorldCoords(), geo::WireGeo::toWorldCoords(), and geo::PlaneGeo::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 107 of file LocalTransformationGeo.h.
|
inherited |
|
inherited |
Definition at line 47 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 250 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 255 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
Definition at line 60 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 288 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 293 of file LocalTransformation.h.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
local to world transform
Definition at line 303 of file LocalTransformation.h.