8 #ifndef LARCOREALG_GEOMETRY_LOCALTRANSFORMATION_H 9 #define LARCOREALG_GEOMETRY_LOCALTRANSFORMATION_H 16 #include <type_traits> 26 template <
typename Dest,
typename Src>
38 template <
typename StoredMatrix,
typename ITER>
42 template <
typename StoredMatrix>
60 template <
typename StoredMatrix>
114 template <
typename ITER>
138 void LocalToWorld(
double const* local,
double* world)
const;
159 template <
typename DestPoint,
164 return LocalToWorldImpl<DestPoint>(local);
166 template <
typename Po
int>
169 return LocalToWorldImpl<Point>(local);
184 void LocalToWorldVect(
double const* local,
double* world)
const;
197 template <
typename DestVector,
202 return LocalToWorldVectImpl<DestVector>(local);
204 template <
typename Vector>
207 return LocalToWorldVectImpl<Vector>(local);
228 void WorldToLocal(
double const* world,
double* local)
const;
247 template <
typename DestPoint,
252 return WorldToLocalImpl<DestPoint>(world);
254 template <
typename Po
int>
257 return WorldToLocalImpl<Point>(world);
272 void WorldToLocalVect(
const double* world,
double* local)
const;
285 template <
typename DestVector,
290 return WorldToLocalVectImpl<DestVector>(world);
292 template <
typename Vector>
295 return WorldToLocalVectImpl<Vector>(world);
305 template <
typename DestPo
int,
typename SrcPo
int>
306 DestPoint LocalToWorldImpl(SrcPoint
const& local)
const;
308 template <
typename DestVector,
typename SrcVector>
309 DestVector LocalToWorldVectImpl(SrcVector
const& local)
const;
311 template <
typename DestPo
int,
typename SrcPo
int>
312 DestPoint WorldToLocalImpl(SrcPoint
const& world)
const;
314 template <
typename DestVector,
typename SrcVector>
315 DestVector WorldToLocalVectImpl(SrcVector
const& world)
const;
320 template <
typename Dest,
typename Src>
324 std::forward<Src>(trans));
336 #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.
std::vector< GeoNodePathEntry >::const_iterator GeoNodeIterator_t
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.