ATLAS Offline Software
Loading...
Searching...
No Matches
DetVisAttributes Class Reference

#include <VisAttributes.h>

Inheritance diagram for DetVisAttributes:
Collaboration diagram for DetVisAttributes:

Public Member Functions

 DetVisAttributes ()
void init ()
SoMaterial * get (const std::string &name) const
void overrideTransparencies (float transpfact)
QByteArray getState (bool onlyChangedMaterials=true)
void applyState (QByteArray)

Protected Member Functions

void add (const std::string &name, SoMaterial *)
void setColorFromRGB (SoMaterial *mat, const std::string &type, const int r, const int g, const int b)

Private Member Functions

float getValFromRGB (const int rgb)

Private Attributes

Impm_d

Detailed Description

Definition at line 57 of file VisAttributes.h.

Constructor & Destructor Documentation

◆ DetVisAttributes()

DetVisAttributes::DetVisAttributes ( )

Definition at line 173 of file VisAttributes.cxx.

173 {
174 {
175 SoMaterial *material = new SoMaterial;
176 material->ambientColor.setValue(0.18, 0.08, 0.20);
177 material->diffuseColor.setValue(0.72, 0.30, 0.78);
178 material->specularColor.setValue(0.9, 0.9, 0.9);
179 material->shininess.setValue(0.4);
180 add("HGTD", material);
181 }
182 {
183 SoMaterial *material = new SoMaterial;
184 material->ambientColor.setValue(0, .157811, .187004);
185 material->diffuseColor.setValue(0, .631244, .748016);
186 material->specularColor.setValue(.915152, .915152, .915152);
187 material->shininess.setValue(0.642424);
188 add("Pixel",material);
189 }
190
191 {
192 SoMaterial *material = new SoMaterial;
193 material->ambientColor.setValue(0, .157811, .187004);
194 material->diffuseColor.setValue(0, .631244, .748016);
195 material->specularColor.setValue(.915152, .915152, .915152);
196 material->shininess.setValue(0.642424);
197 add("ITkPixel",material);
198 }
199
200 {
201 SoMaterial *material = new SoMaterial;
202 material->ambientColor.setValue(0, .157811, .187004);
203 material->diffuseColor.setValue(.40, .631244, .748016);
204 material->specularColor.setValue(.915152, .915152, .915152);
205 material->shininess.setValue(0.642424);
206 add("Tile",material);
207 }
208
209 {
210 SoMaterial *material = new SoMaterial;
211 material->ambientColor.setValue(0, .157811, .187004);
212 material->diffuseColor.setValue(1, .8, .7);
213 material->specularColor.setValue(.915152, .915152, .915152);
214 material->shininess.setValue(0.642424);
215 add("BeamPipe",material);
216 }
217
218 {
219 SoMaterial *material = new SoMaterial;
220 material->ambientColor.setValue(0, .6, .6);
221 material->diffuseColor.setValue(1, .8, .7);
222 material->specularColor.setValue(.91515, .915152, .915152);
223 material->shininess.setValue(0.642424);
224 add("CavernInfra",material);
225 }
226
227 {
228 SoMaterial *material = new SoMaterial;
229 material->ambientColor.setValue(0.2, 0.2, 0.2);
230 material->diffuseColor.setValue(0, 0.6667, 1.0);
231 material->specularColor.setValue(0,0,0);
232 // material->shininess.setValue(0.642424);
233// material->ambientColor.setValue(0, .157811, .187004);
234// material->diffuseColor.setValue(1, 0, 0);
235// material->specularColor.setValue(.915152, .915152, .915152);
236// material->shininess.setValue(0.642424);
237
238 add("Muon",material);
239
240 {
241 SoMaterial *material = new SoMaterial;
242 material->ambientColor.setValue(0, .157811, .187004);
243 material->diffuseColor.setValue(.98, .8, .21);
244 material->specularColor.setValue(.915152, .915152, .915152);
245 material->shininess.setValue(0.2);
246 add("CSC",material);
247 }
248
249 {
250 SoMaterial *material = new SoMaterial;
251 material->ambientColor.setValue(0, .157811, .187004);
252 material->diffuseColor.setValue(0, .9, .5);
253 material->specularColor.setValue(.915152, .915152, .915152);
254 material->shininess.setValue(0.2);
255 add("EndcapMdt",material);
256 }
257
258 {
259 SoMaterial *material = new SoMaterial;
260 material->ambientColor.setValue(0,0,0);
261 material->diffuseColor.setValue(0.41,0,0.26);
262 material->specularColor.setValue(0,0,0);
263 material->shininess.setValue(0.2);
264 add("TGC",material);
265 }
266
267 {
268 SoMaterial *material = new SoMaterial;
269
270 material->ambientColor.setValue(0.2, 0.2, 0.2);
271 material->diffuseColor.setValue(0, 0.6667, 1.0);
272 material->specularColor.setValue(0,0,0);
273// material->ambientColor.setValue(0, .157811, .187004);
274// material->diffuseColor.setValue(1, .2, .7);
275// material->specularColor.setValue(.915152, .915152, .915152);
276 material->shininess.setValue(0.2);
277
278
279 add("BarrelInner",material);
280 add("BarrelMiddle",material);
281 add("BarrelOuter",material);
282 }
283
284 {
285 SoMaterial *material = new SoMaterial;
286 material->ambientColor.setValue(0, .157811, .187004);
287 material->diffuseColor.setValue(1, .5, .5);
288 material->specularColor.setValue(.915152, .915152, .915152);
289 material->shininess.setValue(0.2);
290 add("BarrelToroid",material);
291 add("EndcapToroid",material);
292 }
293
294 {
295 SoMaterial *material = new SoMaterial;
296 material->ambientColor.setValue(0, .157811, .187004);
297 material->diffuseColor.setValue(.5, .5, 1.0);
298 material->specularColor.setValue(.915152, .915152, .915152);
299 material->shininess.setValue(0.2);
300 add("Feet",material);
301 }
302 }
303
304 {
305 SoMaterial *material = new SoMaterial;
306 material->ambientColor.setValue(.37, .69, 1.00);
307 material->diffuseColor.setValue(.21, .64, 1.00);
308 material->specularColor.setValue(1, 1, 1);
309 material->shininess.setValue(1.0);
310 add("SCT",material);
311 }
312
313 {
314 SoMaterial *material = new SoMaterial;
315 material->ambientColor.setValue(.37, .69, 1.00);
316 material->diffuseColor.setValue(.21, .64, 1.00);
317 material->specularColor.setValue(1, 1, 1);
318 material->shininess.setValue(1.0);
319 add("ITkStrip",material);
320 }
321
322 {
323 SoMaterial *material = new SoMaterial;
324 add("LAr",material);
325 add("LArBarrel",material);
326 add("LArEndcapPos",material);
327 add("LArEndcapNeg",material);
328 }
329
330 {
331 SoMaterial *material = new SoMaterial;
332 add("TRT",material);
333 }
334
335 {
336 SoMaterial *material = new SoMaterial;
337 add("InDetServMat",material);
338 material->diffuseColor.setValue(0.4,0.31,0);
339 material->shininess.setValue(1.0);
340 }
341
342 {
343 SoMaterial *material = new SoMaterial();
344 add("LucidSideA",material);
345 add("LucidSideC",material);
346 material->diffuseColor.setValue(0.6,0.11,0.3);
347 material->shininess.setValue(1.0);
348 }
349
350 {
351 SoMaterial *material = new SoMaterial;
352 material->ambientColor.setValue(0, .157811, .187004);
353 material->diffuseColor.setValue(0., 0., 0.56862745);
354 material->specularColor.setValue(.915152, .915152, .915152);
355 material->shininess.setValue(0.2);
356 add("Zdc",material);
357 }
358
359
360 // {
361 // SoMaterial *material = new SoMaterial();
362 // add("LcdXXX",material);
363 // add("LcdYYY",material);
364 // material->diffuseColor.setValue(0.6,0.11,0.3);
365 // material->shininess.setValue(1.0);
366 // }
367
368 init();
369}
void add(const std::string &name, SoMaterial *)

