Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef TCIRCLE_H
#define TCIRCLE_H
//*************************************************************************
//* ====================
//* TCircle Class
//* ====================
//*
//* (Description)
//* A class to implement a circle object.
//* (Requires)
//* TVCurve
//* (Provides)
//* class TCircle
//* (Update Recored)
//* 2003/10/03 K.Fujii Original version.
//*
//*************************************************************************
//
#include <iostream>
#include "TVector2.h"
#include "TVCurve.h"
using namespace std;
//_____________________________________________________________________
// -----------------------------------
// Circle Class
// -----------------------------------
class TCircle : public TVCurve {
public:
TCircle(Double_t r = 1., Double_t xc = 0., Double_t yc = 0.);
virtual ~TCircle() {}
virtual Int_t CalcXingPointWith(const TCircle &c,
TVector2 xx[],
Double_t eps = 1.e-8) const;
inline virtual Double_t GetRadius() const { return fR; }
inline virtual const TVector2 & GetCenter() const { return fXc; }
inline virtual void DebugPrint() const;
private:
Double_t fR; // radius
TVector2 fXc; // center
ClassDef(TCircle,1) // circle class
};
void TCircle::DebugPrint() const
{
cerr << " radius = " << fR
<< " center = (" << fXc.X() << "," << fXc.Y() << ")" << endl;
}
#endif