Geant4-11
Public Member Functions | Protected Attributes
G4DefaultLinearColorMap Class Reference

#include <G4DefaultLinearColorMap.hh>

Inheritance diagram for G4DefaultLinearColorMap:
G4VScoreColorMap

Public Member Functions

virtual void DrawColorChart (G4int nPoint=5)
 
virtual void DrawColorChartBar (G4int nPoint)
 
virtual void DrawColorChartText (G4int nPoint)
 
 G4DefaultLinearColorMap (G4String mName)
 
virtual void GetMapColor (G4double val, G4double color[4])
 
G4double GetMax () const
 
G4double GetMin () const
 
G4String GetName () const
 
G4bool IfFloatMinMax () const
 
void SetFloatingMinMax (G4bool vl=true)
 
void SetMinMax (G4double minVal, G4double maxVal)
 
void SetPSName (G4String &psName)
 
void SetPSUnit (G4String &unit)
 
virtual ~G4DefaultLinearColorMap ()
 

Protected Attributes

G4double fMaxVal
 
G4double fMinVal
 
G4String fName
 
G4String fPSName
 
G4String fPSUnit
 
G4VVisManagerfVisManager
 
G4bool ifFloat
 

Detailed Description

Definition at line 35 of file G4DefaultLinearColorMap.hh.

Constructor & Destructor Documentation

◆ G4DefaultLinearColorMap()

G4DefaultLinearColorMap::G4DefaultLinearColorMap ( G4String  mName)

Definition at line 31 of file G4DefaultLinearColorMap.cc.

32 : G4VScoreColorMap(mName)
33{
34 ;
35}
G4VScoreColorMap(G4String mName)

◆ ~G4DefaultLinearColorMap()

G4DefaultLinearColorMap::~G4DefaultLinearColorMap ( )
virtual

Definition at line 37 of file G4DefaultLinearColorMap.cc.

37{ ; }

Member Function Documentation

◆ DrawColorChart()

void G4VScoreColorMap::DrawColorChart ( G4int  nPoint = 5)
virtualinherited

Definition at line 54 of file G4VScoreColorMap.cc.

55{
57 if(!fVisManager)
58 {
59 G4cerr << "G4VScoringMesh::DrawColorChart(): no visualization system"
60 << G4endl;
61 return;
62 }
63
64 DrawColorChartBar(_nPoint);
65 DrawColorChartText(_nPoint);
66}
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
virtual void DrawColorChartText(G4int nPoint)
G4VVisManager * fVisManager
virtual void DrawColorChartBar(G4int nPoint)
static G4VVisManager * GetConcreteInstance()

References G4VScoreColorMap::DrawColorChartBar(), G4VScoreColorMap::DrawColorChartText(), G4VScoreColorMap::fVisManager, G4cerr, G4endl, and G4VVisManager::GetConcreteInstance().

Referenced by G4ScoringBox::Draw(), G4ScoringCylinder::Draw(), G4ScoringBox::DrawColumn(), and G4ScoringCylinder::DrawColumn().

◆ DrawColorChartBar()

void G4VScoreColorMap::DrawColorChartBar ( G4int  nPoint)
virtualinherited

Reimplemented in G4ScoreLogColorMap.

Definition at line 68 of file G4VScoreColorMap.cc.

69{
70 G4double min = this->GetMin();
71 G4double max = this->GetMax();
72 G4double smin = -0.89, smax = smin + 0.05 * (_nPoint) *0.83, step = 0.001;
73 G4double c[4];
74
76
77 for(G4double y = smin; y < smax; y += step)
78 {
79 G4double ra = (y - smin) / (smax - smin), rb = 1. - ra;
80 G4Polyline line;
81 line.push_back(G4Point3D(-0.96, y, 0.));
82 line.push_back(G4Point3D(-0.91, y, 0.));
83 this->GetMapColor((ra * max + rb * min) / (ra + rb), c);
84 G4Colour col(c[0], c[1], c[2]);
85 G4VisAttributes att(col);
86 line.SetVisAttributes(&att);
87 fVisManager->Draw2D(line);
88 }
89
91}
HepGeom::Point3D< G4double > G4Point3D
Definition: G4Point3D.hh:34
double G4double
Definition: G4Types.hh:83
G4double GetMax() const
G4double GetMin() const
virtual void GetMapColor(G4double val, G4double color[4])=0
virtual void Draw2D(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())=0
virtual void EndDraw2D()=0
virtual void BeginDraw2D(const G4Transform3D &objectTransformation=G4Transform3D())=0
void SetVisAttributes(const G4VisAttributes *)
Definition: G4Visible.cc:96
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments

References G4VVisManager::BeginDraw2D(), G4VVisManager::Draw2D(), G4VVisManager::EndDraw2D(), G4VScoreColorMap::fVisManager, G4VScoreColorMap::GetMapColor(), G4VScoreColorMap::GetMax(), G4VScoreColorMap::GetMin(), G4INCL::Math::max(), G4INCL::Math::min(), and G4Visible::SetVisAttributes().

