10 #ifndef LARCOREALG_GEOMETRY_LOCALTRANSFORMATION_H 11 #define LARCOREALG_GEOMETRY_LOCALTRANSFORMATION_H 18 #include <type_traits> 28 template <
typename Dest,
typename Src>
35 template <
typename StoredMatrix,
typename ITER>
39 template <
typename StoredMatrix>
58 template <
typename StoredMatrix>
112 template <
typename ITER>
136 void LocalToWorld(
double const* local,
double* world)
const;
157 template <
typename DestPoint,
162 return LocalToWorldImpl<DestPoint>(local);
164 template <
typename Po
int>
167 return LocalToWorldImpl<Point>(local);
182 void LocalToWorldVect(
double const* local,
double* world)
const;
195 template <
typename DestVector,
200 return LocalToWorldVectImpl<DestVector>(local);
202 template <
typename Vector>
205 return LocalToWorldVectImpl<Vector>(local);
226 void WorldToLocal(
double const* world,
double* local)
const;
245 template <
typename DestPoint,
250 return WorldToLocalImpl<DestPoint>(world);
252 template <
typename Po
int>
255 return WorldToLocalImpl<Point>(world);
270 void WorldToLocalVect(
const double* world,
double* local)
const;
283 template <
typename DestVector,
288 return WorldToLocalVectImpl<DestVector>(world);
290 template <
typename Vector>
293 return WorldToLocalVectImpl<Vector>(world);
303 template <
typename DestPo
int,
typename SrcPo
int>
304 DestPoint LocalToWorldImpl(SrcPoint
const& local)
const;
306 template <
typename DestVector,
typename SrcVector>
307 DestVector LocalToWorldVectImpl(SrcVector
const& local)
const;
309 template <
typename DestPo
int,
typename SrcPo
int>
310 DestPoint WorldToLocalImpl(SrcPoint
const& world)
const;
312 template <
typename DestVector,
typename SrcVector>
313 DestVector WorldToLocalVectImpl(SrcVector
const& world)
const;
318 template <
typename Dest,
typename Src>
322 std::forward<Src>(trans));
334 #endif // LARCOREALG_GEOMETRY_LOCALTRANSFORMATION_H
decltype(auto) convertTransformationMatrix(Src &&trans)
Converts a transformation matrix into Dest format.
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
static StoredMatrix transformationFromPath(ITER begin, ITER end)
Builds a matrix to go from local to world coordinates in one step.
std::tuple< double, double, const reco::ClusterHit3D * > Point
Definitions used by the VoronoiDiagram algorithm.
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Namespace collecting geometry-related classes utilities.
std::vector< TGeoNode const * >::const_iterator GeoNodeIterator_t