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

#include <VisAttributes.h>

Inheritance diagram for VolVisAttributes:
Collaboration diagram for VolVisAttributes:

Public Member Functions

 VolVisAttributes ()
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 71 of file VisAttributes.h.

Constructor & Destructor Documentation

◆ VolVisAttributes()

VolVisAttributes::VolVisAttributes ( )

Definition at line 1222 of file VisAttributes.cxx.

1222 {
1223
1224 // WARM CYLINDER
1225 {
1226 SoMaterial *m = new SoMaterial;
1227 m->ambientColor.setValue(1, .4, .4);
1228 m->diffuseColor.setValue(1, .4, .4);
1229 m->specularColor.setValue(0.441667, 0.441667, 0.441667);
1230 m->shininess.setValue(0.67);
1231 add( "LAr::Barrel::Cryostat::Cylinder::#4",m);
1232 add( "LAr::Barrel::Cryostat::Cylinder::#5",m);
1233 add( "LAr::Barrel::Cryostat::Cylinder::#6",m);
1234 add( "LAr::Barrel::Cryostat::Cylinder::#7",m);
1235 add( "LAr::Barrel::Cryostat::Cylinder::#8",m);
1236 add( "LAr::Barrel::Cryostat::Cylinder::#9",m);
1237 add( "LAr::Barrel::Cryostat::InnerWall",m);
1238 add( "LAr::Barrel::Cryostat::InnerEndWall",m);
1239 add( "LAr::Barrel::Cryostat::Leg",m);
1240 }
1241
1242 {
1243 // WARM CYLINDER
1244 SoMaterial *m = new SoMaterial;
1245 m->ambientColor.setValue(.4, .4, 1);
1246 m->diffuseColor.setValue(.4, .4, 1);
1247 m->specularColor.setValue(0.441667, 0.441667, 0.441667);
1248 m->shininess.setValue(0.67);
1249 add( "LAr::Barrel::Cryostat::Cylinder::#0",m);
1250 add( "LAr::Barrel::Cryostat::Cylinder::#1",m);
1251 add( "LAr::Barrel::Cryostat::Cylinder::#2",m);
1252 add( "LAr::Barrel::Cryostat::Cylinder::#3",m);
1253 add( "LAr::Barrel::Cryostat::Ear",m);
1254 add( "LAr::Barrel::Cryostat::OuterWall",m);
1255 }
1256
1257 {
1258 SoMaterial *m = new SoMaterial;
1259 m->diffuseColor.setValue (1, 1, 0.5);
1260 m->ambientColor.setValue (0.54, 0.54, 0.27);
1261 m->emissiveColor.setValue (0.133, 0.133, 0.067);
1262 add("bcmModLog",m);
1263 add("bcmWallLog",m);
1264 }
1265
1266
1267
1268 {
1269 // Cutout - EMEC
1270 SoMaterial *m = new SoMaterial;
1271 //setColorFromRGB(m, "diffuse", 255, 190, 11); // ffbe0b - Mango (lighter)
1272 setColorFromRGB(m, "diffuse",245, 180, 0); // F5B400 - Selective Yellow (darker)
1273 m->shininess.setValue(0.67);
1274 add( "LAr::EMEC::Mother",m);
1275 }
1276 {
1277 // Cutout - HEC
1278 SoMaterial *m = new SoMaterial;
1279 setColorFromRGB(m, "diffuse", 47, 25, 95); // 2f195f - Russian Violet (darker)
1280 //setColorFromRGB(m, "diffuse",56, 30, 113); // 381E71 - Persian Indigo (lighter)
1281 m->shininess.setValue(0.67);
1282 add( "LAr::HEC::LiquidArgon",m);
1283 }
1284 {
1285 // Cutout - FCAL
1286 SoMaterial *m = new SoMaterial;
1287 setColorFromRGB(m, "diffuse", 246, 247, 64); // f6f740 - Maximum Yellow
1288 m->shininess.setValue(0.67);
1289 add( "LAr::FCAL::LiquidArgonC",m);
1290 add( "LAr::FCAL::LiquidArgonA",m);
1291 }
1292
1293 {
1294 // Cutout - TRT
1295 SoMaterial *m = new SoMaterial;
1296 setColorFromRGB(m, "diffuse", 114, 83, 143); // 72538F - Royal Purple
1297 m->shininess.setValue(0.67);
1298 add( "TRTEndcapWheelAB",m);
1299 add( "TRTBarrel",m);
1300 }
1301
1302 {
1303 // Cutout - SCT
1304 SoMaterial *m = new SoMaterial;
1305 //setColorFromRGB(m, "diffuse", 80, 255, 177); // 50FFB1 - Medium Spring Green
1306 setColorFromRGB(m, "diffuse", 170, 255, 255); // AAFFFF - Celeste
1307 m->shininess.setValue(0.67);
1308 add( "SCT_Barrel",m);
1309 add( "SCT_ForwardA",m);
1310 add( "SCT_ForwardC",m);
1311 }
1312
1313 // Detailed Muon View for Run3 Detector Paper
1314 // RPC layers
1315 {
1316 SoMaterial *m = new SoMaterial;
1317 setColorFromRGB(m, "diffuse", 61, 52, 139); // 3D348B - Dark Slate Blue
1318 m->shininess.setValue(0.67);
1319 //add( "RPC_AL_extsuppanel",m); // WIP
1320 add( "Rpclayer",m);
1321 }
1322
1323 // Adding ITk colors
1324 // ITk Pixel sensors
1325 {
1326 SoMaterial *m = new SoMaterial;
1327 setColorFromRGB(m, "diffuse", 81, 163, 119);
1328 setColorFromRGB(m, "ambient", 0, 40, 48);
1329 setColorFromRGB(m, "specular", 255, 255, 255);
1330 setColorFromRGB(m, "emissive", 0, 0, 0);
1331 m->shininess.setValue(0.5);
1332
1333 // innermost pixel barrel layer
1334 add( "InnerBarrelSingleMod_Sensor",m);
1335 add( "InnerBarrelSingleMod_DeadVolume",m);
1336 add( "InnerBarrelSingleMod_Chip",m);
1337 add( "InnerBarrelSingleMod_Bonding",m);
1338 // next-to-innermost pixel barrel layer
1339 add( "InnerBarrelQuadMod_Sensor",m);
1340 add( "InnerRingSingleMod_Chip",m);
1341 // innermost pixel endcap layer
1342 add( "InnerRingSingleMod_Sensor",m);
1343 add( "InnerRingSingleMod_Bonding",m);
1344 // next-to-innermost pixel endcap layer
1345 add( "InnerEndcapQuadMod_Sensor",m);
1346 // next-to-innermost pixel layers
1347 add( "InnerQuadMod_Chip",m);
1348 add( "InnerQuadMod_Bonding",m);
1349 // outer pixel barrel layers
1350 add( "OuterBarrelQuadMod_Sensor",m);
1351 add( "InclinedQuadMod_Sensor",m);
1352 // outer pixel endcap layers
1353 add( "OuterEndcapQuadMod_Sensor",m);
1354 // outer pixel layers
1355 add( "OuterQuadMod_Chip",m);
1356 add( "OuterQuadMod_Bonding",m);
1357
1358 }
1359
1360 // ITk Strip sensors
1361 {
1362 SoMaterial *m = new SoMaterial;
1363 setColorFromRGB(m, "diffuse", 54, 163, 255);
1364 setColorFromRGB(m, "ambient", 0, 0, 0);
1365 setColorFromRGB(m, "specular", 0, 0, 0);
1366 setColorFromRGB(m, "emissive", 37, 74, 111);
1367
1368 // strip barrel
1369 add( "BRLSensorSS",m);
1370 add( "BRLSensorMS",m);
1371
1372 // strip endcap
1373 add( "ECSensor0",m);
1374 add( "ECSensor1",m);
1375 add( "ECSensor2",m);
1376 add( "ECSensor3",m);
1377 add( "ECSensor4",m);
1378 add( "ECSensor5",m);
1379
1380 add( "ECSensorBack0",m);
1381 add( "ECSensorBack1",m);
1382 add( "ECSensorBack2",m);
1383 add( "ECSensorBack3",m);
1384 add( "ECSensorBack4",m);
1385 add( "ECSensorBack5",m);
1386
1387 }
1388
1389 // ITk Pixel services
1390 {
1391 SoMaterial *m = new SoMaterial;
1392 setColorFromRGB(m, "diffuse", 81, 163, 119);
1393 setColorFromRGB(m, "ambient", 0, 40, 48);
1394 setColorFromRGB(m, "specular", 255, 255, 255);
1395 setColorFromRGB(m, "emissive", 0, 0, 0);
1396 m->shininess.setValue(0.5);
1397
1398 m->transparency.setValue(0.6);
1399
1400 // pigtails and flexes
1401 // innermost pixel barrel layer
1402 add( "InnerBarrelSingleMod_Pigtail",m);
1403 // next-to-innermost pixel layers
1404 add( "InnerQuadMod_QuadPigtail",m);
1405 add( "InnerQuadMod_QuadFlex",m);
1406 // outer pixel layers
1407 add( "OuterQuadMod_QuadFlex",m);
1408
1409 // Services and cooling
1410 // inner pixel system
1411 add( "InnerPixelBarrel_T0",m);
1412 add( "InnerPixEndcap_L0T0Back_ring",m);
1413 add( "InnerPixEndcap_L1T0Front_ring",m);
1414 add( "InnerPixEndcap_L1T0Back_ring",m);
1415 add( "InnerPixEndcap_L2T0Front_ring",m);
1416 add( "InnerPixEndcap_L2T0Back_ring",m);
1417 // outer pixel system
1418 add( "L2HalfRingEndCapBusTapeRing",m);
1419 add( "L3HalfRingEndCapBusTapeRing",m);
1420 add( "L4endcapBusTape",m);
1421
1422 // other types and endcaps
1423 unsigned int sectors = 9;
1424 std::vector<unsigned int> layers = {2, 3, 4};
1425 for (auto& layer : layers) {
1426 for (unsigned int sector = 0; sector<sectors; sector++) {
1427 std::string volumeName = "Pixel__ModuleSvcM" + std::to_string(sectors-sector) + "_L" + std::to_string(layer) + "_S" + std::to_string(sector);
1428 add( volumeName,m);
1429 }
1430 }
1431 add( "PixelSvcBrlT1_L2",m);
1432 add( "PixelSvcBrlT1_L3",m);
1433 add( "PixelSvcBrlT1_L4in",m);
1434 add( "PixelSvcBrlT1_L4out",m);
1435 for (unsigned int sector = 0; sector<sectors; sector++) {
1436 std::string volumeName = "PixelSvcBrlT1_Radial" + std::to_string(sectors-sector);
1437 add( volumeName,m);
1438 }
1439
1440 add( "svcEcT1_r199_z103",m);
1441 add( "svcEcT1_r199_z116",m);
1442 add( "svcEcT1_r199_z127",m);
1443 add( "svcEcT1_r199_z141",m);
1444 add( "svcEcT1_r199_z1366",m);
1445 add( "svcEcT1_r198_z172",m);
1446 add( "svcEcT1_r198_z190",m);
1447 add( "svcEcT1_r198_z210",m);
1448 add( "svcEcT1_r198_z232",m);
1449 add( "svcEcT1_r198_z257",m);
1450 add( "svcEcT1_r198_z149",m);
1451
1452 add( "svcEcT1_r259_z151",m);
1453 add( "svcEcT1_r259_z176",m);
1454 add( "svcEcT1_r259_z203",m);
1455 add( "svcEcT1_r259_z234",m);
1456 add( "svcEcT1_r259_z270",m);
1457 add( "svcEcT1_r259_z311",m);
1458 add( "svcEcT1_r259_z359",m);
1459 add( "svcEcT1_r259_z149",m);
1460
1461 add( "svcEcT1_r319_z131",m);
1462 add( "svcEcT1_r319_z150",m);
1463 add( "svcEcT1_r319_z170",m);
1464 add( "svcEcT1_r319_z192",m);
1465 add( "svcEcT1_r319_z218",m);
1466 add( "svcEcT1_r319_z246",m);
1467 add( "svcEcT1_r319_z746",m);
1468 add( "svcEcT1_r318_z317",m);
1469 add( "svcEcT1_r318_z149",m);
1470
1471 add( "SvcEcT0TwdBS_r156_199_z.5",m);
1472 add( "SvcEcT0TwdBS_r156_198_z.5",m);
1473 add( "SvcEcT0TwdBS_r199_199_z.5",m);
1474 add( "SvcEcT0TwdBS_r216_259_z.5",m);
1475 add( "SvcEcT0TwdBS_r276_319_z.5",m);
1476 add( "SvcEcT0TwdBS_r276_318_z.5",m);
1477 add( "SvcEcT0TwdBS_r318_319_z.5",m);
1478
1479 add( "SvcEc_r196.7_197.1_z78.6",m);
1480 add( "SvcEc_r196.7_197.1_z97.6",m);
1481 add( "SvcEc_r196.7_197.1_z121.2",m);
1482 add( "SvcEc_r196.7_197.1_z150.3",m);
1483 add( "SvcEc_r196.7_197.1_z186.7",m);
1484 add( "SvcEc_r196.7_197.1_z23.3",m);
1485 add( "SvcEc_r337.8_338.2_z1939.2",m);
1486
1487
1488 add( "SvcEc_r264.4_264.8_z58.1",m);
1489 add( "SvcEc_r264.4_264.8_z66.6",m);
1490 add( "SvcEc_r264.4_264.8_z76.4",m);
1491 add( "SvcEc_r264.4_264.8_z87.5",m);
1492 add( "SvcEc_r264.4_264.8_z100.3",m);
1493 add( "SvcEc_r264.4_264.8_z115",m);
1494 add( "SvcEc_r264.4_264.8_z131.9",m);
1495 add( "SvcEc_r264.4_264.8_z30.9",m);
1496 add( "SvcEc_r338.8_339.2_z1937.2",m);
1497
1498 add( "SvcEc_r327.3_327.7_z52.7",m);
1499 add( "SvcEc_r327.3_327.7_z58.8",m);
1500 add( "SvcEc_r327.3_327.7_z65.6",m);
1501 add( "SvcEc_r327.3_327.7_z73.1",m);
1502 add( "SvcEc_r327.3_327.7_z81.7",m);
1503 add( "SvcEc_r327.3_327.7_z91.1",m);
1504 add( "SvcEc_r327.3_327.7_z101.6",m);
1505 add( "SvcEc_r327.3_327.7_z113.4",m);
1506 add( "SvcEc_r327.3_327.7_z34.7",m);
1507 add( "SvcEc_r339.8_340.2_z1935.2",m);
1508
1509 add( "SvcEc_r197.1_202.8_z.4",m);
1510 add( "SvcEc_r203.2_263.4_z.4",m);
1511 add( "SvcEc_r264.8_270.8_z.4",m);
1512 add( "SvcEc_r271.2_326.3_z.4",m);
1513 add( "SvcEc_r326.7_327.3_z.4",m);
1514 add( "SvcEc_r327.7_333.8_z.4",m);
1515 add( "SvcEc_r334.2_337.3_z.4",m);
1516 add( "SvcEc_r337.7_337.8_z.4",m);
1517 add( "SvcEc_r338.2_338.3_z.4",m);
1518 add( "SvcEc_r338.7_338.8_z.4",m);
1519 add( "SvcEc_r339.2_339.3_z.4",m);
1520 add( "SvcEc_r339.7_339.8_z.4",m);
1521
1522
1523 // cooling (when separated from services)
1524 // inner pixel system
1525 add( "InnerPixelBarrelCoolingL0",m);
1526 add( "InnerPixelBarrelCoolingL1",m);
1527 // outer pixel system
1528 add( "OuterQuadMod_Cell",m);
1529 add( "LongeronCoolingTube",m);
1530 add( "L2HalfRingCoolingPipe",m);
1531 add( "L3HalfRingCoolingPipe",m);
1532 add( "L4endcapcoolingpipe",m);
1533
1534 }
1535
1536 // ITk Strip services
1537 {
1538 SoMaterial *m = new SoMaterial;
1539 setColorFromRGB(m, "diffuse", 28, 55, 83);
1540 setColorFromRGB(m, "ambient", 0, 0, 0);
1541 setColorFromRGB(m, "specular", 0, 0, 0);
1542 setColorFromRGB(m, "emissive", 0, 87, 127);
1543 m->transparency.setValue(0.5);
1544
1545 add ("SV_Barrel01",m);
1546 add ("SV_Barrel12",m);
1547 add ("SV_Barrel23",m);
1548 add ("SV_Barrel3Out",m);
1549 add ("SV_BarrelPastEndcap",m);
1550 add ("SV_BarrelAtEC_lv",m);
1551 add ("SV_Barrel_lv",m);
1552 add ("SV_Endcap_lv",m);
1553 add ("SV_Endcap01",m);
1554 add ("SV_Endcap12",m);
1555 add ("SV_Endcap23",m);
1556 add ("SV_Endcap34",m);
1557 add ("SV_Endcap45",m);
1558 add ("SV_Endcap5Out",m);
1559 add( "SVatBulkhead_lv",m);
1560
1561 add( "SVatBulkhead_lv",m);
1562 add( "StaveSignalSS",m);
1563 add( "StaveGround",m);
1564
1565 }
1566
1567 // ITk Pixel support structures
1568 {
1569 SoMaterial *m = new SoMaterial;
1570 setColorFromRGB(m, "diffuse", 81, 163, 119);
1571 setColorFromRGB(m, "ambient", 0, 40, 48);
1572 setColorFromRGB(m, "specular", 255, 255, 255);
1573 setColorFromRGB(m, "emissive", 0, 0, 0);
1574 m->shininess.setValue(0.5);
1575
1576 m->transparency.setValue(0.6);
1577 // inner pixel system
1578 add( "IPTvol",m);
1579 add( "ISTvol",m);
1580 add( "InnerPixBarrelSupport_Stave",m);
1581 add( "InnerPixBarrelSupport_Stave1",m);
1582 add( "InnerPixBarrelSupport_Global",m);
1583 add( "InnerPixEndcap_CoupledRingSupport",m);
1584 add( "InnerPixEndcap_IntermediateRingSupport",m);
1585 add( "InnerPixEndcap_L1RingSupport",m);
1586 add( "QuarterShell",m);
1587 // outer pixel system
1588 add( "InclL2HalfShell",m);
1589 add( "InclL2Support",m);
1590 add( "InclL3HalfShell",m);
1591 add( "InclL3Support",m);
1592 add( "InclL4HalfShell",m);
1593 add( "InclL4Support",m);
1594 add( "LongeronCornerBase",m);
1595 add( "LongeronCornerEnd",m);
1596 add( "LongeronTrussWall",m);
1597 add( "LongeronCapBase",m);
1598 add( "LongeronTopCap",m);
1599 add( "L2HalfRingCarbonFoamInner",m);
1600 add( "L2HalfRingCarbonFoamOuter",m);
1601 add( "L2HalfRingFaceSheet",m);
1602 add( "L3HalfRingCarbonFoamInner",m);
1603 add( "L3HalfRingCarbonFoamOuter",m);
1604 add( "L3HalfRingFaceSheet",m);
1605 add( "L4endcapinnerCarbonFoam",m);
1606 add( "L4endcapouterCarbonFoam",m);
1607 add( "L4endcapFaceSheet",m);
1608 add( "L2HalfShell",m);
1609 add( "L3HalfShell",m);
1610 add( "L4HalfShell",m);
1611 add( "L2HalfRingEndCapFixingLug",m);
1612 add( "L3HalfRingEndCapFixingLug",m);
1613 add( "HalfRingEndCapFixingLug",m);
1614
1615 // other supports still in the pixel volume
1616 add( "FrontSupportFacing",m);
1617 add( "FrontSupportCore",m);
1618 add( "RearSupport",m);
1619 }
1620
1621 // ITk Strip support structures
1622 {
1623 SoMaterial *m = new SoMaterial;
1624 setColorFromRGB(m, "diffuse", 28, 55, 83);
1625 setColorFromRGB(m, "ambient", 0, 0, 0);
1626 setColorFromRGB(m, "specular", 0, 0, 0);
1627 setColorFromRGB(m, "emissive", 0, 87, 127);
1628 m->transparency.setValue(0.5);
1629
1630 add( "StripB_Cyl0",m);
1631 add( "StripB_Cyl1",m);
1632 add( "StripB_Cyl2",m);
1633 add( "StripB_Cyl3",m);
1634 add( "StripB_Cyl4",m);
1635 add( "StaveCylHat0",m);
1636 add( "StaveCylHat1",m);
1637 add( "StaveCylHat2",m);
1638 add( "StaveCylHat3",m);
1639 add( "Flange0",m);
1640 add( "Flange1",m);
1641 add( "Flange2",m);
1642 add( "Flange3",m);
1643 add( "Interlink0",m);
1644 add( "Interlink1",m);
1645 add( "Interlink2",m);
1646 add( "Interlink3",m);
1647 add( "WheelInnerT",m);
1648 add( "WheelOuterT",m);
1649 add( "OC_Shell",m);
1650 add( "ZBraceI",m);
1651 add( "ZBraceO",m);
1652 add( "ECPSTube",m);
1653 add( "EC_InnerCyl",m);
1654 add( "OCFlangeTop",m);
1655 add( "OCFlangeFoot",m);
1656 add( "OCHatTop",m);
1657 add( "OCHatWall",m);
1658 add( "OCHatFoot",m);
1659 add( "PetalCore",m);
1660 add( "BladeFace",m);
1661 add( "BladeSideRod",m);
1662 add( "BladeCore",m);
1663 add( "LockBaseL",m);
1664 add( "LockBaseH",m);
1665 add( "RailWall",m);
1666 add( "RailWedge",m);
1667 add( "RailBolt",m);
1668 add( "RailWheel",m);
1669 add( "RailShelf",m);
1670 add( "RailSquare",m);
1671 add( "RailSquareT",m);
1672 add( "RailSquare1",m);
1673 add( "OCMountPadOuter",m);
1674 add( "OCMountPadMiddle",m);
1675 add( "OCMountPadInner",m);
1676 add( "ZtubeD0D1",m);
1677 add( "ZtubeD1D2",m);
1678 add( "ZtubeD2D3",m);
1679 add( "ZtubeD3D4",m);
1680 add( "ZtubeD4D5",m);
1681 add( "StiffDiscAve",m);
1682 add( "Bulkhead",m);
1683 add( "StaveFacesheetAll",m);
1684 add( "EOS",m);
1685 add( "StaveEOS_CFoam",m);
1686 add( "StaveBusGlue",m);
1687 add( "StaveCloseoutEOS_End",m);
1688 add( "StaveCoreMS",m);
1689 add( "StaveCoreSS",m);
1690 add( "StaveMountC",m);
1691 add( "StaveMountI",m);
1692 add( "StaveMountE",m);
1693
1694 }
1695
1696 // polymoderator
1697 {
1698 SoMaterial *m = new SoMaterial;
1699 setColorFromRGB(m, "diffuse", 143, 145, 145);
1700 setColorFromRGB(m, "ambient", 178, 184, 184);
1701 setColorFromRGB(m, "specular", 181, 122, 117);
1702 setColorFromRGB(m, "emissive", 0, 0, 0);
1703 m->shininess.setValue(1);
1704 add( "PolyMod",m);
1705 add( "PolyMod_InnerLayer",m);
1706 add( "InnerPolyMod",m);
1707 add( "InnerPolyMod_InnerLayer",m);
1708 }
1709
1710
1711 // volumes that don't need colors as they are made of air
1712 {
1713 SoMaterial *m = new SoMaterial;
1714 m->transparency.setValue(1.0);
1715 add( "StaveCchannelAirEOS",m);
1716 add( "StaveCchannelAirLong",m);
1717 add( "StaveCchannelAirLongEOS",m);
1718 add( "PetalCloseoutShortSpace",m);
1719 add( "PetalCloseoutLongSpace",m);
1720 }
1721
1722 {
1723 SoMaterial *m = new SoMaterial;
1724 setColorFromRGB(m, "diffuse", 76, 76, 204);
1725 setColorFromRGB(m, "emissive", 53, 53, 141);
1726 m->transparency.setValue(0.7);
1727 add( "SealPlate",m);
1728 }
1729
1730
1731 init();
1732}
void add(const std::string &name, SoMaterial *)
void setColorFromRGB(SoMaterial *mat, const std::string &type, const int r, const int g, const int b)
layers(flags, cells_name, *args, **kw)
Here we define wrapper functions to set up all of the standard corrections.

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: