Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:10:39

0001 // @(#)root/eve:$Id$
0002 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2007, 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_REveFrameBox
0013 #define ROOT_REveFrameBox
0014 
0015 #include "ROOT/REveUtil.hxx"
0016 
0017 namespace ROOT {
0018 namespace Experimental {
0019 
0020 class REveFrameBox : public REveRefBackPtr
0021 {
0022 public:
0023    enum EFrameType_e  { kFT_None, kFT_Quad, kFT_Box };
0024 
0025 private:
0026    REveFrameBox(const REveFrameBox&) = delete;
0027    REveFrameBox& operator=(const REveFrameBox&) = delete;
0028 
0029 protected:
0030    EFrameType_e fFrameType;
0031    Int_t        fFrameSize;
0032    Float_t     *fFramePoints;  //[fFrameSize]
0033 
0034    Float_t      fFrameWidth;
0035    Color_t      fFrameColor;
0036    Color_t      fBackColor;
0037    UChar_t      fFrameRGBA[4];
0038    UChar_t      fBackRGBA[4];
0039    Bool_t       fFrameFill;
0040    Bool_t       fDrawBack;
0041 
0042 public:
0043    REveFrameBox();
0044    ~REveFrameBox() override;
0045 
0046    void SetAAQuadXY(Float_t x, Float_t y, Float_t z, Float_t dx, Float_t dy);
0047    void SetAAQuadXZ(Float_t x, Float_t y, Float_t z, Float_t dx, Float_t dz);
0048 
0049    void SetQuadByPoints(const Float_t* pointArr, Int_t nPoints);
0050 
0051    void SetAABox(Float_t x,  Float_t y,  Float_t z,
0052                  Float_t dx, Float_t dy, Float_t dz);
0053 
0054    void SetAABoxCenterHalfSize(Float_t x,  Float_t y,  Float_t z,
0055                                Float_t dx, Float_t dy, Float_t dz);
0056 
0057    // ----------------------------------------------------------------
0058 
0059    EFrameType_e GetFrameType()   const { return fFrameType; }
0060    Int_t        GetFrameSize()   const { return fFrameSize; }
0061    Float_t*     GetFramePoints() const { return fFramePoints; }
0062 
0063    Float_t GetFrameWidth() const    { return fFrameWidth; }
0064    void    SetFrameWidth(Float_t f) { fFrameWidth = f;    }
0065 
0066    Color_t  GetFrameColor() const { return fFrameColor; }
0067    Color_t* PtrFrameColor() { return &fFrameColor; }
0068    UChar_t* GetFrameRGBA()  { return fFrameRGBA;  }
0069 
0070    void SetFrameColor(Color_t ci);
0071    void SetFrameColorPixel(Pixel_t pix);
0072    void SetFrameColorRGBA(UChar_t r, UChar_t g, UChar_t b, UChar_t a=255);
0073 
0074    Color_t  GetBackColor() const { return fBackColor; }
0075    Color_t* PtrBackColor() { return &fBackColor; }
0076    UChar_t* GetBackRGBA()  { return fBackRGBA;  }
0077 
0078    void SetBackColor(Color_t ci);
0079    void SetBackColorPixel(Pixel_t pix);
0080    void SetBackColorRGBA(UChar_t r, UChar_t g, UChar_t b, UChar_t a=255);
0081 
0082    Bool_t GetFrameFill() const   { return fFrameFill; }
0083    void   SetFrameFill(Bool_t f) { fFrameFill = f;    }
0084 
0085    Bool_t GetDrawBack() const   { return fDrawBack; }
0086    void   SetDrawBack(Bool_t f) { fDrawBack = f;    }
0087 
0088    void OnZeroRefCount() override { delete this; }
0089 
0090 };
0091 
0092 } // namespace Experimental
0093 } // namespace ROOT
0094 #endif