ATLAS Offline Software
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
SoPolyhedron Class Reference

SoPolyhedron is an Inventor encapsulation of the HepPolyedron class written by E.Chernyaev. More...

#include <SoPolyhedron.h>

Inheritance diagram for SoPolyhedron:
Collaboration diagram for SoPolyhedron:

Classes

struct  Vertex
 

Public Member Functions

 SoPolyhedron ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 
 SoPolyhedron (const SbPolyhedron &)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 
 SoPolyhedron (const SbPolyhedron *)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 
long hasVertex (Vertex *vertices, long len, Vertex &v)
 
More...
 
void makeShape (SbPolyhedron *)
 
More...
 
virtual void generateAlternateRep ()
 
More...
 
virtual void clearAlternateRep ()
 
More...
 

Static Public Member Functions

static void initClass ()
 

Public Attributes

SoSFNode alternateRep
 
Vertexm_vertices {nullptr}
 
long * m_indices {nullptr}
 
long m_vcount {0}
 
long m_icount {0}
 

Protected Member Functions

virtual void computeBBox (SoAction *, SbBox3f &, SbVec3f &)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 
virtual void generatePrimitives (SoAction *)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 
virtual ~SoPolyhedron ()
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
 

Private Member Functions

 SO_NODE_HEADER (SoPolyhedron)
 

Private Attributes

std::unique_ptr< SbPolyhedronm_polyhedron
 

Detailed Description

SoPolyhedron is an Inventor encapsulation of the HepPolyedron class written by E.Chernyaev.

In particular SoPolyhedron permits to represent boolean operations over solids. To avoid clashes with other libraries (Geant4) where the HepPolyhedron classes may be found, the HepPolyhedron (through usage of CPP macros) had been renamed SbPolyhedron in the HEPVis lib. The solids are modeled with SbPolyedron objects. The SbPolyhedron permits to produce a new SbPolyhedron according to the boolean operation done on them. The resulting SbPolyhedron is then given to an SoPolyhedron for rendering. Note that a boolean operation could be rendered in wire frame by drawing the contour of the resulting solid (not by drawing the wire frame of a triangulation). See the applications/Polyhedron example.

Definition at line 49 of file SoPolyhedron.h.

Constructor & Destructor Documentation

◆ SoPolyhedron() [1/3]

SoPolyhedron::SoPolyhedron ( )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 56 of file SoPolyhedron.cxx.

60 {
61  SO_NODE_CONSTRUCTOR(SoPolyhedron);
62  // SO_NODE_ADD_FIELD(solid,(TRUE));
63  // SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE));
64  SO_NODE_ADD_FIELD(alternateRep,(NULL));
65  setNodeType(EXTENSION);
66 }

◆ SoPolyhedron() [2/3]

SoPolyhedron::SoPolyhedron ( const SbPolyhedron aPolyhedron)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 68 of file SoPolyhedron.cxx.

73 {
74  SO_NODE_CONSTRUCTOR(SoPolyhedron);
75  // SO_NODE_ADD_FIELD(solid,(TRUE));
76  // SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE));
77  SO_NODE_ADD_FIELD(alternateRep,(NULL));
78 
79  m_polyhedron = std::make_unique<SbPolyhedron>(aPolyhedron);
80  setNodeType(EXTENSION);
81  makeShape(m_polyhedron.get());
82 }

◆ SoPolyhedron() [3/3]

SoPolyhedron::SoPolyhedron ( const SbPolyhedron aPolyhedron)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 84 of file SoPolyhedron.cxx.

89 {
90  SO_NODE_CONSTRUCTOR(SoPolyhedron);
91  // SO_NODE_ADD_FIELD(solid,(TRUE));
92  // SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE));
93  SO_NODE_ADD_FIELD(alternateRep,(NULL));
94 
95  m_polyhedron = std::make_unique<SbPolyhedron>(*aPolyhedron);
96  setNodeType(EXTENSION);
97  makeShape(m_polyhedron.get());
98 }

◆ ~SoPolyhedron()

SoPolyhedron::~SoPolyhedron ( )
protectedvirtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 100 of file SoPolyhedron.cxx.

104 {
105  if(m_vertices)
106  delete [] m_vertices;
107  if(m_indices)
108  delete [] m_indices;
109 }

Member Function Documentation

◆ clearAlternateRep()

void SoPolyhedron::clearAlternateRep ( )
virtual

Definition at line 415 of file SoPolyhedron.cxx.

416 {
417  alternateRep.setValue(NULL);
418  //Hmm... no ref/unref??
419 }

◆ computeBBox()

void SoPolyhedron::computeBBox ( SoAction *  ,
SbBox3f &  aBox,
SbVec3f &  aCenter 
)
protectedvirtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 285 of file SoPolyhedron.cxx.

292 {
293  if(!m_polyhedron) return;
294  if(m_polyhedron->GetNoFacets()<=0) { // Abnormal polyhedron.
295  SbVec3f vmin(-1,-1,-1);
296  SbVec3f vmax( 1, 1, 1);
297  aBox.setBounds(vmin,vmax);
298  aCenter.setValue(0,0,0);
299  } else {
300  // SbBool wireFrame = (solid.getValue()==TRUE ? FALSE : TRUE);
301  //DONOTHING HEPVis::SbProjector projector(wireFrame?fProjection:SbProjectionNone);
302  SbBool first = TRUE;
303  float xmn = 0,ymn = 0,zmn = 0;
304  float xmx = 0,ymx = 0,zmx = 0;
305  float xct = 0,yct = 0,zct = 0;
306  SbVec3f point;
307  int count = 0;
308  // Assume all facets are convex quadrilaterals :
309  bool notLastFace;
310  do {
311  HVNormal3D unitNormal;
312  notLastFace = m_polyhedron->GetNextUnitNormal(unitNormal);
313  bool notLastEdge;
314  do {
316  int edgeFlag = 1;
317  notLastEdge = m_polyhedron->GetNextVertex(vertex,edgeFlag);
318  point.setValue(vertex[0],vertex[1],vertex[2]);
319  //DONOTHING projector.project(1,&point);
320  if(first==TRUE) {
321  xct = xmx = xmn = point[0];
322  yct = ymx = ymn = point[1];
323  zct = zmx = zmn = point[2];
324  count++;
325  first = FALSE;
326  } else {
327  xmn = SbMinimum(xmn,point[0]);
328  ymn = SbMinimum(ymn,point[1]);
329  zmn = SbMinimum(zmn,point[2]);
330  //
331  xmx = SbMaximum(xmx,point[0]);
332  ymx = SbMaximum(ymx,point[1]);
333  zmx = SbMaximum(zmx,point[2]);
334  //
335  xct += point[0];
336  yct += point[1];
337  zct += point[2];
338  count++;
339  }
340  //
341  } while (notLastEdge);
342  } while (notLastFace);
343  SbVec3f vmin(xmn,ymn,zmn);
344  SbVec3f vmax(xmx,ymx,zmx);
345  aBox.setBounds(vmin,vmax);
346 
347  if(count==0) {
348  aCenter.setValue(0,0,0);
349  }
350  else {
351  aCenter.setValue(xct/count,yct/count,zct/count);
352  }
353  //DEBUG
354 // std::cout << "vmin: " << xmn << " " << ymn << " " << zmn << std::endl;
355 // std::cout << "vmax: " << xmx << " " << ymx << " " << zmx << std::endl;
356  }
357 
358 
359 }

◆ generateAlternateRep()

void SoPolyhedron::generateAlternateRep ( )
virtual

Definition at line 373 of file SoPolyhedron.cxx.

