LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
geoalgo::Line Class Reference

Representation of a 3D infinite line. Defines an infinite 3D line by having 2 points which completely determine the line along which the line extends. It hides the point attributes from users for
protecting the dimensionality. More...

#include "GeoLine.h"

Inheritance diagram for geoalgo::Line:
geoalgo::Cylinder geoalgo::DirectedLine

Public Member Functions

 Line ()
 Default constructor. More...
 
virtual ~Line ()
 Default destructor. More...
 
 Line (double const x1, double const y1, double const z1, double const x2, double const y2, double const z2)
 Alternative ctor (1) More...
 
 Line (Point_t const &pt1, Point_t const &pt2)
 Altenartive ctor (2) More...
 
Point_t const & Pt1 () const
 Start getter. More...
 
Point_t const & Pt2 () const
 Direction getter. More...
 
void Pt1 (double const x, double const y, double const z)
 Pt1 setter. More...
 
void Pt2 (double const x, double const y, double const z)
 Pt2 setter. More...
 
template<class T , class U >
 Line (T const &pt1, U const &pt2)
 Alternative ctor using template (3) More...
 
template<class T >
void Pt1 (T const &pt1)
 Pt1 setter template. More...
 
template<class T >
void Pt2 (T const &pt2)
 Pt2 setter template. More...
 

Protected Member Functions

void check_and_raise (Point_t const &p1, Point_t const &p2) const
 Compatibility check. More...
 

Protected Attributes

Point_t _pt1
 First point denoting infinite line. More...
 
Vector_t _pt2
 Second point denoting infinite line. More...
 

Detailed Description

Representation of a 3D infinite line. Defines an infinite 3D line by having 2 points which completely determine the line along which the line extends. It hides the point attributes from users for
protecting the dimensionality.

Definition at line 27 of file GeoLine.h.

Constructor & Destructor Documentation

geoalgo::Line::Line ( )

Default constructor.

Definition at line 6 of file GeoLine.cxx.

Referenced by ~Line().

6 : _pt1(3), _pt2(3) {}
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
virtual geoalgo::Line::~Line ( )
inlinevirtual

Default destructor.

Definition at line 34 of file GeoLine.h.

References check_and_raise(), Line(), Pt1(), pt1, Pt2(), pt2, x, x1, x2, y, y1, y2, and z.

34 {}
geoalgo::Line::Line ( double const  x1,
double const  y1,
double const  z1,
double const  x2,
double const  y2,
double const  z2 
)

Alternative ctor (1)

Definition at line 8 of file GeoLine.cxx.

References _pt1, _pt2, and check_and_raise().

14  : _pt1(x1, y1, z1), _pt2(x2, y2, z2)
15  {
17  }
Float_t y1[n_points_granero]
Definition: compare.C:5
Float_t x1[n_points_granero]
Definition: compare.C:5
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
Float_t y2[n_points_geant4]
Definition: compare.C:26
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
Float_t x2[n_points_geant4]
Definition: compare.C:26
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49
geoalgo::Line::Line ( Point_t const &  pt1,
Point_t const &  pt2 
)

Altenartive ctor (2)

Definition at line 19 of file GeoLine.cxx.

References check_and_raise().

19  : _pt1(pt1), _pt2(pt2)
20  {
22  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
TText * pt2
Definition: plot.C:64
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
TText * pt1
Definition: plot.C:61
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49
template<class T , class U >
geoalgo::Line::Line ( T const &  pt1,
U const &  pt2 
)
inline

Alternative ctor using template (3)

Definition at line 72 of file GeoLine.h.

72  : Line(Point_t(pt1), Point_t(pt2))
73  {}
TText * pt2
Definition: plot.C:64
Vector Point_t
Definition: GeoVector.h:204
TText * pt1
Definition: plot.C:61
Line()
Default constructor.
Definition: GeoLine.cxx:6

Member Function Documentation

void geoalgo::Line::check_and_raise ( Point_t const &  p1,
Point_t const &  p2 
) const
protected

Compatibility check.

Definition at line 49 of file GeoLine.cxx.

Referenced by geoalgo::DirectedLine::DirectedLine(), Line(), Pt1(), Pt2(), and ~Line().

50  {
51  if (p1.size() != 3)
52  throw GeoAlgoException("<<check_and_raise>> Pt1 is not 3 dimensional point!");
53  if (p2.size() != 3)
54  throw GeoAlgoException("<<check_and_raise>> Pt2 is not 3 dimensional point!");
55  if (p1 == p2)
56  throw GeoAlgoException("<<check_and_raise>> Two identical points not allowed for Line ctor!");
57  }
Point_t const & geoalgo::Line::Pt1 ( ) const

Start getter.

Definition at line 24 of file GeoLine.cxx.

References _pt1.

Referenced by geoalgo::GeoAlgo::_ClosestPt_(), geoalgo::GeoAlgo::_commonOrigin_(), geoalgo::GeoAlgo::_SqDist_(), geoalgo::GeoAlgo::ClosestPt(), geoalgo::GeoAlgo::commonOrigin(), geoalgo::GeoAlgo::SqDist(), and ~Line().

25  {
26  return _pt1;
27  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
void geoalgo::Line::Pt1 ( double const  x,
double const  y,
double const  z 
)

Pt1 setter.

Definition at line 33 of file GeoLine.cxx.

References _pt1, _pt2, check_and_raise(), x, y, and z.

34  {
35  _pt1[0] = x;
36  _pt1[1] = y;
37  _pt1[2] = z;
39  }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:276
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49
template<class T >
void geoalgo::Line::Pt1 ( T const &  pt1)
inline

Pt1 setter template.

Definition at line 77 of file GeoLine.h.

References check_and_raise().

78  {
79  _pt1 = Point_t(pt1);
81  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
Vector Point_t
Definition: GeoVector.h:204
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
TText * pt1
Definition: plot.C:61
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49
Point_t const & geoalgo::Line::Pt2 ( ) const

Direction getter.

Definition at line 28 of file GeoLine.cxx.

References _pt2.

Referenced by geoalgo::GeoAlgo::_ClosestPt_(), geoalgo::GeoAlgo::_commonOrigin_(), geoalgo::GeoAlgo::_SqDist_(), and ~Line().

29  {
30  return _pt2;
31  }
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
void geoalgo::Line::Pt2 ( double const  x,
double const  y,
double const  z 
)

Pt2 setter.

Definition at line 41 of file GeoLine.cxx.

References _pt1, _pt2, check_and_raise(), x, y, and z.

42  {
43  _pt2[0] = x;
44  _pt2[1] = y;
45  _pt2[2] = z;
47  }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:276
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49
template<class T >
void geoalgo::Line::Pt2 ( T const &  pt2)
inline

Pt2 setter template.

Definition at line 85 of file GeoLine.h.

References check_and_raise().

86  {
87  _pt2 = Vector_t(pt2);
89  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:63
TText * pt2
Definition: plot.C:64
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:64
Vector Vector_t
Point has same feature as Vector.
Definition: GeoVector.h:203
void check_and_raise(Point_t const &p1, Point_t const &p2) const
Compatibility check.
Definition: GeoLine.cxx:49

Member Data Documentation

Point_t geoalgo::Line::_pt1
protected

First point denoting infinite line.

Definition at line 63 of file GeoLine.h.

Referenced by geoalgo::Cylinder::Contain(), geoalgo::DirectedLine::Dir(), geoalgo::DirectedLine::DirectedLine(), Line(), Pt1(), and Pt2().

Vector_t geoalgo::Line::_pt2
protected

Second point denoting infinite line.

Definition at line 64 of file GeoLine.h.

Referenced by geoalgo::Cylinder::Contain(), geoalgo::DirectedLine::Dir(), geoalgo::DirectedLine::DirectedLine(), Line(), Pt1(), and Pt2().


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