Referenced by G4VScoreColorMap::DrawColorChart().

◆ DrawColorChartText()

void G4VScoreColorMap::DrawColorChartText ( G4int  nPoint)
virtualinherited

Reimplemented in G4ScoreLogColorMap.

Definition at line 93 of file G4VScoreColorMap.cc.

94{
95 G4double min = this->GetMin();
96 G4double max = this->GetMax();
97 G4double c[4];
98 G4Colour black(0.1, 0.1, 0.1, 0.8);
99
101
102 for(int n = 0; n < _nPoint; n++)
103 {
104 G4double a = n / (_nPoint - 1.), b = 1. - a;
105 G4double v = (a * max + b * min) / (a + b);
106 // background color
107
108 for(int l = 0; l < 21; l++)
109 {
110 G4Polyline line;
111 line.push_back(G4Point3D(-0.9, -0.905 + 0.05 * n + 0.002 * l, 0.));
112 line.push_back(G4Point3D(-0.75, -0.905 + 0.05 * n + 0.002 * l, 0.));
113 G4VisAttributes attblack(black);
114 line.SetVisAttributes(&attblack);
115 fVisManager->Draw2D(line);
116 }
117
118 // text
119 // char cstring[80];
120 // std::sprintf(cstring, "%8.2e", v);
121 // G4String value(cstring);
122 std::ostringstream oss;
123 oss << std::setw(8) << std::setprecision(1) << std::scientific << v;
124 std::string str = oss.str();
125 G4String value = str; //.c_str());
126
127 G4Text text(value, G4Point3D(-0.9, -0.9 + 0.05 * n, 0.4));
128 G4double size = 12.;
129 text.SetScreenSize(size);
130 this->GetMapColor(v, c);
131 G4Colour color(c[0], c[1], c[2], 1.);
132 G4VisAttributes att(color);
133 text.SetVisAttributes(&att);
134
135 fVisManager->Draw2D(text);
136 }
137
138 // draw ps name
139 // background
140 G4double lpsname = 2. + fPSName.size() * 0.95;
141 if(lpsname > 0)
142 {
143 for(int l = 0; l < 22; l++)
144 {
145 G4Polyline line;
146 line.push_back(G4Point3D(-0.92, -0.965 + 0.002 * l, 0.));
147 line.push_back(
148 G4Point3D(-0.92 + 0.025 * lpsname, -0.965 + 0.002 * l, 0.));
149 G4VisAttributes attblack(black);
150 // G4VisAttributes attblack(G4Colour(.5, .5, 1.));
151 line.SetVisAttributes(&attblack);
152 fVisManager->Draw2D(line);
153 }
154
155 // ps name
156 G4Text txtpsname(fPSName, G4Point3D(-0.9, -0.96, 0.1));
157 G4double size = 12.;
158 txtpsname.SetScreenSize(size);
159 G4Colour color(1., 1., 1.);
160 G4VisAttributes att(color);
161 txtpsname.SetVisAttributes(&att);
162 fVisManager->Draw2D(txtpsname);
163 }
164
165 // draw unit
166 // background
167 G4double len = 2. + fPSUnit.size();
168 if(len > 0)
169 {
170 for(int l = 0; l < 21; l++)
171 {
172 G4Polyline line;
173 line.push_back(G4Point3D(-0.7, -0.9 + 0.002 * l, 0.));
174 line.push_back(G4Point3D(-0.7 + 0.025 * len, -0.9 + 0.002 * l, 0.));
175 G4VisAttributes attblack(black);
176 // G4VisAttributes attblack(G4Colour(.5, .5, .5));
177 line.SetVisAttributes(&attblack);
178 fVisManager->Draw2D(line);
179 }
180
181 // unit
182 G4String psunit = "[" + fPSUnit + "]";
183 G4Text txtunit(psunit, G4Point3D(-0.69, -0.9, 0.1));
184 G4double size = 12.;
185 txtunit.SetScreenSize(size);
186 G4Colour color(1., 1., 1.);
187 G4VisAttributes att(color);
188 txtunit.SetVisAttributes(&att);
189 fVisManager->Draw2D(txtunit);
190 }
191
193}
Definition: G4Text.hh:72

References G4VVisManager::BeginDraw2D(), G4VVisManager::Draw2D(), G4VVisManager::EndDraw2D(), G4VScoreColorMap::fPSName, G4VScoreColorMap::fPSUnit, G4VScoreColorMap::fVisManager, G4VScoreColorMap::GetMapColor(), G4VScoreColorMap::GetMax(), G4VScoreColorMap::GetMin(), G4INCL::Math::max(), G4INCL::Math::min(), CLHEP::detail::n, G4VMarker::SetScreenSize(), and G4Visible::SetVisAttributes().

Referenced by G4VScoreColorMap::DrawColorChart().

◆ GetMapColor()

void G4DefaultLinearColorMap::GetMapColor ( G4double  val,
G4double  color[4] 
)
virtual

Implements G4VScoreColorMap.

Definition at line 39 of file G4DefaultLinearColorMap.cc.

40{
41 G4double value;
42 if(fMaxVal == fMinVal)
43 value = 0.;
44 else
45 value = (val - fMinVal) / (fMaxVal - fMinVal);
46
47 if(value > 1.)
48 {
49 value = 1.;
50 }
51 if(value < 0.)
52 {
53 value = 0.;
54 }
55
56 // color map
57 const int NCOLOR = 6;
58 struct ColorMap
59 {
60 G4double val;
61 G4double rgb[4];
62 } colormap[NCOLOR] = { { 0.0, { 1., 1., 1., 1. } }, // value, r, g, b, alpha
63 { 0.2, { 0., 0., 1., 1. } },
64 { 0.4, { 0., 1., 1., 1. } },
65 { 0.6, { 0., 1., 0., 1. } },
66 { 0.8, { 1., 1., 0., 1. } },
67 { 1.0, { 1., 0., 0., 1. } } };
68
69 // search
70 G4int during[2] = { 0, 0 };
71 for(int i = 1; i < NCOLOR; i++)
72 {
73 if(colormap[i].val >= value)
74 {
75 during[0] = i - 1;
76 during[1] = i;
77 break;
78 }
79 }
80
81 // interpolate
82 G4double a = std::fabs(value - colormap[during[0]].val);
83 G4double b = std::fabs(value - colormap[during[1]].val);
84 for(int i = 0; i < 4; i++)
85 {
86 color[i] =
87 (b * colormap[during[0]].rgb[i] + a * colormap[during[1]].rgb[i]) /
88 (colormap[during[1]].val - colormap[during[0]].val);
89 if(color[i] > 1.)
90 color[i] = 1.;
91 }
92}
int G4int
Definition: G4Types.hh:85

References G4VScoreColorMap::fMaxVal, and G4VScoreColorMap::fMinVal.

◆ GetMax()

G4double G4VScoreColorMap::GetMax ( ) const
inlineinherited

◆ GetMin()

G4double G4VScoreColorMap::GetMin ( ) const
inlineinherited

◆ GetName()

G4String G4VScoreColorMap::GetName ( ) const
inlineinherited

◆ IfFloatMinMax()

G4bool G4VScoreColorMap::IfFloatMinMax ( ) const
inlineinherited

◆ SetFloatingMinMax()

void G4VScoreColorMap::SetFloatingMinMax ( G4bool  vl = true)
inlineinherited

Definition at line 47 of file G4VScoreColorMap.hh.

47{ ifFloat = vl; }

References G4VScoreColorMap::ifFloat.

Referenced by G4ScoringMessenger::SetNewValue().

◆ SetMinMax()

void G4VScoreColorMap::SetMinMax ( G4double  minVal,
G4double  maxVal 
)
inlineinherited

Definition at line 49 of file G4VScoreColorMap.hh.

50 {
51 if(minVal >= maxVal)
52 {
53 G4cerr << "WARNING: G4VScoreColoMap::SetMinMax() : minimum is larger "
54 "than or equal to maximum. Verify values you set, ["
55 << minVal << ", " << maxVal << "]" << G4endl;
56 fMinVal = maxVal;
57 fMaxVal = minVal;
58 }
59 else
60 {
61 fMinVal = minVal;
62 fMaxVal = maxVal;
63 }
64 }

References G4VScoreColorMap::fMaxVal, G4VScoreColorMap::fMinVal, G4cerr, and G4endl.

Referenced by G4ScoringBox::Draw(), G4ScoringCylinder::Draw(), G4ScoringBox::DrawColumn(), G4ScoringCylinder::DrawColumn(), and G4ScoringMessenger::SetNewValue().

◆ SetPSName()

void G4VScoreColorMap::SetPSName ( G4String psName)
inlineinherited

◆ SetPSUnit()

void G4VScoreColorMap::SetPSUnit ( G4String unit)
inlineinherited

Field Documentation

◆ fMaxVal

G4double G4VScoreColorMap::fMaxVal
protectedinherited

◆ fMinVal

G4double G4VScoreColorMap::fMinVal
protectedinherited

◆ fName

G4String G4VScoreColorMap::fName
protectedinherited

Definition at line 79 of file G4VScoreColorMap.hh.

Referenced by G4VScoreColorMap::GetName().

◆ fPSName

G4String G4VScoreColorMap::fPSName
protectedinherited

◆ fPSUnit

G4String G4VScoreColorMap::fPSUnit
protectedinherited

◆ fVisManager

G4VVisManager* G4VScoreColorMap::fVisManager
protectedinherited

◆ ifFloat

G4bool G4VScoreColorMap::ifFloat
protectedinherited

The documentation for this class was generated from the following files: