Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TPolyLine3D.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/g3d:$Id$
0002 // Author: Nenad Buncic   17/08/95
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TPolyLine3D
0013 #define ROOT_TPolyLine3D
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TPolyLine3D                                                          //
0019 //                                                                      //
0020 // A 3-D polyline.                                                      //
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};             ///< Number of points
0036    Float_t     *fP{nullptr};       ///< [3*fN] Array of 3-D coordinates  (x,y,z)
0037    TString      fOption;           ///< options
0038    Int_t        fLastPoint{-1};    ///< The index of the last filled point
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); // *MENU*
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); // *MENU*
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)  //A 3-D polyline
0076 };
0077 
0078 #endif