JG ROOT Tools libraries  version 5.0 - august 2014
RVector2D.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RVector2D.hh
3  *
4  * Include file for class RVector2D.
5  */
6 //======================================================================
7 
8 #ifndef R_VECTOR_2D_HH
9 #define R_VECTOR_2D_HH
10 
11 #include <TPoints.h>
12 #include <math.h>
13 
14 #include "GGlobal.hh"
15 #include "GLogMessage.hh"
16 
17 //======================================================================
18 /*! \class RVector2D
19  *
20  * Classe élargissant la classe ROOT TPoints avec des fonctions
21  * d'algèbre à 2 dimensions
22  *
23  * Les classes RVector2D et RPoint2D sont strictement équivalentes.
24  */
25 
26 class RVector2D : public TPoints
27 {
28  //------------------------------------------------------------
29  /*! \object_doc{RVector2D} */
31  //------------------------------------------------------------
32 
33  protected:
34 
35  public:
36  static const RVector2D null; ///< Vecteur nul
37  static const RVector2D x; ///< Vecteur unitaire x
38  static const RVector2D y; ///< Vecteur unitaire y
39  static const Double_t zero; ///< Limite de calcul (approximation du 0)
40 
41  //------------------------------------------------------------
42  // Constructors / affectation / destructor
43 
44  // constructors
45  RVector2D ( ); // inline
46  RVector2D ( const Double_t x, const Double_t y ); // inline
47  RVector2D ( const Double_t p[] ); // inline
48  RVector2D ( const TPoints &p ); // inline
49  RVector2D ( const RVector2D &p ); // inline
50 
51  // affectation
52  RVector2D & operator = ( const RVector2D &p );
53  RVector2D & operator = ( const TPoints &p );
54 
55  // destructor
56  virtual ~RVector2D ( ); // inline
57 
58  //------------------------------------------------------------
59  // Access to members
60 
61  Double_t X( ) const; // inline
62  Double_t Y( ) const; // inline
63 
64  Double_t operator [] ( const u_int n ) const;
65 
66  //------------------------------------------------------------
67  // Operations
68 
69  // opérateurs unaires
70  RVector2D operator + ( ) const;
71  RVector2D operator - ( ) const;
72 
73  // affectation operative
74  RVector2D operator += ( const RVector2D &v );
75  RVector2D operator -= ( const RVector2D &v );
76  RVector2D operator *= ( const Double_t r );
77  RVector2D operator /= ( const Double_t r );
78 
79  // opérateur binaires
80  Double_t operator * ( const RVector2D &v ) const;
81  Double_t operator ^ ( const RVector2D &v ) const;
82  RVector2D operator + ( const RVector2D &v ) const;
83  RVector2D operator - ( const RVector2D &v ) const;
84 
85  RVector2D operator * ( const Double_t r ) const;
86  RVector2D operator / ( const Double_t r ) const;
87 
88  //------------------------------------------------------------
89  Double_t LengthSquare ( ) const;
90  Double_t Length ( ) const;
91  RVector2D Unit ( ) const;
92 
93  Double_t Angle ( const RVector2D &v ) const;
94 
95  Double_t DistanceTo ( const TPoints &p ) const;
96  Double_t DistanceTo ( const Double_t x, const Double_t y ) const;
97 
98  //------------------------------------------------------------
99  /*! For ROOT dictionary.*/
100  ClassDef(RVector2D,0);
101 } ;
102 
103 /*! 2D point data type definition. */
105 
106 //----------------------------------------------------------------------
107 // External functions
108 
109 extern RVector2D operator * ( const double r, const RVector2D &v ); // inline
110 
111 //----------------------------------------------------------------------
112 // Inline functions
113 #include "icc/RVector2D.icc"
114 
115 //======================================================================
116 #endif
RAffine2D operator*(const double r, const RAffine2D &t)
Definition: RAffine2D.icc:167
GObject(RVector2D)
RVector2D Unit() const
Definition: RVector2D.icc:133
static const RVector2D x
Vecteur unitaire x.
Definition: RVector2D.hh:37
RVector2D()
Definition: RVector2D.icc:10
Double_t operator*(const RVector2D &v) const
Definition: RVector2D.icc:90
Double_t DistanceTo(const TPoints &p) const
Definition: RVector2D.cpp:83
Double_t Length() const
Definition: RVector2D.icc:129
Double_t Y() const
Definition: RVector2D.icc:48
Double_t X() const
Definition: RVector2D.icc:44
virtual ~RVector2D()
Definition: RVector2D.icc:21
Double_t operator[](const u_int n) const
Definition: RVector2D.cpp:53
RVector2D operator+() const
Definition: RVector2D.icc:55
Double_t operator^(const RVector2D &v) const
Definition: RVector2D.icc:96
RVector2D operator/(const Double_t r) const
Definition: RVector2D.icc:120
Double_t Angle(const RVector2D &v) const
Definition: RVector2D.cpp:98
RVector2D RPoint2D
Definition: RVector2D.hh:104
Definition: RVector2D.hh:26
RVector2D operator-=(const RVector2D &v)
Definition: RVector2D.icc:71
RVector2D operator*=(const Double_t r)
Definition: RVector2D.icc:77
static const RVector2D null
Vecteur nul.
Definition: RVector2D.hh:36
static const Double_t zero
Limite de calcul (approximation du 0)
Definition: RVector2D.hh:39
Double_t LengthSquare() const
Definition: RVector2D.icc:125
RVector2D & operator=(const RVector2D &p)
Definition: RVector2D.cpp:26
static const RVector2D y
Vecteur unitaire y.
Definition: RVector2D.hh:38
RVector2D operator/=(const Double_t r)
Definition: RVector2D.icc:83
RVector2D operator-() const
Definition: RVector2D.icc:59
RVector2D operator+=(const RVector2D &v)
Definition: RVector2D.icc:65
ClassDef(RVector2D, 0)