Member Function Documentation

◆ add()

void VisAttributes::add ( const std::string & name,
SoMaterial * material )
protectedinherited

Definition at line 122 of file VisAttributes.cxx.

122 {
123 if (m_d->_map.find(name)!=m_d->_map.end()) {
124 std::cout<<"VisAttributes::add ERROR: Material " <<name<<" already added!"<<std::endl;
125 return;
126 }
127 material->ref();
128 m_d->_map[name]=material;
129 if (material->transparency.getNum()!=1)
130 std::cout<<"VisAttributes::add Warning: Found #transparency values different from 1 in material "<<name<<std::endl;
131 // FIXME. Commented out, because Ric and I are not sure why this is an issue
132 // We may want to add this back if this turns out to indicate a real problem
133 // if (material->transparency[0]!=0.0)
134 // std::cout<<"VisAttributes::add Warning: Found transparency value different from 0 in material "<<name<<std::endl;
135}

◆ applyState()

void VisAttributes::applyState ( QByteArray ba)
inherited

Definition at line 61 of file VisAttributes.cxx.

62{
63 //Get map out:
64 QMap<QString,QByteArray> storedstates;
65 QBuffer buffer(&ba);
66 buffer.open(QIODevice::ReadOnly);
67 QDataStream state(&buffer);
68 qint32 version;
69 state >> version;
70 if (version!=0)
71 return;//ignore silently
72 state >> storedstates;
73 buffer.close();
74
75 std::map< std::string, SoMaterial *>::iterator itMat,itMatE(m_d->_map.end());
76
77 //Apply states from map:
78 QMap<QString,QByteArray>::const_iterator it, itE(storedstates.constEnd());
79 for (it = storedstates.constBegin(); it!=itE; ++it) {
80 itMat = m_d->_map.find(it.key().toStdString());
81 if (itMat!=itMatE) {
82 QByteArray b(it.value());
84 }
85 }
86
87}
static bool deserialiseSoMaterial(QByteArray &, SoMaterial *&)

◆ get()

SoMaterial * VisAttributes::get ( const std::string & name) const
inherited

Definition at line 113 of file VisAttributes.cxx.

113 {
114 std::map <std::string, SoMaterial *>::const_iterator m = m_d->_map.find(name);
115 if (m!=m_d->_map.end()) {
116 return (*m).second;
117 } else {
118 return NULL;
119 }
120}

◆ getState()

QByteArray VisAttributes::getState ( bool onlyChangedMaterials = true)
inherited

Definition at line 32 of file VisAttributes.cxx.

33{
34 //Figure out states to store
35 QMap<QString,QByteArray> storedstates, statesnow = m_d->currentState();
36 if (onlyChangedMaterials) {
37 QMap<QString,QByteArray>::const_iterator it, itE(statesnow.constEnd());
38 QMap<QString,QByteArray>::const_iterator itOrig, itOrigE(m_d->initialState.constEnd());
39 for (it = statesnow.constBegin(); it!=itE; ++it) {
40 itOrig = m_d->initialState.constFind(it.key());
41 if (itOrig==itOrigE||it.value()!=itOrig.value())
42 storedstates.insert(it.key(),it.value());
43 }
44 } else {
45 storedstates = statesnow;
46 }
47
48 //Put map in bytearray and return:
49 QByteArray byteArray;
50 QBuffer buffer(&byteArray);
51 buffer.open(QIODevice::WriteOnly);
52 QDataStream out(&buffer);
53 out << qint32(0);//version
54 out << storedstates;
55 buffer.close();
56 return byteArray;
57
58}

◆ getValFromRGB()

float VisAttributes::getValFromRGB ( const int rgb)
privateinherited

Definition at line 144 of file VisAttributes.cxx.

145{
146 return rgb/255.0;
147}

◆ init()

void VisAttributes::init ( )
inherited

Definition at line 26 of file VisAttributes.cxx.

27{
28 m_d->initialState = m_d->currentState();
29}

◆ overrideTransparencies()

void VisAttributes::overrideTransparencies ( float transpfact)
inherited

Definition at line 137 of file VisAttributes.cxx.

138{
139 std::map< std::string, SoMaterial *>::iterator it, itE = m_d->_map.end();
140 for (it=m_d->_map.begin();it!=itE;++it)
141 it->second->transparency.set1Value( 0, transpfact );
142}

◆ setColorFromRGB()

void VisAttributes::setColorFromRGB ( SoMaterial * mat,
const std::string & type,
const int r,
const int g,
const int b )
protectedinherited

Definition at line 149 of file VisAttributes.cxx.

150{
151 const float fr = getValFromRGB(r);
152 const float fg = getValFromRGB(g);
153 const float fb = getValFromRGB(b);
154 if (type == "ambient")
155 mat->ambientColor.setValue(fr, fg, fb);
156 else if (type == "diffuse")
157 mat->diffuseColor.setValue(fr, fg, fb);
158 else if (type == "specular")
159 mat->specularColor.setValue(fr, fg, fb);
160 else if (type == "emissive")
161 mat->emissiveColor.setValue(fr, fg, fb);
162 else
163 std::cout << "ERROR! Color type not supported ==> " << type << std::endl;
164
165 // Debug Msg
166 //std::cout << "Set color (" << r << "," << g << "," << b << ") to (" << fr << "," << fg << "," << fb << ")" << std::endl;
167 return;
168}
float getValFromRGB(const int rgb)
int r
Definition globals.cxx:22

Member Data Documentation

◆ m_d

Imp* VisAttributes::m_d
privateinherited

Definition at line 48 of file VisAttributes.h.


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