LArSoft  v06_85_00
Liquid Argon Software toolkit - http://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 (const double x1, const double y1, const double z1, const double x2, const double y2, const double z2)
 Alternative ctor (1) More...
 
 Line (const Point_t &pt1, const Point_t &pt2)
 Altenartive ctor (2) More...
 
const Point_tPt1 () const
 Start getter. More...
 
const Point_tPt2 () const
 Direction getter. More...
 
void Pt1 (const double x, const double y, const double z)
 Pt1 setter. More...
 
void Pt2 (const double x, const double y, const double z)
 Pt2 setter. More...
 
template<class T , class U >
 Line (const T &pt1, const U &pt2)
 Alternative ctor using template (3) More...
 
template<class T >
void Pt1 (const T &pt1)
 Pt1 setter template. More...
 
template<class T >
void Pt2 (const T &pt2)
 Pt2 setter template. More...
 

Protected Member Functions

void check_and_raise (const Point_t &p1, const Point_t &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 8 of file GeoLine.cxx.

Referenced by ~Line().

9  : _pt1(3)
10  , _pt2(3)
11  {}
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
virtual geoalgo::Line::~Line ( )
inlinevirtual

Default destructor.

Definition at line 35 of file GeoLine.h.

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

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

Alternative ctor (1)

Definition at line 13 of file GeoLine.cxx.

References _pt1, _pt2, and check_and_raise().

15  : _pt1 (x1, y1, z1)
16  , _pt2 (x2, y2, z2)
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:61
Float_t y2[n_points_geant4]
Definition: compare.C:26
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
Float_t x2[n_points_geant4]
Definition: compare.C:26
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43
geoalgo::Line::Line ( const Point_t pt1,
const Point_t pt2 
)

Altenartive ctor (2)

Definition at line 19 of file GeoLine.cxx.

References check_and_raise().

20  : _pt1 ( pt1 )
21  , _pt2 ( pt2 )
22  { check_and_raise(pt1,pt2); }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43
template<class T , class U >
geoalgo::Line::Line ( const T &  pt1,
const U &  pt2 
)
inline

Alternative ctor using template (3)

Definition at line 69 of file GeoLine.h.

70  : Line(Point_t(pt1), Point_t(pt2))
71  {}
Vector Point_t
Definition: GeoVector.h:200
Line()
Default constructor.
Definition: GeoLine.cxx:8

Member Function Documentation

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

Compatibility check.

Definition at line 43 of file GeoLine.cxx.

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

44  {
45  if(p1.size()!=3) throw GeoAlgoException("<<check_and_raise>> Pt1 is not 3 dimensional point!");
46  if(p2.size()!=3) throw GeoAlgoException("<<check_and_raise>> Pt2 is not 3 dimensional point!");
47  if(p1 == p2) throw GeoAlgoException("<<check_and_raise>> Two identical points not allowed for Line ctor!");
48  }
const Point_t & 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().

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

Pt1 setter.

Definition at line 27 of file GeoLine.cxx.

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

28  {
29  _pt1[0] = x;
30  _pt1[1] = y;
31  _pt1[2] = z;
33  }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43
template<class T >
void geoalgo::Line::Pt1 ( const T &  pt1)
inline

Pt1 setter template.

Definition at line 75 of file GeoLine.h.

References check_and_raise().

76  {
77  _pt1 = Point_t(pt1);
79  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector Point_t
Definition: GeoVector.h:200
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43
const Point_t & geoalgo::Line::Pt2 ( ) const

Direction getter.

Definition at line 25 of file GeoLine.cxx.

References _pt2.

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

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

Pt2 setter.

Definition at line 35 of file GeoLine.cxx.

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

36  {
37  _pt2[0] = x;
38  _pt2[1] = y;
39  _pt2[2] = z;
41  }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43
template<class T >
void geoalgo::Line::Pt2 ( const T &  pt2)
inline

Pt2 setter template.

Definition at line 83 of file GeoLine.h.

References check_and_raise().

84  {
85  _pt2 = Vector_t(pt2);
87  }
Point_t _pt1
First point denoting infinite line.
Definition: GeoLine.h:61
Vector_t _pt2
Second point denoting infinite line.
Definition: GeoLine.h:62
Vector Vector_t
Point has same feature as Vector.
Definition: GeoVector.h:199
void check_and_raise(const Point_t &p1, const Point_t &p2) const
Compatibility check.
Definition: GeoLine.cxx:43

Member Data Documentation

Point_t geoalgo::Line::_pt1
protected

First point denoting infinite line.

Definition at line 61 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 62 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: