Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
REveGeoShapeExtract.hxx
Go to the documentation of this file.
1 // @(#)root/eve7:$Id$
2 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT7_REveGeoShapeExtract
13 #define ROOT7_REveGeoShapeExtract
14 
15 #include "TNamed.h"
16 
17 class TList;
18 class TGeoShape;
19 
20 namespace ROOT {
21 namespace Experimental {
22 
23 class REveGeoShapeExtract : public TNamed
24 {
25  REveGeoShapeExtract(const REveGeoShapeExtract&); // Not implemented
26  REveGeoShapeExtract& operator=(const REveGeoShapeExtract&); // Not implemented
27 
28 protected:
29  Double_t fTrans[16]; // Transformation matrix, 4x4 column major.
30  Float_t fRGBA[4]; // RGBA color.
31  Float_t fRGBALine[4]; // RGBA color.
32  Bool_t fRnrSelf; // Render this object.
33  Bool_t fRnrElements; // Render children of this object.
34  Bool_t fRnrFrame; // Also draw shape outline.
35  Bool_t fMiniFrame; // Minimize shape outline when drawing.
36  TGeoShape* fShape; // Shape to be drawn for this object.
37  TList* fElements; // Children elements.
38 
39 public:
40  REveGeoShapeExtract(const char *n = "REveGeoShapeExtract", const char *t = nullptr);
41  ~REveGeoShapeExtract();
42 
43  Bool_t HasElements();
44  void AddElement(REveGeoShapeExtract* gse);
45 
46  void SetTrans(const Double_t arr[16]);
47  void SetRGBA (const Float_t arr[4]);
48  void SetRGBALine(const Float_t arr[4]);
49  void SetRnrSelf(Bool_t r) { fRnrSelf = r; }
50  void SetRnrElements(Bool_t r) { fRnrElements = r; }
51  void SetRnrFrame(Bool_t r) { fRnrFrame = r; }
52  void SetMiniFrame(Bool_t r) { fMiniFrame = r; }
53  void SetShape(TGeoShape* s) { fShape = s; }
54  void SetElements(TList* e) { fElements = e; }
55 
56  Double_t* GetTrans() { return fTrans; }
57  Float_t* GetRGBA() { return fRGBA; }
58  Float_t* GetRGBALine() { return fRGBALine; }
59  Bool_t GetRnrSelf() { return fRnrSelf; }
60  Bool_t GetRnrElements() { return fRnrElements; }
61  Bool_t GetRnrFrame() { return fRnrFrame; }
62  Bool_t GetMiniFrame() { return fMiniFrame; }
63  TGeoShape* GetShape() { return fShape; }
64  TList* GetElements() { return fElements; }
65 
66  ClassDef(REveGeoShapeExtract, 1); // Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extracts.
67 };
68 
69 } // namespace Experimental
70 } // namespace ROOT
71 
72 #endif