ROOT logo
// @(#)root/eve:$Id: TEveGeoShapeExtract.h 27157 2009-01-15 14:05:12Z brun $
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveGeoShapeExtract
#define ROOT_TEveGeoShapeExtract

#include "TNamed.h"

class TList;
class TGeoShape;

class TEveGeoShapeExtract : public TNamed
{
   TEveGeoShapeExtract(const TEveGeoShapeExtract&);            // Not implemented
   TEveGeoShapeExtract& operator=(const TEveGeoShapeExtract&); // Not implemented

protected:
   Double_t    fTrans[16];   // Transformation matrix, 4x4 column major.
   Float_t     fRGBA[4];     // RGBA color.
   Bool_t      fRnrSelf;     // Render this object.
   Bool_t      fRnrElements; // Render children of this object.
   TGeoShape*  fShape;       // Shape to be drawn for this object.
   TList*      fElements;    // Children elements.

public:
   TEveGeoShapeExtract(const char* n="TEveGeoShapeExtract", const char* t=0);
   ~TEveGeoShapeExtract();

   Bool_t HasElements();
   void   AddElement(TEveGeoShapeExtract* gse);

   void SetTrans(const Double_t arr[16]);
   void SetRGBA (const Float_t  arr[4]);
   void SetRnrSelf(Bool_t r)     { fRnrSelf = r;     }
   void SetRnrElements(Bool_t r) { fRnrElements = r; }
   void SetShape(TGeoShape* s)   { fShape = s;       }
   void SetElements(TList* e)    { fElements = e;    }

   Double_t*  GetTrans()       { return fTrans; }
   Float_t*   GetRGBA()        { return fRGBA;  }
   Bool_t     GetRnrSelf()     { return fRnrSelf;     }
   Bool_t     GetRnrElements() { return fRnrElements; }
   TGeoShape* GetShape()       { return fShape;    }
   TList*     GetElements()    { return fElements; }

   ClassDef(TEveGeoShapeExtract, 1); // Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extracts.
};

#endif
 TEveGeoShapeExtract.h:1
 TEveGeoShapeExtract.h:2
 TEveGeoShapeExtract.h:3
 TEveGeoShapeExtract.h:4
 TEveGeoShapeExtract.h:5
 TEveGeoShapeExtract.h:6
 TEveGeoShapeExtract.h:7
 TEveGeoShapeExtract.h:8
 TEveGeoShapeExtract.h:9
 TEveGeoShapeExtract.h:10
 TEveGeoShapeExtract.h:11
 TEveGeoShapeExtract.h:12
 TEveGeoShapeExtract.h:13
 TEveGeoShapeExtract.h:14
 TEveGeoShapeExtract.h:15
 TEveGeoShapeExtract.h:16
 TEveGeoShapeExtract.h:17
 TEveGeoShapeExtract.h:18
 TEveGeoShapeExtract.h:19
 TEveGeoShapeExtract.h:20
 TEveGeoShapeExtract.h:21
 TEveGeoShapeExtract.h:22
 TEveGeoShapeExtract.h:23
 TEveGeoShapeExtract.h:24
 TEveGeoShapeExtract.h:25
 TEveGeoShapeExtract.h:26
 TEveGeoShapeExtract.h:27
 TEveGeoShapeExtract.h:28
 TEveGeoShapeExtract.h:29
 TEveGeoShapeExtract.h:30
 TEveGeoShapeExtract.h:31
 TEveGeoShapeExtract.h:32
 TEveGeoShapeExtract.h:33
 TEveGeoShapeExtract.h:34
 TEveGeoShapeExtract.h:35
 TEveGeoShapeExtract.h:36
 TEveGeoShapeExtract.h:37
 TEveGeoShapeExtract.h:38
 TEveGeoShapeExtract.h:39
 TEveGeoShapeExtract.h:40
 TEveGeoShapeExtract.h:41
 TEveGeoShapeExtract.h:42
 TEveGeoShapeExtract.h:43
 TEveGeoShapeExtract.h:44
 TEveGeoShapeExtract.h:45
 TEveGeoShapeExtract.h:46
 TEveGeoShapeExtract.h:47
 TEveGeoShapeExtract.h:48
 TEveGeoShapeExtract.h:49
 TEveGeoShapeExtract.h:50
 TEveGeoShapeExtract.h:51
 TEveGeoShapeExtract.h:52
 TEveGeoShapeExtract.h:53
 TEveGeoShapeExtract.h:54
 TEveGeoShapeExtract.h:55
 TEveGeoShapeExtract.h:56
 TEveGeoShapeExtract.h:57