Logo ROOT   6.10/09
Reference Guide
TEveGeoShape.h
Go to the documentation of this file.
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, 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 ROOT_TEveGeoShape
13 #define ROOT_TEveGeoShape
14 
15 #include "TEveShape.h"
16 
17 class TGeoShape;
18 class TGeoHMatrix;
19 class TGeoCompositeShape;
21 class TBuffer3D;
22 
23 class TEveGeoShape : public TEveShape
24 {
25 private:
26  TEveGeoShape(const TEveGeoShape&); // Not implemented
27  TEveGeoShape& operator=(const TEveGeoShape&); // Not implemented
28 
29 protected:
32  TGeoCompositeShape *fCompositeShape; //! Temporary holder (if passed shape is composite shape).
33 
35 
38 
40 
41 public:
42  TEveGeoShape(const char* name="TEveGeoShape", const char* title=0);
43  virtual ~TEveGeoShape();
44 
45  virtual TObject* GetObject(const TEveException&) const
46  { const TObject* obj = this; return const_cast<TObject*>(obj); }
47 
48  Int_t GetNSegments() const { return fNSegments; }
49  TGeoShape* GetShape() const { return fShape; }
50  void SetNSegments(Int_t s);
51  void SetShape(TGeoShape* s);
52 
53  virtual void ComputeBBox();
54  virtual void Paint(Option_t* option="");
55 
56  void Save(const char* file, const char* name="Extract");
57  void SaveExtract(const char* file, const char* name);
58  void WriteExtract(const char* name);
59 
61 
62  // GeoProjectable
63  virtual TBuffer3D* MakeBuffer3D();
64  virtual TClass* ProjectedClass(const TEveProjection* p) const;
65 
66  static TGeoManager* GetGeoMangeur();
68 
69  ClassDef(TEveGeoShape, 0); // Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TGeoShape's (without an active TGeoManager) and simplified geometries (needed for NLT projections).
70 };
71 
72 //------------------------------------------------------------------------------
73 
75  public TEveProjected
76 {
77 private:
78  TEveGeoShapeProjected(const TEveGeoShapeProjected&); // Not implemented
79  TEveGeoShapeProjected& operator=(const TEveGeoShapeProjected&); // Not implemented
80 
81 protected:
83 
84  virtual void SetDepthLocal(Float_t d);
85 
86 public:
89 
90  virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model);
91  virtual void UpdateProjection();
92  virtual TEveElement* GetProjectedAsElement() { return this; }
93 
94  virtual void ComputeBBox();
95 
97 };
98 
99 #endif
Abstract base class for classes that hold results of a non-linear projection transformation.
Abstract base-class for 2D/3D shapes.
Definition: TEveShape.h:22
The manager class for any TGeo geometry.
Definition: TGeoManager.h:37
static TGeoHMatrix * GetGeoHMatrixIdentity()
Return static identity matrix in homogeneous representation.
Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extrac...
float Float_t
Definition: RtypesCore.h:53
const char Option_t
Definition: RtypesCore.h:62
Int_t fNSegments
Definition: TEveGeoShape.h:30
void Save(const char *file, const char *name="Extract")
Save the shape tree as TEveGeoShapeExtract.
Matrix class used for computing global transformations Should NOT be used for node definition...
Definition: TGeoMatrix.h:408
int Int_t
Definition: RtypesCore.h:41
A 3D projected TEveGeoShape.
Definition: TEveGeoShape.h:74
virtual ~TEveGeoShapeProjected()
Definition: TEveGeoShape.h:88
TGeoShape * fShape
Definition: TEveGeoShape.h:31
virtual void Paint(Option_t *option="")
Paint object.
TGeoCompositeShape * fCompositeShape
Definition: TEveGeoShape.h:32
virtual ~TEveGeoShape()
Destructor.
Int_t GetNSegments() const
Definition: TEveGeoShape.h:48
void SetNSegments(Int_t s)
Set number of segments.
static TGeoManager * GetGeoMangeur()
Return static geo-manager that is used internally to make shapes lead a happy life.
#define ClassDef(name, id)
Definition: Rtypes.h:297
void SetShape(TGeoShape *s)
Set TGeoShape shown by this object.
virtual TObject * GetObject(const TEveException &) const
Get a TObject associated with this render-element.
Definition: TEveGeoShape.h:45
Base-class for non-linear projections.
static TEveGeoShape * SubImportShapeExtract(TEveGeoShapeExtract *gse, TEveElement *parent)
Recursive version for importing a shape extract tree.
Manager class for steering of projections and managing projected objects.
virtual void ComputeBBox()
Compute bounding-box.
TEveGeoShape & operator=(const TEveGeoShape &)
Class handling Boolean composition of shapes.
Abstract base-class for non-linear projectable objects.
void WriteExtract(const char *name)
Write the shape tree as TEveGeoShapeExtract to current directory.
virtual TEveElement * GetProjectedAsElement()
Returns this projected dynamic-casted to TEveElement.
Definition: TEveGeoShape.h:92
Base abstract class for all shapes.
Definition: TGeoShape.h:25
void SaveExtract(const char *file, const char *name)
Save the shape tree as TEveGeoShapeExtract.
TGeoShape * MakePolyShape()
Create derived TEveGeoShape form a TGeoCompositeShape.
virtual TClass * ProjectedClass(const TEveProjection *p) const
Return class for projected objects:
Generic 3D primitive description class.
Definition: TBuffer3D.h:17
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:71
Mother of all ROOT objects.
Definition: TObject.h:37
Definition: file.py:1
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
Definition: TEveGeoShape.h:23
Exception class thrown by TEve classes and macros.
Definition: TEveUtil.h:102
virtual TBuffer3D * MakeBuffer3D()
Create a TBuffer3D suitable for presentation of the shape.
static TGeoManager * fgGeoMangeur
Temporary holder (if passed shape is composite shape).
Definition: TEveGeoShape.h:34
static TEveGeoShape * ImportShapeExtract(TEveGeoShapeExtract *gse, TEveElement *parent=0)
Import a shape extract &#39;gse&#39; under element &#39;parent&#39;.
TEveGeoShapeExtract * DumpShapeTree(TEveGeoShape *geon, TEveGeoShapeExtract *parent=0)
Export this shape and its descendants into a geoshape-extract.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition: TEveElement.h:33
TEveGeoShape(const TEveGeoShape &)
TGeoShape * GetShape() const
Definition: TEveGeoShape.h:49