374 {
375  if (alternateRep.getValue())
377  if( m_polyhedron && ( m_polyhedron->GetNoFacets() > 0 ) ){
378  //SoSeparator *sep = new SoSeparator;
379  SoVertexProperty *vertices = new SoVertexProperty();
380 
381  //Retreive geometry from polyhedron
382  int vno = m_polyhedron->GetNoVertices();
383  for(int i = 0; i < vno; i++){
385  vertex = m_polyhedron->GetVertex(i + 1);
386  vertices->vertex.set1Value (i, vertex[0], vertex[1], vertex[2]);
387  }
388 
389  int fno = m_polyhedron->GetNoFacets();
390  int fcr = 0;
391  int* aface = new int[8 * fno];
392  for(int i = 0; i < fno; i++){
393  int n, inodes[4];
394  //SbVec3d nr = m_polyhedron->GetNormal(i + 1); // not used, gives warning, commenting out:
395  //---
396  m_polyhedron->GetFacet(i + 1, n, inodes);
397  aface[fcr] = (inodes[0] <= vno) ? (inodes[0] - 1) : (0); fcr++;
398  aface[fcr] = (inodes[1] <= vno) ? (inodes[1] - 1) : (0); fcr++;
399  aface[fcr] = (inodes[2] <= vno) ? (inodes[2] - 1) : (0); fcr++;
400  if(n == 4) { aface[fcr] = (inodes[3] <= vno) ? (inodes[3] - 1) : (0); fcr++; }
401  aface[fcr] = -1; fcr++;
402  }
403  SoIndexedFaceSet * faceset = new SoIndexedFaceSet;
404  faceset->coordIndex.setValues(0, fcr, aface);
405  delete [] aface;
406  faceset->vertexProperty = vertices;
407  //sep->addChild(faceset);
408  alternateRep.setValue(faceset);
409  }
410 }

◆ generatePrimitives()

void SoPolyhedron::generatePrimitives ( SoAction *  aAction)
protectedvirtual

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

  • Activate this comment if u gona return to old method

Definition at line 111 of file SoPolyhedron.cxx.

