ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4VisAttributes.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VisAttributes.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
//
28
//
29
// John Allison 23rd October 1996
30
31
// Class Description:
32
// Visualization attributes are a set of information associated with the
33
// visualizable objects. This information is necessary only for
34
// visualization, and is not included in geometrical information such
35
// as shapes, position, and orientation.
36
// A typical example of a visualization attribute is "colour".
37
// For example, in visualizing a box, the Visualization Manager must know
38
// its colour. If an object to be visualized has not been assigned a set of
39
// visualization attributes, then a proper default set is used
40
// automatically. A set of visualization attributes is held by an
41
// instance of class G4VisAttributes defined in the graphics_reps
42
// category. The followings are commonly-used attributes:
43
// - visibility
44
// - visibility of daughters
45
// - force style
46
// - force auxiliary edge visibility
47
// - force line segments per circle
48
// - colour
49
// Class Description - End:
50
51
52
#ifndef __G4VISATTRIBUTES_HH__
53
#define __G4VISATTRIBUTES_HH__
54
55
#include "
globals.hh
"
56
#include <vector>
57
#include <map>
58
59
#include "
graphics_reps_defs.hh
"
60
61
#include "
G4Colour.hh
"
62
#include "
G4Color.hh
"
63
64
class
G4AttValue
;
65
class
G4AttDef
;
66
67
#include <
CLHEP/Units/SystemOfUnits.h
>
68
69
class
G4VisAttributes
{
70
71
friend
std::ostream&
operator <<
(std::ostream& os,
const
G4VisAttributes
&
a
);
72
73
public
:
// With description
74
75
enum
LineStyle
{
unbroken
,
dashed
,
dotted
};
76
enum
ForcedDrawingStyle
{
wireframe
,
solid
,
cloud
};
77
78
G4VisAttributes
();
79
G4VisAttributes
(
G4bool
visibility
);
80
G4VisAttributes
(
const
G4Colour
& colour);
81
G4VisAttributes
(
G4bool
visibility
,
const
G4Colour
& colour);
82
G4VisAttributes
(
const
G4VisAttributes
&);
83
~G4VisAttributes
();
84
G4VisAttributes
&
operator=
(
const
G4VisAttributes
&);
85
86
#ifndef WIN32
87
// Deprecated 14 July 2016 JA
88
// Use GetInvisible() instead. E.g.:
89
// logical_volume->SetVisAttributes(G4VisAttributes::GetInvisible());
90
// or use one of the above constructors or SetVisibility and
91
// logical_volume->SetVisAttributes(my_vis_attributes);
92
static
const
G4VisAttributes
Invisible
;
93
#endif
94
95
static
const
G4VisAttributes
&
GetInvisible
();
96
97
G4bool
operator !=
(
const
G4VisAttributes
& a)
const
;
98
G4bool
operator ==
(
const
G4VisAttributes
& a)
const
;
99
100
void
SetVisibility
(
G4bool
=
true
);
101
void
SetDaughtersInvisible
(
G4bool
=
true
);
102
void
SetColour
(
const
G4Colour
&);
103
void
SetColor
(
const
G4Color
&);
104
void
SetColour
(
G4double
red,
G4double
green,
G4double
blue,
105
G4double
alpha
= 1.);
106
void
SetColor
(
G4double
red,
G4double
green,
G4double
blue,
107
G4double
alpha
= 1.);
108
void
SetLineStyle
(
LineStyle
);
109
void
SetLineWidth
(
G4double
);
110
void
SetForceWireframe
(
G4bool
=
true
);
111
void
SetForceSolid
(
G4bool
=
true
);
112
void
SetForceCloud
(
G4bool
=
true
);
113
void
SetForceNumberOfCloudPoints
(
G4int
nPoints);
114
void
SetForceAuxEdgeVisible
(
G4bool
=
true
);
115
void
SetForceLineSegmentsPerCircle
(
G4int
nSegments);
116
// Allows choice of circle approximation. A circle of 360 degrees
117
// will be composed of nSegments line segments. If your solid has
118
// curves of D degrees that you need to divide into N segments,
119
// specify nSegments = N * 360 / D.
120
void
SetStartTime
(
G4double
);
121
void
SetEndTime
(
G4double
);
122
void
SetAttValues
(
const
std::vector<G4AttValue>*);
123
void
SetAttDefs
(
const
std::map<G4String,G4AttDef>*);
124
125
G4bool
IsVisible
()
const
;
126
G4bool
IsDaughtersInvisible
()
const
;
127
const
G4Colour
&
GetColour
()
const
;
128
const
G4Color
&
GetColor
()
const
;
129
LineStyle
GetLineStyle
()
const
;
130
G4double
GetLineWidth
()
const
;
131
G4bool
IsForceDrawingStyle
()
const
;
132
ForcedDrawingStyle
GetForcedDrawingStyle
()
const
;
133
G4int
GetForcedNumberOfCloudPoints
()
const
;
134
G4bool
IsForceAuxEdgeVisible
()
const
;
135
G4bool
IsForcedAuxEdgeVisible
()
const
;
136
G4bool
IsForceLineSegmentsPerCircle
()
const
;
137
G4int
GetForcedLineSegmentsPerCircle
()
const
;
138
G4double
GetStartTime
()
const
;
139
G4double
GetEndTime
()
const
;
140
static
G4int
GetMinLineSegmentsPerCircle
();
141
// Returns an expendable copy of the G4AttValues...
142
const
std::vector<G4AttValue>*
CreateAttValues
()
const
;
143
// Returns the orginal long life G4AttDefs...
144
const
std::map<G4String,G4AttDef>*
GetAttDefs
()
const
;
145
146
static
constexpr
G4int
fMinLineSegmentsPerCircle
= 3;
147
// Minumum number of sides per circle
148
149
static
constexpr
G4double
fVeryLongTime
= 1.e100 *
CLHEP::ns
;
150
// About 1.e75 billion years!! Used as default for start and end time.
151
152
private
:
153
154
G4bool
fVisible
;
// Visibility flag
155
G4bool
fDaughtersInvisible
;
// Make daughters invsibile.
156
G4Colour
fColour
;
157
LineStyle
fLineStyle
;
158
G4double
fLineWidth
;
// Units of "normal" device linewidth, e.g.,
159
// pixels for screen, 0.1 mm for paper.
160
G4bool
fForceDrawingStyle
;
// To switch on forced drawing style.
161
ForcedDrawingStyle
fForcedStyle
;
// Value of forced drawing style.
162
G4int
fForcedNumberOfCloudPoints
;
// Number of points used for cloud style.
163
// <=0 means take viewer default
164
G4bool
fForceAuxEdgeVisible
;
// To switch on a forced auxiliary edge mode.
165
G4bool
fForcedAuxEdgeVisible
;
// Whether aux edges are visible or not.
166
G4int
fForcedLineSegmentsPerCircle
;
// Forced lines segments per
167
// circle. <=0 means not forced.
168
G4double
fStartTime
,
fEndTime
;
// Time range.
169
const
std::vector<G4AttValue>*
fAttValues
;
// For picking, etc.
170
const
std::map<G4String,G4AttDef>*
fAttDefs
;
// Corresponding definitions.
171
};
172
173
#include "G4VisAttributes.icc"
174
175
#endif
geant4
tree
geant4-10.6-release
source
graphics_reps
include
G4VisAttributes.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:21
using
1.8.2 with
ECCE GitHub integration