LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
geo::Decomposer< Vector, Point, ProjVector > Class Template Reference

Class with methods to decompose and compose back vectors. More...

#include "Decomposer.h"

Public Types

using Point_t = typename PlaneDecomposer_t::Point_t
 Type for a vector. More...
 
using Vector_t = typename PlaneDecomposer_t::Vector_t
 
using Projection_t = typename PlaneDecomposer_t::Projection_t
 Type representing the projection vector. More...
 
using Distance_t = typename PlaneDecomposer_t::Distance_t
 Type representing the signed distance from the projection plane. More...
 
using DecomposedVector_t = typename PlaneDecomposer_t::DecomposedVector_t
 Type representing a decomposition on the plane. More...
 
using AffinePlaneBase_t = typename PlaneDecomposer_t::AffinePlaneBase_t
 Type of vector base for the space. More...
 

Public Member Functions

 Decomposer ()=default
 Default constructor: projection on (x,y) with origin (0, 0, 0) More...
 
 Decomposer (AffinePlaneBase_t &&base)
 Constructor: specifies a base (an origin and two direction vectors) More...
 
 Decomposer (AffinePlaneBase_t const &base)
 Constructor: specifies a base (an origin and two direction vectors) More...
 
Setters
void SetBase (AffinePlaneBase_t &&base)
 Change projection base. More...
 
void SetBase (AffinePlaneBase_t const &base)
 Change projection base. More...
 
void SetOrigin (Point_t const &point)
 Change the 3D point of the reference frame origin. More...
 
void SetMainDir (Vector_t const &dir)
 Change the main direction of the projection base. More...
 
void SetSecondaryDir (Vector_t const &dir)
 Change the secondary direction of the projection base. More...
 
Reference directions and point
Point_t ReferencePoint () const
 Returns the reference point for the plane coordinate, as a 3D point. More...
 
AffinePlaneBase_t const & Base () const
 Returns the base of the decomposition. More...
 
Vector_t const & MainDir () const
 Returns the plane main axis direction. More...
 
Vector_t const & SecondaryDir () const
 Returns the plane secondary axis direction. More...
 
Vector_t const & NormalDir () const
 Returns the plane normal axis direction. More...
 
Decomposition of a 3D point
auto PointMainComponent (Point_t const &point) const
 Returns the main component of a point. More...
 
auto PointSecondaryComponent (Point_t const &point) const
 Returns the secondary component of a point. More...
 
auto PointNormalComponent (Point_t const &point) const
 Returns the secondary component of a point. More...
 
Projection_t ProjectPointOnPlane (Point_t const &point) const
 Returns the projection of the specified point on the plane. More...
 
DecomposedVector_t DecomposePoint (Point_t const &point) const
 Decomposes a 3D point in two components. More...
 
Decomposition of a 3D vector
auto VectorMainComponent (Vector_t const &v) const
 Returns the main component of a vector. More...
 
auto VectorSecondaryComponent (Vector_t const &v) const
 Returns the secondary component of a vector. More...
 
auto VectorNormalComponent (Vector_t const &v) const
 Returns the secondary component of a vector. More...
 
Projection_t ProjectVectorOnPlane (Vector_t const &v) const
 Returns the projection of the specified vector on the plane. More...
 
DecomposedVector_t DecomposeVector (Vector_t const &v) const
 Decomposes a 3D vector in two components. More...
 
double Angle (Vector_t const &v) const
 Returns the angle of the projection from main direction. More...
 
Decomposition of a projection vector
auto MainComponent (Projection_t const &v) const
 Returns the main component of a projection vector. More...
 
auto SecondaryComponent (Projection_t const &v) const
 Returns the secondary component of a projection vector. More...
 
Composition of a point
Point_t ComposePoint (DecomposedVector_t const &decomp) const
 Returns the 3D point from composition of projection and distance. More...
 
Point_t ComposePoint (double distance, Projection_t const &proj) const
 Returns the 3D point from composition of projection and distance. More...
 
Composition of a vector
Vector_t ComposeVector (DecomposedVector_t const &decomp) const
 Returns the 3D vector from composition of projection and distance. More...
 
Vector_t ComposeVector (double distance, Projection_t const &proj) const
 Returns the 3D vector from composition of projection and distance. More...
 

Private Types

using PlaneDecomposer_t = PlaneDecomposer< Vector, Point, ProjVector >
 