116 {
117  if(!m_polyhedron) return;
118  if(m_polyhedron->GetNoFacets()<=0) return; // Abnormal polyhedron.
119 
120  SoState *state = aAction->getState();
121  if (!state)
122  return;
123  SbBool useTexFunction =
125  SoTextureCoordinateElement::FUNCTION);
126  const SoTextureCoordinateElement *tce = NULL;
127  SbVec4f texCoord;
128  if (useTexFunction) {
129  tce = SoTextureCoordinateElement::getInstance(state);
130  } else {
131  texCoord[2] = 0.0;
132  texCoord[3] = 1.0;
133  }
134 
135  // if(solid.getValue()==TRUE) {
136  if(true) {
137  SoPrimitiveVertex pv;
138  SbVec3f point, normal;
140  //----------------------------------------
141 #define GEN_VERTEX(pv,x,y,z,s,t,nx,ny,nz) \
142  point.setValue(x,y,z); \
143  normal.setValue(nx,ny,nz); \
144  if (useTexFunction) { \
145  texCoord=tce->get(point,normal); \
146  } else { \
147  texCoord[0]=s; \
148  texCoord[1]=t; \
149  } \
150  pv.setPoint(point); \
151  pv.setNormal(normal); \
152  pv.setTextureCoords(texCoord); \
153  shapeVertex(&pv);
154  //----------------------------------------
157  // For pick action use old method, for for see selected lines
159  if ( aAction->getTypeId().isDerivedFrom(SoPickAction::getClassTypeId()) ){ //comment this line to return on old method
160  // Assume all facets are convex quadrilaterals :
161  bool notLastFace;
162  do {
163  HVNormal3D unitNormal;
164  notLastFace = m_polyhedron->GetNextUnitNormal(unitNormal);
165 
166  beginShape(aAction,POLYGON);
167  bool notLastEdge;
168  int edgeFlag = 1;
169  do {
171  notLastEdge = m_polyhedron->GetNextVertex(vertex,edgeFlag);
172  GEN_VERTEX(pv,
173  vertex[0],
174  vertex[1],
175  vertex[2],
176  0.0,0.0,
177  unitNormal[0],
178  unitNormal[1],
179  unitNormal[2]);
180  } while (notLastEdge);
181  endShape();
182  } while (notLastFace);
183  }
184  else
185  {
186  if(m_vertices){
187  glEnableClientState(GL_VERTEX_ARRAY);
188  glVertexPointer(3, GL_FLOAT, sizeof(Vertex), &m_vertices[0].pos);
189  glEnableClientState(GL_NORMAL_ARRAY);
190  glNormalPointer(GL_FLOAT, sizeof(Vertex), &m_vertices[0].nor);
192  //For I-Method. Comment it if u use II-Method
194  //glDrawElements(GL_TRIANGLES, m_icount, GL_UNSIGNED_INT, m_indices); //comment it if u use II-Method
196  //For II-Method. Comment it if u use I-Method
198  glDrawArrays(GL_TRIANGLES, 0, m_vcount); //comment it if u use I-Method
199  glDisableClientState(GL_VERTEX_ARRAY);
200  glDisableClientState(GL_NORMAL_ARRAY);
201  }
202  } //End of comment for return to old method */
203  } else {//lala
204 // SoPrimitiveVertex pvb,pve;
205 // pve.setTextureCoords(texCoord);
206 // pvb.setTextureCoords(texCoord);
207 
208 // #ifdef __COIN__ // To bypass a bug in invokeLineSegment when picking.
209 // beginShape(aAction,POLYGON);
210 // endShape();
211 // #endif
212 
213 // SbVec3f point;
214 // bool notLastFace;
215 // do {
216 // HVNormal3D unitNormal;
217 // notLastFace = m_polyhedron->GetNextUnitNormal(unitNormal);
218 
219 // SbVec3f normal;
220 // if( false ) {
221 // normal.setValue(0,0,1);
222 // } else {
223 // normal.setValue(unitNormal[0],unitNormal[1],unitNormal[2]);
224 // }
225 
226 // // Treat edges :
227 // int edgeFlag = 1;
228 // int prevEdgeFlag = edgeFlag;
229 // bool notLastEdge;
230 // SbBool firstEdge = TRUE;
231 // do {
232 // HVPoint3D vertex;
233 // notLastEdge = m_polyhedron->GetNextVertex(vertex,edgeFlag);
234 // if(reducedWireFrame.getValue()==FALSE) edgeFlag = 1;
235 // if(firstEdge) {
236 // if(edgeFlag) {
237 // pvb.setNormal(normal);
238 // point.setValue(vertex[0],vertex[1],vertex[2]);
239 // //DONOTHING projector.project(1,&point);
240 // pvb.setPoint(point);
241 // } else {
242 // }
243 // firstEdge = FALSE;
244 // prevEdgeFlag = edgeFlag;
245 // } else {
246 // if(edgeFlag!=prevEdgeFlag) {
247 // if(edgeFlag) { // Pass to a visible edge :
248 // pvb.setNormal(normal);
249 // point.setValue(vertex[0],vertex[1],vertex[2]);
250 // //DONOTHING projector.project(1,&point);
251 // pvb.setPoint(point);
252 // } else { // Pass to an invisible edge :
253 // pve.setNormal(normal);
254 // point.setValue(vertex[0],vertex[1],vertex[2]);
255 // //DONOTHING projector.project(1,&point);
256 // pve.setPoint(point);
257 // invokeLineSegmentCallbacks(aAction,&pvb,&pve);
258 // }
259 // prevEdgeFlag = edgeFlag;
260 // } else {
261 // if(edgeFlag) {
262 // pve.setNormal(normal);
263 // point.setValue(vertex[0],vertex[1],vertex[2]);
264 // //DONOTHING projector.project(1,&point);
265 // pve.setPoint(point);
266 // invokeLineSegmentCallbacks(aAction,&pvb,&pve);
267 // pvb = pve;
268 // } else {
269 // }
270 // }
271 // }
272 // } while (notLastEdge);
273 // } while (notLastFace);
274  }
275 
276  if (state&&state->isElementEnabled(SoGLCacheContextElement::getClassStackIndex())) {
277  //Encourage auto caching
278  SoGLCacheContextElement::shouldAutoCache(state, SoGLCacheContextElement::DO_AUTO_CACHE);
279 #if ((COIN_MAJOR_VERSION>=3)||((COIN_MAJOR_VERSION==2)&&(COIN_MINOR_VERSION>=5)))
280  SoGLCacheContextElement::incNumShapes(state);
281 #endif
282  }
283 }

◆ hasVertex()

long SoPolyhedron::hasVertex ( Vertex vertices,
long  len,
Vertex v 
)
inline

Definition at line 424 of file SoPolyhedron.cxx.

424  {
425  for(long i = 0; i < len; i++){
426  if((v.pos[0] == vertices[i].pos[0]) && (v.pos[1] == vertices[i].pos[1]) && (v.pos[2] == vertices[i].pos[2]) &&
427  (v.nor[0] == vertices[i].nor[0]) && (v.nor[1] == vertices[i].nor[1]) && (v.nor[2] == vertices[i].nor[2]))
428  return i;
429  }
430  return -1;
431 }

◆ initClass()

void SoPolyhedron::initClass ( )
static

Definition at line 47 of file SoPolyhedron.cxx.

48 {
49  [[maybe_unused]] static const bool didInit = [&]() {
50  SO_NODE_INIT_CLASS(SoPolyhedron,SoShape,"Shape");
51  return true;
52  }();
53 }

◆ makeShape()

void SoPolyhedron::makeShape ( SbPolyhedron sp)

Definition at line 517 of file SoPolyhedron.cxx.

518 {
519  if(!sp || (m_polyhedron->GetNoFacets() < 1))
520  return;
521 
522  if(m_vertices){
523  delete [] m_vertices;
524  m_vertices = 0;
525  m_vcount = 0;
526  }
527 
528  if(m_indices){
529  delete [] m_indices;
530  m_indices = 0;
531  m_icount = 0;
532  }
533 
534  int fno = m_polyhedron->GetNoFacets();
535  long faces = 0; //this is primitive face(triangle)
536  for(int i = 0; i < fno; i++){
537  int n, inodes[4];
538  m_polyhedron->GetFacet(i + 1, n, inodes);
539  if(n == 3)
540  faces += 1;
541  else if(n == 4)
542  faces += 2;
543  }
544 
545  if(faces < 1)
546  return;
547 
548  long fcr = 0;
549  long vno = m_polyhedron->GetNoVertices();
550  m_vcount = 3 * faces;
551  m_vertices = new Vertex[m_vcount];
552  for(int i = 0; i < fno; i++){
553  int n, inodes[4];
554  HVPoint3D pos[4];
555 
556  // rbianchi
557  // SbVec3f nor = m_polyhedron->GetNormal(i + 1);
558  HVNormal3D nor = m_polyhedron->GetNormal(i + 1);
559  //---
560  m_polyhedron->GetFacet(i + 1, n, inodes);
561  pos[0] = (inodes[0] <= vno) ? (m_polyhedron->GetVertex(inodes[0])) : (m_polyhedron->GetVertex(1));
562  pos[1] = (inodes[1] <= vno) ? (m_polyhedron->GetVertex(inodes[1])) : (m_polyhedron->GetVertex(1));
563  pos[2] = (inodes[2] <= vno) ? (m_polyhedron->GetVertex(inodes[2])) : (m_polyhedron->GetVertex(1));
564  if(n == 4)
565  pos[3] = (inodes[3] <= vno) ? (m_polyhedron->GetVertex(inodes[3])) : (m_polyhedron->GetVertex(1));
566 
567  if(n >= 3){
568  m_vertices[fcr].pos[0] = pos[0][0]; m_vertices[fcr].nor[0] = nor[0];
569  m_vertices[fcr].pos[1] = pos[0][1]; m_vertices[fcr].nor[1] = nor[1];
570  m_vertices[fcr].pos[2] = pos[0][2]; m_vertices[fcr].nor[2] = nor[2];
571  fcr++;
572  m_vertices[fcr].pos[0] = pos[1][0]; m_vertices[fcr].nor[0] = nor[0];
573  m_vertices[fcr].pos[1] = pos[1][1]; m_vertices[fcr].nor[1] = nor[1];
574  m_vertices[fcr].pos[2] = pos[1][2]; m_vertices[fcr].nor[2] = nor[2];
575  fcr++;
576  m_vertices[fcr].pos[0] = pos[2][0]; m_vertices[fcr].nor[0] = nor[0];
577  m_vertices[fcr].pos[1] = pos[2][1]; m_vertices[fcr].nor[1] = nor[1];
578  m_vertices[fcr].pos[2] = pos[2][2]; m_vertices[fcr].nor[2] = nor[2];
579  fcr++;
580  if(n == 4){
581  m_vertices[fcr].pos[0] = pos[0][0]; m_vertices[fcr].nor[0] = nor[0];
582  m_vertices[fcr].pos[1] = pos[0][1]; m_vertices[fcr].nor[1] = nor[1];
583  m_vertices[fcr].pos[2] = pos[0][2]; m_vertices[fcr].nor[2] = nor[2];
584  fcr++;
585  m_vertices[fcr].pos[0] = pos[2][0]; m_vertices[fcr].nor[0] = nor[0];
586  m_vertices[fcr].pos[1] = pos[2][1]; m_vertices[fcr].nor[1] = nor[1];
587  m_vertices[fcr].pos[2] = pos[2][2]; m_vertices[fcr].nor[2] = nor[2];
588  fcr++;
589  m_vertices[fcr].pos[0] = pos[3][0]; m_vertices[fcr].nor[0] = nor[0];
590  m_vertices[fcr].pos[1] = pos[3][1]; m_vertices[fcr].nor[1] = nor[1];
591  m_vertices[fcr].pos[2] = pos[3][2]; m_vertices[fcr].nor[2] = nor[2];
592  fcr++;
593  }
594  }
595  }
596 }

