00001 // @(#)root/eve:$Id: TEveGeoShapeExtract.h 36892 2010-11-24 10:24:35Z matevz $ 00002 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2007, 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 #ifndef ROOT_TEveGeoShapeExtract 00013 #define ROOT_TEveGeoShapeExtract 00014 00015 #include "TNamed.h" 00016 00017 class TList; 00018 class TGeoShape; 00019 00020 class TEveGeoShapeExtract : public TNamed 00021 { 00022 TEveGeoShapeExtract(const TEveGeoShapeExtract&); // Not implemented 00023 TEveGeoShapeExtract& operator=(const TEveGeoShapeExtract&); // Not implemented 00024 00025 protected: 00026 Double_t fTrans[16]; // Transformation matrix, 4x4 column major. 00027 Float_t fRGBA[4]; // RGBA color. 00028 Float_t fRGBALine[4]; // RGBA color. 00029 Bool_t fRnrSelf; // Render this object. 00030 Bool_t fRnrElements; // Render children of this object. 00031 Bool_t fRnrFrame; // Also draw shape outline. 00032 Bool_t fMiniFrame; // Minimize shape outline when drawing. 00033 TGeoShape* fShape; // Shape to be drawn for this object. 00034 TList* fElements; // Children elements. 00035 00036 public: 00037 TEveGeoShapeExtract(const char* n="TEveGeoShapeExtract", const char* t=0); 00038 ~TEveGeoShapeExtract(); 00039 00040 Bool_t HasElements(); 00041 void AddElement(TEveGeoShapeExtract* gse); 00042 00043 void SetTrans(const Double_t arr[16]); 00044 void SetRGBA (const Float_t arr[4]); 00045 void SetRGBALine(const Float_t arr[4]); 00046 void SetRnrSelf(Bool_t r) { fRnrSelf = r; } 00047 void SetRnrElements(Bool_t r) { fRnrElements = r; } 00048 void SetRnrFrame(Bool_t r) { fRnrFrame = r; } 00049 void SetMiniFrame(Bool_t r) { fMiniFrame = r; } 00050 void SetShape(TGeoShape* s) { fShape = s; } 00051 void SetElements(TList* e) { fElements = e; } 00052 00053 Double_t* GetTrans() { return fTrans; } 00054 Float_t* GetRGBA() { return fRGBA; } 00055 Float_t* GetRGBALine() { return fRGBALine; } 00056 Bool_t GetRnrSelf() { return fRnrSelf; } 00057 Bool_t GetRnrElements() { return fRnrElements; } 00058 Bool_t GetRnrFrame() { return fRnrFrame; } 00059 Bool_t GetMiniFrame() { return fMiniFrame; } 00060 TGeoShape* GetShape() { return fShape; } 00061 TList* GetElements() { return fElements; } 00062 00063 ClassDef(TEveGeoShapeExtract, 2); // Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extracts. 00064 }; 00065 00066 #endif