00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef ROOT_TPointsArray3D
00019 #define ROOT_TPointsArray3D
00020
00021
00022 #include "TPoints3DABC.h"
00023
00024 #ifndef ROOT_TString
00025 #include "TString.h"
00026 #endif
00027
00028
00029 class TPointsArray3D : public TPoints3DABC {
00030
00031 protected:
00032 Int_t fN;
00033 Float_t *fP;
00034 TString fOption;
00035 UInt_t fGLList;
00036 Int_t fLastPoint;
00037
00038 public:
00039 TPointsArray3D();
00040 TPointsArray3D(Int_t n, Option_t *option="");
00041 TPointsArray3D(Int_t n, Float_t *p, Option_t *option="");
00042 TPointsArray3D(Int_t n, Float_t *x, Float_t *y, Float_t *z, Option_t *option="");
00043 TPointsArray3D(const TPointsArray3D &points);
00044 virtual ~TPointsArray3D();
00045
00046 virtual void Copy(TObject &points) const;
00047 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00048 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
00049 virtual Int_t GetLastPosition() const;
00050 virtual Int_t GetN() const;
00051 virtual Float_t *GetP() const;
00052 virtual Float_t GetX(Int_t idx) const;
00053 virtual Float_t GetY(Int_t idx) const;
00054 virtual Float_t GetZ(Int_t idx) const;
00055 virtual Float_t *GetXYZ(Float_t *xyz,Int_t idx,Int_t num=1) const;
00056 virtual const Float_t *GetXYZ(Int_t idx);
00057 virtual Option_t *GetOption() const ;
00058 virtual Bool_t Is3D() const;
00059 virtual void ls(Option_t *option="") const;
00060 virtual void PaintPoints(Int_t , Float_t *,Option_t *){;}
00061 virtual void Print(Option_t *option="") const;
00062 virtual Int_t SetLastPosition(Int_t idx);
00063 virtual void SetOption(Option_t *option="");
00064 virtual Int_t SetPoint(Int_t point, Float_t x, Float_t y, Float_t z);
00065 virtual Int_t SetPoints(Int_t n, Float_t *p=0, Option_t *option="");
00066 virtual Int_t Size() const;
00067
00068 ClassDef(TPointsArray3D,1)
00069 };
00070
00071
00072 inline Int_t TPointsArray3D::GetLastPosition() const {return fLastPoint;}
00073 inline Int_t TPointsArray3D::GetN() const {return fN;}
00074 inline Float_t *TPointsArray3D::GetP() const {return fP;}
00075 inline Float_t TPointsArray3D::GetX(Int_t idx) const {return fP[3*idx+0];}
00076 inline Float_t TPointsArray3D::GetY(Int_t idx) const {return fP[3*idx+1];}
00077 inline Float_t TPointsArray3D::GetZ(Int_t idx) const {return fP[3*idx+2];}
00078 inline const Float_t *TPointsArray3D::GetXYZ(Int_t idx) {return &fP[3*idx+0];}
00079 inline Float_t *TPointsArray3D::GetXYZ(Float_t *xyz,Int_t idx,Int_t num) const
00080 {return (Float_t *)memcpy(xyz,&fP[3*idx],3*num*sizeof(Float_t));}
00081 inline Option_t *TPointsArray3D::GetOption() const {return fOption.Data();}
00082 inline Bool_t TPointsArray3D::Is3D() const {return kTRUE;}
00083 inline void TPointsArray3D::SetOption(Option_t *option) {fOption = option;}
00084
00085 inline Int_t TPointsArray3D::Size() const {return fLastPoint+1;}
00086
00087 #endif