Private Member Functions

PlaneDecomposer_t const & Plane () const
 Returns the plane decomposer. More...
 

Private Attributes

PlaneDecomposer_t fPlaneDecomp
 Manages the projection on the plane. More...
 

Detailed Description

template<typename Vector, typename Point, typename ProjVector>
class geo::Decomposer< Vector, Point, ProjVector >

Class with methods to decompose and compose back vectors.


Template Parameters
Vectortype to represent 3D vectors
Pointtype to represent 3D points
ProjVectortype to represent 2D projection on plane

These methods deal with projection of points and vectors on a plane and the axis orthogonal to it.

Definition at line 383 of file Decomposer.h.

Member Typedef Documentation

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::AffinePlaneBase_t = typename PlaneDecomposer_t::AffinePlaneBase_t

Type of vector base for the space.

Definition at line 409 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::DecomposedVector_t = typename PlaneDecomposer_t::DecomposedVector_t

Type representing a decomposition on the plane.

Definition at line 406 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Distance_t = typename PlaneDecomposer_t::Distance_t

Type representing the signed distance from the projection plane.

Definition at line 403 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::PlaneDecomposer_t = PlaneDecomposer<Vector, Point, ProjVector>
private

Definition at line 385 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Point_t = typename PlaneDecomposer_t::Point_t

Type for a vector.

Definition at line 396 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Projection_t = typename PlaneDecomposer_t::Projection_t

Type representing the projection vector.

Definition at line 400 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Vector_t = typename PlaneDecomposer_t::Vector_t

Definition at line 397 of file Decomposer.h.

Constructor & Destructor Documentation

template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( )
default

Default constructor: projection on (x,y) with origin (0, 0, 0)

template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( AffinePlaneBase_t &&  base)
inline

Constructor: specifies a base (an origin and two direction vectors)

Definition at line 415 of file Decomposer.h.

415 : fPlaneDecomp(std::move(base)) {}
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( AffinePlaneBase_t const &  base)
inline

Constructor: specifies a base (an origin and two direction vectors)

Definition at line 418 of file Decomposer.h.

418 : fPlaneDecomp(base) {}
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387

Member Function Documentation

template<typename Vector, typename Point, typename ProjVector>
double geo::Decomposer< Vector, Point, ProjVector >::Angle ( Vector_t const &  v) const
inline

Returns the angle of the projection from main direction.

Parameters
vvector to get the angle of
Returns
the angle of the projection from main direction, in radians

The projection on the plane is taken, and its angle from the main direction is returned. That angle is defined in the range $ \left[ -\pi, \pi \right] $, so that it is 0 for a projection matching the main direction and $ \pi/2 $ for one matching the secondary direction.

Definition at line 579 of file Decomposer.h.

