File indexing completed on 2025-10-31 09:17:24
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 #ifndef ROOT_TPolyLine3D
0013 #define ROOT_TPolyLine3D
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 #include "TObject.h"
0025 #include "TString.h"
0026 #include "TAttLine.h"
0027 #include "TAtt3D.h"
0028 
0029 class TList;
0030 
0031 
0032 class TPolyLine3D : public TObject, public TAttLine, public TAtt3D
0033 {
0034 protected:
0035    Int_t        fN{0};             
0036    Float_t     *fP{nullptr};       
0037    TString      fOption;           
0038    Int_t        fLastPoint{-1};    
0039 
0040 public:
0041    TPolyLine3D();
0042    TPolyLine3D(Int_t n, Option_t *option="");
0043    TPolyLine3D(Int_t n, Float_t const* p, Option_t *option="");
0044    TPolyLine3D(Int_t n, Double_t const* p, Option_t *option="");
0045    TPolyLine3D(Int_t n, Float_t const* x, Float_t const* y, Float_t const* z, Option_t *option="");
0046    TPolyLine3D(Int_t n, Double_t const* x, Double_t const* y, Double_t const* z, Option_t *option="");
0047    TPolyLine3D(const TPolyLine3D &polylin);
0048    TPolyLine3D& operator=(const TPolyLine3D &polylin);
0049    ~TPolyLine3D() override;
0050 
0051    void              Copy(TObject &polyline) const override;
0052    Int_t             DistancetoPrimitive(Int_t px, Int_t py) override;
0053    void              Draw(Option_t *option="") override;
0054    virtual void      DrawPolyLine(Int_t n, Float_t *p, Option_t *option="");
0055    void              ExecuteEvent(Int_t event, Int_t px, Int_t py)  override;
0056    Int_t             GetLastPoint() const {return fLastPoint;}
0057    Int_t             GetN() const {return fN;}
0058    Float_t          *GetP() const {return fP;}
0059    Option_t         *GetOption() const  override { return fOption.Data(); }
0060    void              ls(Option_t *option="") const  override;
0061    virtual Int_t     Merge(TCollection *list);
0062    void              Paint(Option_t *option="")  override;
0063    void              Print(Option_t *option="") const  override;
0064    void              SavePrimitive(std::ostream &out, Option_t *option = "")  override;
0065    virtual Int_t     SetNextPoint(Double_t x, Double_t y, Double_t z); 
0066    virtual void      SetOption(Option_t *option="") {fOption = option;}
0067    virtual void      SetPoint(Int_t point, Double_t x, Double_t y, Double_t z); 
0068    virtual void      SetPolyLine(Int_t n, Option_t *option="");
0069    virtual void      SetPolyLine(Int_t n, Float_t *p, Option_t *option="");
0070    virtual void      SetPolyLine(Int_t n, Double_t *p, Option_t *option="");
0071    virtual Int_t     Size() const { return fLastPoint+1;}
0072 
0073    static  void      DrawOutlineCube(TList *outline, Double_t *rmin, Double_t *rmax);
0074 
0075    ClassDefOverride(TPolyLine3D,1)  
0076 };
0077 
0078 #endif