TPointsArray3D.h

Go to the documentation of this file.
00001 // @(#)root/table:$Id: TPointsArray3D.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Valery Fine(fine@mail.cern.ch)   24/04/99
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 //////////////////////////////////////////////////////////////////////////
00012 //                                                                      //
00013 // TPointsArray3D                                                       //
00014 //                                                                      //
00015 // A 3-D PolyLine.                                                      //
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;            // Number of points
00033    Float_t     *fP;            // Array of 3-D coordinates  (x,y,z)
00034    TString      fOption;       // options
00035    UInt_t       fGLList;       // The list number for OpenGL view
00036    Int_t        fLastPoint;    // The index of the last filled point
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); // *MENU*
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)  //A 3-D PolyLine
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

Generated on Tue Jul 5 14:27:55 2011 for ROOT_528-00b_version by  doxygen 1.5.1