579 { return Plane().Angle(v); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
double Angle(Vector_t const &v) const
Returns the angle of the projection from main direction.
Definition: Decomposer.h:323
template<typename Vector, typename Point, typename ProjVector>
AffinePlaneBase_t const& geo::Decomposer< Vector, Point, ProjVector >::Base ( ) const
inline

Returns the base of the decomposition.

Definition at line 447 of file Decomposer.h.

447 { return Plane().Base(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
AffinePlaneBase_t const & Base() const
Returns the complete base representation.
Definition: Decomposer.h:242
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ComposePoint ( DecomposedVector_t const &  decomp) const
inline

Returns the 3D point from composition of projection and distance.

Parameters
decompdecomposed point
Returns
the 3D point from composition of projection and distance
See also
DecomposePoint(), ComposePoint(double, Projection_t const&)

See ComposePoint(double, Projection_t const&) for details.

Definition at line 605 of file Decomposer.h.

Referenced by geo::PlaneGeo::ComposePoint().

606  {
607  return ComposePoint(decomp.distance, decomp.projection);
608  }
Point_t ComposePoint(DecomposedVector_t const &decomp) const
Returns the 3D point from composition of projection and distance.
Definition: Decomposer.h:605
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ComposePoint ( double  distance,
Projection_t const &  proj 
) const
inline

Returns the 3D point from composition of projection and distance.

Parameters
distancedistance of the target point from the wire plane
projprojection of the target point on the wire plane
Returns
the 3D point from composition of projection and distance
See also
DecomposePoint()

The returned point is the sum of two 3D contributions:

  1. a vector parallel to the plane normal, with norm the input distance
  2. a vector lying on the plane, whose projection via ProjectPointOnPlane() gives the input projection

Given the arbitrary definition of the projection reference, it is assumed that the same convention is used as in ProjectPointOnPlane() and PointNormalComponent().

Definition at line 628 of file Decomposer.h.

629  {
630  return ReferencePoint() + ComposeVector(distance, proj);
631  }
Vector_t ComposeVector(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
Definition: Decomposer.h:646
Point_t ReferencePoint() const
Returns the reference point for the plane coordinate, as a 3D point.
Definition: Decomposer.h:444
Float_t proj
Definition: plot.C:35
template<typename Vector, typename Point, typename ProjVector>
Vector_t geo::Decomposer< Vector, Point, ProjVector >::ComposeVector ( DecomposedVector_t const &  decomp) const
inline

Returns the 3D vector from composition of projection and distance.

Parameters
decompdecomposed vector
Returns
the 3D vector from composition of projection and distance
See also
DecomposeVector(), ComposeVector(double, Projection_t const&)

See ComposeVector(double, Projection_t const&) for details.

Definition at line 646 of file Decomposer.h.

Referenced by geo::PlaneGeo::ComposeVector().

647  {
648  return ComposeVector(decomp.distance, decomp.projection);
649  }
Vector_t ComposeVector(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
Definition: Decomposer.h:646
template<typename Vector, typename Point, typename ProjVector>
Vector_t geo::Decomposer< Vector, Point, ProjVector >::ComposeVector ( double  distance,
Projection_t const &  proj 
) const
inline

Returns the 3D vector from composition of projection and distance.

Parameters
distancedistance of the target point from the wire plane
projprojection of the target point on the wire plane
Returns
the 3D vector from composition of projection and distance
See also
DecomposeVector()

The returned vector is the sum of two 3D vectors:

  1. a vector parallel to the plane normal, with norm the input distance
  2. a vector lying on the plane, whose projection via ProjectVectorOnPlane() gives the input projection

Given the arbitrary definition of the projection reference, it is assumed that the same convention is used as in ProjectVectorOnPlane() and VectorNormalComponent().

Definition at line 669 of file Decomposer.h.

670  {
671  return Plane().ComposeVector(proj) + distance * NormalDir();
672  }
Vector_t const & NormalDir() const
Returns the plane normal axis direction.
Definition: Decomposer.h:456
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
Vector_t ComposeVector(Projection_t const &projection) const
Returns the 3D vector from the specified projection.
Definition: Decomposer.h:344
Float_t proj
Definition: plot.C:35
template<typename Vector, typename Point, typename ProjVector>
DecomposedVector_t geo::Decomposer< Vector, Point, ProjVector >::DecomposePoint ( Point_t const &  point) const
inline

Decomposes a 3D point in two components.

Parameters
pointthe point to be decomposed
Returns
the two components of point, on the plane and orthogonal to it

The point is decomposed in:

  1. a component orthogonal to the plane, expressed as a signed real number
  2. a component lying on the plane, expressed as a 2D vector

The distance is obtained as by PointNormalComponent(). The projection on the plane is obtained following the same convention as ProjectPointOnPlane().

Definition at line 511 of file Decomposer.h.

Referenced by geo::PlaneGeo::DecomposePoint(), and geo::PlaneGeo::DecomposePointWidthDepth().

512  {
513  return DecomposeVector(Base().ToVector(point));
514  }
DecomposedVector_t DecomposeVector(Vector_t const &v) const
Decomposes a 3D vector in two components.
Definition: Decomposer.h:563
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:447
template<typename Vector, typename Point, typename ProjVector>
DecomposedVector_t geo::Decomposer< Vector, Point, ProjVector >::DecomposeVector ( Vector_t const &  v) const
inline

Decomposes a 3D vector in two components.

Parameters
vthe vector to be decomposed
Returns
the two components of vector, on the plane and orthogonal to it

The vector is decomposed in:

  1. a component orthogonal to the plane, expressed as a signed real number
  2. a component lying on the plane, expressed as a 2D vector

The distance is obtained as by VectorNormalComponent(). The projection on the plane is obtained following the same convention as ProjectVectorOnPlane().

Definition at line 563 of file Decomposer.h.

564  {
566  }
auto VectorNormalComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:531
Projection_t ProjectVectorOnPlane(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
Definition: Decomposer.h:544
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::MainComponent ( Projection_t const &  v) const
inline

Returns the main component of a projection vector.

Definition at line 587 of file Decomposer.h.

587 { return Plane().MainComponent(v); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
auto MainComponent(Projection_t const &v) const
Returns the main component of a projection vector.
Definition: Decomposer.h:253
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::MainDir ( ) const
inline

Returns the plane main axis direction.

Definition at line 450 of file Decomposer.h.

Referenced by geo::PlaneGeo::GetWireDirection(), and geo::PlaneGeo::WidthDir().

450 { return Plane().MainDir(); }
Vector_t const & MainDir() const
Returns the plane main axis direction.
Definition: Decomposer.h:236
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::NormalDir ( ) const
inline

Returns the plane normal axis direction.

Definition at line 456 of file Decomposer.h.

Referenced by geo::PlaneGeo::PrintPlaneInfo(), and geo::PlaneGeo::UpdateWireDir().

456 { return Base().NormalDir(); }
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:447
template<typename Vector, typename Point, typename ProjVector>
PlaneDecomposer_t const& geo::Decomposer< Vector, Point, ProjVector >::Plane ( ) const
inlineprivate

Returns the plane decomposer.

Definition at line 390 of file Decomposer.h.

390 { return fPlaneDecomp; }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointMainComponent ( Point_t const &  point) const
inline

Returns the main component of a point.

Definition at line 464 of file Decomposer.h.

465  {
466  return VectorMainComponent(Base().ToVector(point));
467  }
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:447
auto VectorMainComponent(Vector_t const &v) const
Returns the main component of a vector.
Definition: Decomposer.h:522
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointNormalComponent ( Point_t const &  point) const
inline

Returns the secondary component of a point.

Definition at line 476 of file Decomposer.h.

Referenced by geo::PlaneGeo::DistanceFromPlane().

477  {
478  return VectorNormalComponent(Base().ToVector(point));
479  }
auto VectorNormalComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:531
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:447
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointSecondaryComponent ( Point_t const &  point) const
inline

Returns the secondary component of a point.

Definition at line 470 of file Decomposer.h.

Referenced by geo::PlaneGeo::PlaneCoordinate().

471  {
472  return VectorSecondaryComponent(Base().ToVector(point));
473  }
auto VectorSecondaryComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:525
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:447
template<typename Vector, typename Point, typename ProjVector>
Projection_t geo::Decomposer< Vector, Point, ProjVector >::ProjectPointOnPlane ( Point_t const &  point) const
inline

Returns the projection of the specified point on the plane.

Parameters
pointthe 3D point to be projected, in world coordinates
Returns
a 2D vector representing the projection of point on the plane

The returned vector is a 2D vector expressing the projection of the point (from world coordinates) on the plane. The vector is expressed as $ ( m, s ) $, components following the main direction (MainDir()) and the secondary one (SecondaryDir()) respectively. The origin point is the one from ReferencePoint().

Definition at line 492 of file Decomposer.h.

Referenced by geo::PlaneGeo::PointWidthDepthProjection(), and geo::PlaneGeo::Projection().

493  {
494  return Plane().PointProjection(point);
495  }
Projection_t PointProjection(Point_t const &point) const
Returns the projection of the specified point on the plane.
Definition: Decomposer.h:286
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
template<typename Vector, typename Point, typename ProjVector>
Projection_t geo::Decomposer< Vector, Point, ProjVector >::ProjectVectorOnPlane ( Vector_t const &  v) const
inline

Returns the projection of the specified vector on the plane.

Parameters
vthe 3D vector to be projected, in world units
Returns
a 2D vector representing the projection of v on the plane

The returned vector is a 2D vector expressing the projection of the vector (from world units) on the wire plane. The vector is expressed as $ ( m, s ) $, components following the main direction (MainDir()) and the secondary one (SecondaryDir()) respectively.

Definition at line 544 of file Decomposer.h.

Referenced by geo::PlaneGeo::Projection(), and geo::PlaneGeo::VectorWidthDepthProjection().

545  {
546  return Plane().VectorProjection(v);
547  }
Projection_t VectorProjection(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
Definition: Decomposer.h:307
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ReferencePoint ( ) const
inline

Returns the reference point for the plane coordinate, as a 3D point.

Definition at line 444 of file Decomposer.h.

Referenced by geo::PlaneGeo::ProjectionReferencePoint().

444 { return Plane().ReferencePoint(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
Point_t ReferencePoint() const
Returns the reference point for the plane coordinate, as a 3D point.
Definition: Decomposer.h:233
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::SecondaryComponent ( Projection_t const &  v) const
inline

Returns the secondary component of a projection vector.

Definition at line 590 of file Decomposer.h.

590 { return Plane().SecondaryComponent(v); }
auto SecondaryComponent(Projection_t const &v) const
Returns the secondary component of a projection vector.
Definition: Decomposer.h:256
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::SecondaryDir ( ) const
inline

Returns the plane secondary axis direction.

Definition at line 453 of file Decomposer.h.

Referenced by geo::PlaneGeo::DepthDir(), geo::PlaneGeo::GetIncreasingWireDirection(), and geo::PlaneGeo::UpdateWidthDepthDir().

453 { return Plane().SecondaryDir(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
Vector_t const & SecondaryDir() const
Returns the plane secondary axis direction.
Definition: Decomposer.h:239
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetBase ( AffinePlaneBase_t &&  base)
inline

Change projection base.

Definition at line 424 of file Decomposer.h.

424 { fPlaneDecomp.SetBase(std::move(base)); }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
void SetBase(AffinePlaneBase_t &&base)
Change projection base.
Definition: Decomposer.h:213
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetBase ( AffinePlaneBase_t const &  base)
inline

Change projection base.

Definition at line 427 of file Decomposer.h.

427 { fPlaneDecomp.SetBase(base); }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
void SetBase(AffinePlaneBase_t &&base)
Change projection base.
Definition: Decomposer.h:213
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetMainDir ( Vector_t const &  dir)
inline

Change the main direction of the projection base.

Definition at line 433 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), and geo::PlaneGeo::UpdateWireDir().

void SetMainDir(Vector_t const &dir)
Change the main direction of the projection base.
Definition: Decomposer.h:222
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
TDirectory * dir
Definition: macro.C:5
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetOrigin ( Point_t const &  point)
inline

Change the 3D point of the reference frame origin.

Definition at line 430 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), geo::PlaneGeo::UpdateDecompWireOrigin(), and geo::PlaneGeo::UpdateWirePlaneCenter().

430 { fPlaneDecomp.SetOrigin(point); }
void SetOrigin(Point_t const &point)
Change the 3D point of the reference frame origin.
Definition: Decomposer.h:219
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetSecondaryDir ( Vector_t const &  dir)
inline

Change the secondary direction of the projection base.

Definition at line 436 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), geo::PlaneGeo::UpdateIncreasingWireDir(), and geo::PlaneGeo::UpdateWidthDepthDir().

void SetSecondaryDir(Vector_t const &dir)
Change the secondary direction of the projection base.
Definition: Decomposer.h:225
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:387
TDirectory * dir
Definition: macro.C:5
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorMainComponent ( Vector_t const &  v) const
inline

Returns the main component of a vector.

Definition at line 522 of file Decomposer.h.

522 { return Plane().VectorMainComponent(v); }
auto VectorMainComponent(Vector_t const &v) const
Returns the main component of a projection vector.
Definition: Decomposer.h:292
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorNormalComponent ( Vector_t const &  v) const
inline

Returns the secondary component of a vector.

Definition at line 531 of file Decomposer.h.

531 { return vect::dot(v, NormalDir()); }
Vector_t const & NormalDir() const
Returns the plane normal axis direction.
Definition: Decomposer.h:456
constexpr auto dot(Vector const &a, OtherVector const &b)
Return cross product of two vectors.
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorSecondaryComponent ( Vector_t const &  v) const
inline

Returns the secondary component of a vector.

Definition at line 525 of file Decomposer.h.

Referenced by geo::PlaneGeo::InterWireDistance(), and geo::PlaneGeo::PlaneCoordinateFrom().

526  {
527  return Plane().VectorSecondaryComponent(v);
528  }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:390
auto VectorSecondaryComponent(Vector_t const &v) const
Returns the secondary component of a projection vector.
Definition: Decomposer.h:295

Member Data Documentation

template<typename Vector, typename Point, typename ProjVector>
PlaneDecomposer_t geo::Decomposer< Vector, Point, ProjVector >::fPlaneDecomp
private

Manages the projection on the plane.

Definition at line 387 of file Decomposer.h.


The documentation for this class was generated from the following file: