MarlinUtil  1.12.1
Circle.h
1 // Circle.h: interface for the Circle class.
2 // Circle class.
3 // Purpose : Represent the circle object
4 // Input : 3 different points
5 // Process : Calcuate the radius and center
6 // Output : Circle
7 //
8 // This class originally designed for representation of discretized curvature information
9 // of sequential pointlist
10 // KJIST CAD/CAM Ryu, Jae Hun ( ryu@geguri.kjist.ac.kr)
11 // Last update : 1999. 7. 4
12 
13 
14 #include "CLHEP/Vector/TwoVector.h"
15 
16 class Circle
17 {
18 public:
19  double GetRadius();
20  CLHEP::Hep2Vector* GetCenter();
21  Circle(CLHEP::Hep2Vector *p1, CLHEP::Hep2Vector *p2, CLHEP::Hep2Vector *p3); // p1, p2, p3 are co-planar
22  Circle();
23  virtual ~Circle();
24 
25 private:
26  double CalcCircle(CLHEP::Hep2Vector *pt1, CLHEP::Hep2Vector *pt2, CLHEP::Hep2Vector *pt3);
27  bool IsPerpendicular(CLHEP::Hep2Vector *pt1, CLHEP::Hep2Vector *pt2, CLHEP::Hep2Vector *pt3);
28  double m_dRadius;
29  CLHEP::Hep2Vector m_Center;
30 };
31 
Definition: Circle.h:16