forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TEveGeoShapeExtract.cxx
102 lines (81 loc) · 2.9 KB
/
TEveGeoShapeExtract.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// @(#)root/eve:$Id$
// 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. *
*************************************************************************/
#include "TEveGeoShapeExtract.h"
#include "TEveGeoNode.h"
#include "TEveGeoShape.h"
#include "TList.h"
#include "TGeoManager.h"
#include "TGeoShape.h"
/** \class TEveGeoShapeExtract
\ingroup TEve
Globally positioned TGeoShape with rendering attributes and an
optional list of daughter shape-extracts.
Vessel to carry hand-picked geometry from gled to reve.
This class exists in both frameworks.
*/
ClassImp(TEveGeoShapeExtract);
////////////////////////////////////////////////////////////////////////////////
/// Constructor.
TEveGeoShapeExtract::TEveGeoShapeExtract(const char* n, const char* t) :
TNamed (n,t),
fRnrSelf (kTRUE),
fRnrElements (kTRUE),
fRnrFrame (kTRUE),
fMiniFrame (kTRUE),
fShape (0),
fElements (0)
{
memset(fTrans, 0, sizeof(fTrans));
fTrans[0] = fTrans[5] = fTrans[10] = fTrans[15] = 1;
fRGBA [0] = fRGBA [1] = fRGBA [2] = fRGBA [3] = 1;
fRGBALine[0] = fRGBALine[1] = fRGBALine[2] = 0; fRGBALine[3] = 1;
}
////////////////////////////////////////////////////////////////////////////////
/// Destructor. Delete shape and elements.
TEveGeoShapeExtract::~TEveGeoShapeExtract()
{
delete fShape;
delete fElements;
}
////////////////////////////////////////////////////////////////////////////////
/// True if has at least one element.
Bool_t TEveGeoShapeExtract::HasElements()
{
return fElements != 0 && fElements->GetSize() > 0;
}
////////////////////////////////////////////////////////////////////////////////
/// Add a child element.
void TEveGeoShapeExtract::AddElement(TEveGeoShapeExtract* gse)
{
if (fElements == 0)
fElements = new TList;
fElements->Add(gse);
}
////////////////////////////////////////////////////////////////////////////////
/// Set transformation matrix.
void TEveGeoShapeExtract::SetTrans(const Double_t arr[16])
{
for(Int_t i=0; i<16; ++i)
fTrans[i] = arr[i];
}
////////////////////////////////////////////////////////////////////////////////
/// Set RGBA color.
void TEveGeoShapeExtract::SetRGBA(const Float_t arr[4])
{
for(Int_t i=0; i<4; ++i)
fRGBA[i] = arr[i];
}
////////////////////////////////////////////////////////////////////////////////
/// Set RGBA color for line.
void TEveGeoShapeExtract::SetRGBALine(const Float_t arr[4])
{
for(Int_t i=0; i<4; ++i)
fRGBALine[i] = arr[i];
}