◆ SO_NODE_HEADER()

SoPolyhedron::SO_NODE_HEADER ( SoPolyhedron  )
private

Member Data Documentation

◆ alternateRep

SoSFNode SoPolyhedron::alternateRep

Definition at line 56 of file SoPolyhedron.h.

◆ m_icount

long SoPolyhedron::m_icount {0}

Definition at line 83 of file SoPolyhedron.h.

◆ m_indices

long* SoPolyhedron::m_indices {nullptr}

Definition at line 81 of file SoPolyhedron.h.

◆ m_polyhedron

std::unique_ptr<SbPolyhedron> SoPolyhedron::m_polyhedron
private

Definition at line 71 of file SoPolyhedron.h.

◆ m_vcount

long SoPolyhedron::m_vcount {0}

Definition at line 82 of file SoPolyhedron.h.

◆ m_vertices

Vertex* SoPolyhedron::m_vertices {nullptr}

Definition at line 80 of file SoPolyhedron.h.


The documentation for this class was generated from the following files:
SoPolyhedron::m_indices
long * m_indices
Definition: SoPolyhedron.h:81
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
PlotCalibFromCool.vmin
vmin
Definition: PlotCalibFromCool.py:696
SoPolyhedron::m_vcount
long m_vcount
Definition: SoPolyhedron.h:82
SoPolyhedron::makeShape
void makeShape(SbPolyhedron *)
Definition: SoPolyhedron.cxx:517
SoPolyhedron::clearAlternateRep
virtual void clearAlternateRep()
Definition: SoPolyhedron.cxx:415
SoPolyhedron::Vertex::nor
float nor[3]
Definition: SoPolyhedron.h:77
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
lumiFormat.i
int i
Definition: lumiFormat.py:85
SoPolyhedron::Vertex::pos
float pos[3]
Definition: SoPolyhedron.h:76
beamspotman.n
n
Definition: beamspotman.py:731
python.Constants.TRUE
bool TRUE
for job options legacy (TODO: get rid of these!) ----------------------—
Definition: Control/AthenaCommon/python/Constants.py:22
SoPolyhedron::alternateRep
SoSFNode alternateRep
Definition: SoPolyhedron.h:56
SoPolyhedron::m_vertices
Vertex * m_vertices
Definition: SoPolyhedron.h:80
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
python.Constants.FALSE
bool FALSE
Definition: Control/AthenaCommon/python/Constants.py:23
SbMinimum
#define SbMinimum(a, b)
Definition: SbMath.h:10
SoPolyhedron::m_icount
long m_icount
Definition: SoPolyhedron.h:83
python.PyAthena.v
v
Definition: PyAthena.py:154
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
SoPolyhedron::m_polyhedron
std::unique_ptr< SbPolyhedron > m_polyhedron
Definition: SoPolyhedron.h:71
DeMoScan.first
bool first
Definition: DeMoScan.py:536
python.changerun.pv
pv
Definition: changerun.py:81
GEN_VERTEX
#define GEN_VERTEX(pv, x, y, z, s, t, nx, ny, nz)
SoPolyhedron
SoPolyhedron is an Inventor encapsulation of the HepPolyedron class written by E.Chernyaev.
Definition: SoPolyhedron.h:49
SbMaximum
#define SbMaximum(a, b)
Definition: SbMath.h:11
Ringer::getType
T getType(const char *cStr)
Return Ringer enumeration of type T identifying string type:
HVPoint3D
Definition: SbPolyhedron.h:188
PlotCalibFromCool.vmax
vmax
Definition: PlotCalibFromCool.py:697