Belle II Software  release-05-02-19
LineSegment2D.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Kirill Chilikin *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* KLM headers. */
14 #include <klm/eklm/geometry/Line2D.h>
15 
16 /* CLHEP headers. */
17 #include <CLHEP/Geometry/Point3D.h>
18 
19 namespace Belle2 {
25  namespace EKLM {
26 
30  class LineSegment2D : public Line2D {
31 
32  public:
33 
40  const HepGeom::Point3D<double>& point2);
41 
46 
53  int findIntersection(const Line2D& line,
54  HepGeom::Point3D<double>* intersection) const;
55 
62  int findIntersection(const LineSegment2D& lineSegment,
63  HepGeom::Point3D<double>* intersection) const;
64 
71  int findIntersection(const Circle2D& circle,
72  HepGeom::Point3D<double> intersections[2]) const;
73 
80  int findIntersection(const Arc2D& arc,
81  HepGeom::Point3D<double> intersections[2]) const;
82 
87  bool tWithinRange(double t) const;
88 
89  };
90 
91  }
92 
94 }
Belle2::EKLM::LineSegment2D::tWithinRange
bool tWithinRange(double t) const
Check if t is within the line segment (0 <= t <= 1).
Definition: LineSegment2D.cc:82
Belle2::EKLM::LineSegment2D::findIntersection
int findIntersection(const Line2D &line, HepGeom::Point3D< double > *intersection) const
Find intersection with a line.
Definition: LineSegment2D.cc:28
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::EKLM::Line2D::Line2D
Line2D(double x, double y, double vecx, double vecy)
Constructor.
Definition: Line2D.cc:19
HepGeom::Point3D< double >
Belle2::EKLM::LineSegment2D::~LineSegment2D
~LineSegment2D()
Destructor.
Definition: LineSegment2D.cc:23
Belle2::EKLM::LineSegment2D::LineSegment2D
LineSegment2D(const HepGeom::Point3D< double > &point1, const HepGeom::Point3D< double > &point2)
Constructor.
Definition: LineSegment2D.cc:16