Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
17class TGeoShape;
18class TGeoHMatrix;
21class TBuffer3D;
22
23class TEveGeoShape : public TEveShape
24{
25private:
26 TEveGeoShape(const TEveGeoShape&); // Not implemented
27 TEveGeoShape& operator=(const TEveGeoShape&); // Not implemented
28
29protected:
32 TGeoCompositeShape *fCompositeShape; //! Temporary holder (if passed shape is composite shape).
33
35
38
40
41public:
42 TEveGeoShape(const char* name="TEveGeoShape", const char* title=nullptr);
43 ~TEveGeoShape() override;
44
45 TObject* GetObject(const TEveException&) const override
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 void ComputeBBox() override;
54 void Paint(Option_t* option="") override;
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 TClass* ProjectedClass(const TEveProjection* p) const override;
65
66 static TGeoManager* GetGeoMangeur();
68
69 ClassDefOverride(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{
77private:
78 TEveGeoShapeProjected(const TEveGeoShapeProjected&); // Not implemented
80
81protected:
83
84 void SetDepthLocal(Float_t d) override;
85
86public:
88 ~TEveGeoShapeProjected() override;
89
90 void SetProjection(TEveProjectionManager* proj, TEveProjectable* model) override;
91 void UpdateProjection() override;
92 TEveElement* GetProjectedAsElement() override { return this; }
93
94 void ComputeBBox() override;
95
97};
98
99#endif
#define d(i)
Definition RSha256.hxx:102
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t option
char name[80]
Definition TGX11.cxx:110
Generic 3D primitive description class.
Definition TBuffer3D.h:18
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:81
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition TEveElement.h:36
Exception class thrown by TEve classes and macros.
Definition TEveUtil.h:102
Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extrac...
A 3D projected TEveGeoShape.
void UpdateProjection() override
This is virtual method from base-class TEveProjected.
TEveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to TEveElement.
TEveGeoShapeProjected()
Constructor.
void SetDepthLocal(Float_t d) override
This should never be called as this class is only used for 3D projections.
void ComputeBBox() override
Override of virtual method from TAttBBox.
TEveGeoShapeProjected & operator=(const TEveGeoShapeProjected &)
TEveGeoShapeProjected(const TEveGeoShapeProjected &)
~TEveGeoShapeProjected() override
Destructor.
void SetProjection(TEveProjectionManager *proj, TEveProjectable *model) override
This is virtual method from base-class TEveProjected.
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
TEveGeoShape(const TEveGeoShape &)
virtual TBuffer3D * MakeBuffer3D()
Create a TBuffer3D suitable for presentation of the shape.
void SetShape(TGeoShape *s)
Set TGeoShape shown by this object.
void SetNSegments(Int_t s)
Set number of segments.
void Save(const char *file, const char *name="Extract")
Save the shape tree as TEveGeoShapeExtract.
static TGeoManager * GetGeoMangeur()
Return static geo-manager that is used internally to make shapes lead a happy life.
TEveGeoShape & operator=(const TEveGeoShape &)
TGeoCompositeShape * fCompositeShape
void SaveExtract(const char *file, const char *name)
Save the shape tree as TEveGeoShapeExtract.
TClass * ProjectedClass(const TEveProjection *p) const override
Return class for projected objects:
static TGeoHMatrix * GetGeoHMatrixIdentity()
Return static identity matrix in homogeneous representation.
static TEveGeoShape * ImportShapeExtract(TEveGeoShapeExtract *gse, TEveElement *parent=nullptr)
Import a shape extract 'gse' under element 'parent'.
Int_t GetNSegments() const
static TEveGeoShape * SubImportShapeExtract(TEveGeoShapeExtract *gse, TEveElement *parent)
Recursive version for importing a shape extract tree.
static TGeoManager * fgGeoMangeur
Temporary holder (if passed shape is composite shape).
TGeoShape * fShape
~TEveGeoShape() override
Destructor.
void ComputeBBox() override
Compute bounding-box.
void Paint(Option_t *option="") override
Paint object.
TGeoShape * MakePolyShape()
Create derived TEveGeoShape form a TGeoCompositeShape.
TObject * GetObject(const TEveException &) const override
Get a TObject associated with this render-element.
TEveGeoShapeExtract * DumpShapeTree(TEveGeoShape *geon, TEveGeoShapeExtract *parent=nullptr)
Export this shape and its descendants into a geoshape-extract.
TGeoShape * GetShape() const
void WriteExtract(const char *name)
Write the shape tree as TEveGeoShapeExtract to current directory.
Abstract base-class for non-linear projectable objects.
Abstract base class for classes that hold results of a non-linear projection transformation.
Manager class for steering of projections and managing projected objects.
Base-class for non-linear projections.
Abstract base-class for 2D/3D shapes.
Definition TEveShape.h:26
Composite shapes are Boolean combinations of two or more shape components.
Matrix class used for computing global transformations Should NOT be used for node definition.
Definition TGeoMatrix.h:458
The manager class for any TGeo geometry.
Definition TGeoManager.h:44
Base abstract class for all shapes.
Definition TGeoShape.h:25
Mother of all ROOT objects.
Definition TObject.h:41