JG ROOT Tools libraries  version 5.0 - august 2014
RContourBase.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RContourBase.hh
3  *
4  * Include file for class RContourBase
5  */
6 //======================================================================
7 
8 #ifndef R_CONTOUR_BASE_HH
9 #define R_CONTOUR_BASE_HH
10 
11 #include "RPoint2D.hh"
12 #include <TObject.h>
13 
14 //======================================================================
15 /*! \class RContourBase
16  *
17  * Base class for 1D and 2D contours definition.
18  */
20 {
21  //------------------------------------------------------------
22  /*! \object_doc{RContourBase} */
24  //------------------------------------------------------------
25 
26  protected:
27  bool flip_axis; ///< Axis inversion
28 
29 
30  //------------------------------------------------------------
31  // Constructors / affectation / destructor
32  public:
33  RContourBase ( );
34  RContourBase ( const RContourBase & ct );
35 
36  RContourBase & operator = ( const RContourBase & ct );
37 
38  virtual ~RContourBase ( );
39 
40  //------------------------------------------------------------
41  /*! Abstract function for contours comparison operators.
42  * \param ct_ptr contour pointer*/
43  virtual bool Compare ( const RContourBase * ct_ptr ) const = 0;
44 
45  // Contour comparison
46  virtual bool operator == ( const RContourBase & ct ) const;
47  virtual bool operator != ( const RContourBase & ct ) const;
48 
49  //------------------------------------------------------------
50 
51  virtual void SetFlipAxis ( const bool flip = true );
52  virtual bool GetFlipAxis ( ) const;
53 
54  //------------------------------------------------------------
55  // test contour sur un point (x,y)
56  virtual bool CheckPoint ( const Double_t x, const Double_t y ) const;
57 
58  /*! Check whether a point is inside a contour:
59  * for 2D contour, a test is performed, for 1D contour result is
60  * always false.
61  * \param p point to check
62  */
63  virtual bool CheckPoint ( const RPoint2D &p ) const = 0;
64 
65  /*! Check whether a value is inside a 1D contour (always false for
66  * a 2D contour.
67  * \param val value to check
68  */
69  virtual bool CheckValue ( const Double_t val ) const = 0;
70 
71  /*! Return contour dimension.*/
72  virtual Int_t Dimension ( ) const = 0;
73 
74  /*! Return contour type identifier.*/
75  virtual Int_t Type ( ) const = 0;
76 
77  /*! Return contour type name.*/
78  virtual string TypeName ( ) const = 0;
79 
80  //------------------------------------------------------------
81 
82  // write functions.
83  virtual bool Write ( ostream &os ) const;
84  virtual bool Write ( FILE *fptr ) const;
85 
86  // static functions to read a contour.
87  static RContourBase * ReadNew ( istream &is );
88  static RContourBase * ReadNew ( FILE *fptr );
89 
90  //------------------------------------------------------------
91  /*! Creation of associated ROOT objects list.*/
92  virtual TList * CreateObjectList ( ) const = 0;
93 
94 
95  protected:
96  /*! Write contour data in an output C++ stream.
97  * \param os output C++ stream*/
98  virtual bool WriteData ( ostream &os ) const = 0;
99 
100  /*! Write contour data in an output C-style file.
101  * \param fptr C-style file pointer*/
102  virtual bool WriteData ( FILE *fptr ) const = 0;
103 
104  public:
105  //------------------------------------------------------------
106  /*! For ROOT dictionary.*/
108 };
109 
110 //----------------------------------------------------------------------
111 // Inline functions
112 #include "icc/RContourBase.icc"
113 
114 //======================================================================
115 #endif
virtual bool Write(ostream &os) const
Definition: RContourBase.cpp:55
bool flip_axis
Axis inversion.
Definition: RContourBase.hh:27
virtual Int_t Dimension() const =0
virtual bool operator!=(const RContourBase &ct) const
Definition: RContourBase.icc:19
RContourBase()
Definition: RContourBase.cpp:17
virtual bool CheckPoint(const Double_t x, const Double_t y) const
Definition: RContourBase.icc:26
virtual bool operator==(const RContourBase &ct) const
Definition: RContourBase.icc:13
virtual bool Compare(const RContourBase *ct_ptr) const =0
virtual bool WriteData(ostream &os) const =0
virtual Int_t Type() const =0
virtual bool CheckValue(const Double_t val) const =0
Definition: RVector2D.hh:26
virtual bool GetFlipAxis() const
Definition: RContourBase.icc:36
ClassDef(RContourBase, 0)
virtual ~RContourBase()
Definition: RContourBase.cpp:45
static RContourBase * ReadNew(istream &is)
Definition: RContourBase.cpp:96
virtual TList * CreateObjectList() const =0
virtual string TypeName() const =0
virtual void SetFlipAxis(const bool flip=true)
Definition: RContourBase.icc:32
Definition: RContourBase.hh:19
GObjectV(RContourBase)
RContourBase & operator=(const RContourBase &ct)
Definition: RContourBase.cpp:35