26 #include "CLHEP/Units/SystemOfUnits.h"
28 #include <Inventor/nodes/SoSeparator.h>
29 #include <Inventor/nodes/SoRotationXYZ.h>
30 #include <Inventor/nodes/SoTranslation.h>
31 #include <Inventor/nodes/SoCone.h>
32 #include <Inventor/SoPath.h>
56 QList<VP1StdCollection*>
l;
57 for (
const QString&
key :
keys) {
93 if (
m_d->
key.startsWith(
"MET_"))
95 else if (
m_d->
key.startsWith(
"ObjMET_"))
121 m_dash->removeAllChildren();
145 if (
m_d->
key.startsWith(
"MET_"))
147 else if (
m_d->
key.startsWith(
"ObjMET_"))
158 return "Object-Based";
169 return "Missing Et objects found by standard algorithms";
171 return "Missing Et found by Object-Based algorithms";
173 return "Missing ET objects not recognised as belonging to any other section";
182 return QColor::fromRgbF(0, 2./3., 0.5);
184 return QColor::fromRgbF(1, 2./3., 0.5);
197 int icollsep =
p->findNode(
collSep());
199 message(
"ERROR: Could not truncate picked path correctly");
201 p->truncate(icollsep+1);
208 return QStringList() <<
"ERROR: Nul MissingET pointer!";
210 l <<
"Missing ET ["+
key()+
"]:";
238 SoRotationXYZ *finalRotation =
new SoRotationXYZ();
240 finalRotation->angle=-
M_PI/2+
met->phi();
243 SoTranslation *translation1=
new SoTranslation();
244 translation1->translation.setValue(0,0.5*0.75*
m_length*
scale,0);
247 SoCylinder *cyl =
new SoCylinder();
252 SoTranslation *translation2=
new SoTranslation();
256 SoCone *cone =
new SoCone();
262 m_arrow->addChild(finalRotation);
263 m_arrow->addChild(translation1);
265 m_arrow->addChild(translation2);
271 SoRotationXYZ *
r =
new SoRotationXYZ();
276 SoTranslation *
t=
new SoTranslation();
277 t->translation.setValue(0, 0, 0);
281 SoDrawStyle *drawStyle =
new SoDrawStyle;
283 drawStyle->lineWidth.setValue(2.0 *
thickness);
284 drawStyle->linePattern.setValue(0xFF00);
285 m_dash->addChild(drawStyle);
288 SoCoordinate3 *coords =
new SoCoordinate3;
289 SbVec3f* vert =
new SbVec3f[2];
290 vert[0] = SbVec3f(0.0, 0.0, 0.0);
292 coords->point.setValues(0, 2, vert);
296 SoLineSet *lineSet =
new SoLineSet ;
297 lineSet->numVertices.set1Value(0, 2) ;
298 m_dash->addChild(lineSet);
327 SoTranslation *translation1= (SoTranslation*)
m_arrow->getChild(1);
328 translation1->translation.setValue(0,0.5*0.75*
m_length*
scale,0);
330 SoCylinder *cyl = (SoCylinder*)
m_arrow->getChild(2);
334 SoTranslation *translation2= (SoTranslation*)
m_arrow->getChild(3);
337 SoCone *cone = (SoCone*)
m_arrow->getChild(4);
342 SoDrawStyle *drawStyle = (SoDrawStyle*)
m_dash->getChild(2);
343 drawStyle->lineWidth.setValue(2.0 *
thickness);
345 SoCoordinate3 *coords = (SoCoordinate3*)
m_dash->getChild(3);
346 SbVec3f* vert =
new SbVec3f[2];
347 vert[0] = SbVec3f(0.0, 0.0, 0.0);
349 coords->point.setValues(0, 2, vert);
352 m_base->removeAllChildren();