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

#include <SoGenericBox.h>

Inheritance diagram for SoGenericBox:
Collaboration diagram for SoGenericBox:

Public Member Functions

void setParametersForBox (float dx, float dy, float dz, float xcenter=0.0, float ycenter=0.0, float zcenter=0.0)
 
void setParametersForBarrelEtaPhiCell (double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact=1.0, double phisqueezefact=1.0)
 
void setParametersForEndCapEtaPhiCell (double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact=1.0, double phisqueezefact=1.0)
 
void setParametersForTrd (float dx1, float dx2, float dy1, float dy2, float dz)
 
void setParametersForTrapezoid (float dz, float theta, float phi, float dy1, float dx1, float dx2, float dy2, float dx3, float dx4, float alp1, float alp2)
 
void setGenericParameters (float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float x5, float y5, float z5, float x6, float y6, float z6, float x7, float y7, float z7)
 
 SoGenericBox ()
 
virtual void generateAlternateRep ()
 
virtual void clearAlternateRep ()
 

Static Public Member Functions

static void initClass ()
 

Public Attributes

SoSFBool drawEdgeLines
 
SoSFBool forceEdgeLinesInBaseColour
 
SoSFNode alternateRep
 

Protected Member Functions

virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)
 
virtual void generatePrimitives (SoAction *action)
 
virtual ~SoGenericBox ()
 

Private Member Functions

 SO_NODE_HEADER (SoGenericBox)
 
void internalSetParametersForEtaPhiCell (bool barrel, double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact, double phisqueezefact)
 
void ensurePointsAllocated ()
 
void pointsUpdated ()
 
void setupDefaultPoints ()
 

Private Attributes

float * m_points
 
float * m_normals
 
SbBox3f m_bbox
 
SbVec3f m_center
 

Detailed Description

Definition at line 26 of file SoGenericBox.h.

Constructor & Destructor Documentation

◆ SoGenericBox()

SoGenericBox::SoGenericBox ( )

Definition at line 71 of file SoGenericBox.cxx.

72  : m_points(0), m_normals(0)
73 {
74  SO_NODE_CONSTRUCTOR(SoGenericBox);
75  SO_NODE_ADD_FIELD(drawEdgeLines, (false));
76  SO_NODE_ADD_FIELD(forceEdgeLinesInBaseColour, (true));
77  SO_NODE_ADD_FIELD(alternateRep,(NULL));
78  setNodeType(EXTENSION);
79 }

◆ ~SoGenericBox()

SoGenericBox::~SoGenericBox ( )
protectedvirtual

Definition at line 82 of file SoGenericBox.cxx.

83 {
84  delete [] m_normals;
85  delete [] m_points;
86 }

Member Function Documentation

◆ clearAlternateRep()

void SoGenericBox::clearAlternateRep ( )
virtual

Definition at line 463 of file SoGenericBox.cxx.

464 {
465  alternateRep.setValue(NULL);
466  //Hmm... no ref/unref??
467 }

◆ computeBBox()

void SoGenericBox::computeBBox ( SoAction *  action,
SbBox3f &  box,
SbVec3f &  center 
)
protectedvirtual

Definition at line 170 of file SoGenericBox.cxx.

170  {
171  if (!m_points)
173  box = m_bbox;
174  center = m_center;
175 }

◆ ensurePointsAllocated()

void SoGenericBox::ensurePointsAllocated ( )
private

Definition at line 157 of file SoGenericBox.cxx.

158 {
159  if (!m_points)
160  m_points = new float[SOGENERICBOX_NPOINTS*3];
161 }

◆ generateAlternateRep()

void SoGenericBox::generateAlternateRep ( )
virtual

Definition at line 428 of file SoGenericBox.cxx.

429 {
430  if (!m_points)
432  if (alternateRep.getValue())
434  SoSeparator * sep = new SoSeparator;
435 
436  //Vertice coordinates:
437  SoVertexProperty *vertices = new SoVertexProperty();
438  for (int i=0;i<SOGENERICBOX_NPOINTS;++i)
439  vertices->vertex.set1Value ( i, m_points[i*3+0],m_points[i*3+1],m_points[i*3+2] );
440  SoIndexedFaceSet * faceset = new SoIndexedFaceSet;
441  faceset->coordIndex.setValues(0,5*6, sogenericbox_vindices_foraltrepfaces);
442  faceset->vertexProperty = vertices;
443  sep->addChild(faceset);
444 
445  if (drawEdgeLines.getValue()) {
446 //Disable the lightmodel now since we in any case gets baselightning with the lineset defined this way...
447 // if (forceEdgeLinesInBaseColour.getValue()) {
448 // SoLightModel * lm = new SoLightModel;//Fixme: share
449 // lm->model = SoLightModel::BASE_COLOR;
450 // sep->addChild(lm);
451 // }
452  SoIndexedLineSet * lineset = new SoIndexedLineSet;
453  lineset->coordIndex.setValues(0,20,sogenericbox_vindices_foraltreplines);
454  lineset->vertexProperty = vertices;
455  sep->addChild(lineset);
456  }
457 
458  alternateRep.setValue(sep);
459 
460 }

◆ generatePrimitives()

void SoGenericBox::generatePrimitives ( SoAction *  action)
protectedvirtual

Definition at line 89 of file SoGenericBox.cxx.

89  {
90 
91  if (!m_points)
93 
94  // Access the state from the action
95  SoState *state = action->getState();
96 
97  if ( action->getTypeId().isDerivedFrom(SoPickAction::getClassTypeId()) ) {
98  //For picking:
99 
100  SoPrimitiveVertex vertex;
101  beginShape(action,QUADS);
102  int *iptr = sogenericbox_vindices;
103  for (int i=0;i<SOGENERICBOX_NFACES;++i) {
104  for (int j = 0; j < 4; ++j) {
105  const int ivert = *iptr++;
106  vertex.setPoint(SbVec3f(m_points[ivert*3+0], m_points[ivert*3+1], m_points[ivert*3+2]));
107  shapeVertex(&vertex);
108  }
109  }
110  endShape();
111  } else {
112 
113  glBegin(GL_QUADS);
114  int *iptr = sogenericbox_vindices;
115  for (int i=0;i<SOGENERICBOX_NFACES;i++) {
116  glNormal3fv(static_cast<const GLfloat*>(&m_normals[i*3]));
117  for (int j = 0; j < 4; j++)
118  glVertex3fv(static_cast<const GLfloat*>(&m_points[(*iptr++)*3]));
119  }
120  glEnd();
121 
122 
123  if (drawEdgeLines.getValue()) {
124 
125  const bool disableLighting(forceEdgeLinesInBaseColour.getValue()&&glIsEnabled(GL_LIGHTING));
126  const bool transparencyOn = glIsEnabled(GL_BLEND);
127 
128  if (disableLighting) glDisable(GL_LIGHTING);
129  if (transparencyOn) glDisable(GL_BLEND);
130 #define trdV(i) glVertex3fv(static_cast<const GLfloat*>(&m_points[i*3]));
131  glBegin(GL_LINE_STRIP);
132  trdV(0)trdV(1)trdV(2)trdV(3)trdV(0)trdV(4)trdV(5)trdV(6)trdV(7)trdV(4)
133  glEnd();
134 
135  glBegin(GL_LINES);
136  trdV(3)trdV(7)
137  trdV(6)trdV(2)
138  trdV(5)trdV(1)
139  glEnd();
140 
141  if (disableLighting) glEnable(GL_LIGHTING);
142  if (transparencyOn) glEnable(GL_BLEND);
143  }
144  }
145 
146  if (state&&state->isElementEnabled(SoGLCacheContextElement::getClassStackIndex())) {
147  //Encourage auto caching
148  SoGLCacheContextElement::shouldAutoCache(state, SoGLCacheContextElement::DO_AUTO_CACHE);
149 #if ((COIN_MAJOR_VERSION>=3)||((COIN_MAJOR_VERSION==2)&&(COIN_MINOR_VERSION>=5)))
150  SoGLCacheContextElement::incNumShapes(state);
151 #endif
152  }
153 
154 }

◆ initClass()

void SoGenericBox::initClass ( )
static

Definition at line 62 of file SoGenericBox.cxx.

63 {
64  [[maybe_unused]] static const bool didInit = [&]() {
65  SO_NODE_INIT_CLASS(SoGenericBox, SoShape, "Shape");
66  return true;
67  }();
68 }

◆ internalSetParametersForEtaPhiCell()

void SoGenericBox::internalSetParametersForEtaPhiCell ( bool  barrel,
double  etaMin,
double  etaMax,
double  phiMin,
double  phiMax,
double  cellDepth,
double  cellDistance,
double  etasqueezefact,
double  phisqueezefact 
)
private

Definition at line 193 of file SoGenericBox.cxx.

197 {
199  if (phiMax<phiMin) std::swap(phiMin,phiMax);
201 
202  if (etasqueezefact!=1.0) {
203  double etashift(0.5*(1.0-etasqueezefact)*fabs(etaMax-etaMin));
204  etaMax -= etashift;
205  etaMin += etashift;
206  }
207  if (phisqueezefact!=1.0) {
208  double phishift(0.5*(1.0-phisqueezefact)*fabs(phiMax-phiMin));
209  phiMax -= phishift;
210  phiMin += phishift;
211  }
212 
213  if (cellDistance<0) cellDistance = -cellDistance;
214  if (cellDepth<0) cellDistance = std::max(cellDistance-cellDepth,0.0);
215  double tantheta2 = tan(2*atan(exp(-etaMin)));
216  double tantheta1 = tan(2*atan(exp(-etaMax)));
217  const double cpMin(cos(phiMin));
218  const double cpMax(cos(phiMax));
219  const double spMin(sin(phiMin));
220  const double spMax(sin(phiMax));
221  if (barrel) {
222  const double rf = cellDistance;
223  const double rb = cellDistance+cellDepth;
224  const double rfdivtantheta1(rf/tantheta1);
225  const double rbdivtantheta1(rb/tantheta1);
226  const double rfdivtantheta2(rf/tantheta2);
227  const double rbdivtantheta2(rb/tantheta2);
228  m_points[0*3+0] = rf*cpMin; m_points[0*3+1] = rf*spMin; m_points[0*3+2] = rfdivtantheta1;
229  m_points[1*3+0] = rf*cpMin; m_points[1*3+1] = rf*spMin; m_points[1*3+2] = rfdivtantheta2;
230  m_points[2*3+0] = rf*cpMax; m_points[2*3+1] = rf*spMax; m_points[2*3+2] = rfdivtantheta2;
231  m_points[3*3+0] = rf*cpMax; m_points[3*3+1] = rf*spMax; m_points[3*3+2] = rfdivtantheta1;
232  m_points[4*3+0] = rb*cpMin; m_points[4*3+1] = rb*spMin; m_points[4*3+2] = rbdivtantheta1;
233  m_points[5*3+0] = rb*cpMin; m_points[5*3+1] = rb*spMin; m_points[5*3+2] = rbdivtantheta2;
234  m_points[6*3+0] = rb*cpMax; m_points[6*3+1] = rb*spMax; m_points[6*3+2] = rbdivtantheta2;
235  m_points[7*3+0] = rb*cpMax; m_points[7*3+1] = rb*spMax; m_points[7*3+2] = rbdivtantheta1;
236  } else {
237  const double eta(0.5*(etaMin+etaMax));
238  const double zf(eta>0?cellDistance:-cellDistance);
239  double zb = (zf > 0 ? zf+cellDepth: zf-cellDepth);
240  m_points[0*3+0] = zf*tantheta1*cpMin; m_points[0*3+1] = zf*tantheta1*spMin; m_points[0*3+2] = zf;
241  m_points[1*3+0] = zf*tantheta2*cpMin; m_points[1*3+1] = zf*tantheta2*spMin; m_points[1*3+2] = zf;
242  m_points[2*3+0] = zf*tantheta2*cpMax; m_points[2*3+1] = zf*tantheta2*spMax; m_points[2*3+2] = zf;
243  m_points[3*3+0] = zf*tantheta1*cpMax; m_points[3*3+1] = zf*tantheta1*spMax; m_points[3*3+2] = zf;
244  m_points[4*3+0] = zb*tantheta1*cpMin; m_points[4*3+1] = zb*tantheta1*spMin; m_points[4*3+2] = zb;
245  m_points[5*3+0] = zb*tantheta2*cpMin; m_points[5*3+1] = zb*tantheta2*spMin; m_points[5*3+2] = zb;
246  m_points[6*3+0] = zb*tantheta2*cpMax; m_points[6*3+1] = zb*tantheta2*spMax; m_points[6*3+2] = zb;
247  m_points[7*3+0] = zb*tantheta1*cpMax; m_points[7*3+1] = zb*tantheta1*spMax; m_points[7*3+2] = zb;
248  }
249 
250  pointsUpdated();
251 }

◆ pointsUpdated()

void SoGenericBox::pointsUpdated ( )
private

Definition at line 374 of file SoGenericBox.cxx.

375 {
376  //Normals:
377  if (!m_normals)
378  m_normals = new float[SOGENERICBOX_NFACES*3];
379  for (int iface = 0; iface < SOGENERICBOX_NFACES; ++iface) {
380  const int index_v1 = sogenericbox_vindices[iface*4+0];
381  const int index_v2 = sogenericbox_vindices[iface*4+1];
382  const int index_v3 = sogenericbox_vindices[iface*4+2];
383 
384  //Figure out normal: (v2-v1)(x)(v3-v1)
385  const double v1X(m_points[index_v1*3+0]), v1Y(m_points[index_v1*3+1]), v1Z(m_points[index_v1*3+2]);
386  const double edge1X(m_points[index_v2*3+0]-v1X), edge1Y(m_points[index_v2*3+1]-v1Y), edge1Z(m_points[index_v2*3+2]-v1Z);
387  const double edge2X(m_points[index_v3*3+0]-v1X), edge2Y(m_points[index_v3*3+1]-v1Y), edge2Z(m_points[index_v3*3+2]-v1Z);
388 
389  double nx(edge1Y*edge2Z-edge1Z*edge2Y);
390  double ny(edge1Z*edge2X-edge1X*edge2Z);
391  double nz(edge1X*edge2Y-edge1Y*edge2X);
392  double nl(nx*nx+ny*ny+nz*nz);
393  if (nl<=0) {
394  std::cout<<"SoGenericBox::Error Could not calculate normal due to degenerate face edge"<<std::endl;
395  nx=1.0;ny=0.0;nz=0.0;nl=1;
396  //Fixme: We should try to use index_v4 instead of one vertex,
397  //to get the normal (this would allow faces where one edge was
398  //collapsed).
399  //const int index_v4 = sogenericbox_vindices[iface*4+3];
400  }
401  const double s(1.0/sqrt(nl));
402  m_normals[iface*3+0] = nx*s;
403  m_normals[iface*3+1] = ny*s;
404  m_normals[iface*3+2] = nz*s;
405  }
406 
407  //BBox:
408  float xmin(1.0e99), ymin(1.0e99), zmin(1.0e99);//fixme: -> inf
409  float xmax(-1.0e99), ymax(-1.0e99), zmax(-1.0e99);
410  for (int i=0;i<SOGENERICBOX_NPOINTS;++i) {
411  const float x(m_points[i*3+0]), y(m_points[i*3+1]), z(m_points[i*3+2]);
415  }
416  m_bbox.setBounds (xmin, ymin, zmin, xmax, ymax, zmax);
417  m_center.setValue(0.5*(xmin+xmax),0.5*(ymin+ymax),0.5*(zmin+zmax));
418 
419  drawEdgeLines.touch();
420 }

◆ setGenericParameters()

void SoGenericBox::setGenericParameters ( float  x0,
float  y0,
float  z0,
float  x1,
float  y1,
float  z1,
float  x2,
float  y2,
float  z2,
float  x3,
float  y3,
float  z3,
float  x4,
float  y4,
float  z4,
float  x5,
float  y5,
float  z5,
float  x6,
float  y6,
float  z6,
float  x7,
float  y7,
float  z7 
)

Definition at line 352 of file SoGenericBox.cxx.

360 {
362  m_points[0*3+0] = x0; m_points[0*3+1] = y0; m_points[0*3+2] = z0;
363  m_points[1*3+0] = x1; m_points[1*3+1] = y1; m_points[1*3+2] = z1;
364  m_points[2*3+0] = x2; m_points[2*3+1] = y2; m_points[2*3+2] = z2;
365  m_points[3*3+0] = x3; m_points[3*3+1] = y3; m_points[3*3+2] = z3;
366  m_points[4*3+0] = x4; m_points[4*3+1] = y4; m_points[4*3+2] = z4;
367  m_points[5*3+0] = x5; m_points[5*3+1] = y5; m_points[5*3+2] = z5;
368  m_points[6*3+0] = x6; m_points[6*3+1] = y6; m_points[6*3+2] = z6;
369  m_points[7*3+0] = x7; m_points[7*3+1] = y7; m_points[7*3+2] = z7;
370  pointsUpdated();
371 }

◆ setParametersForBarrelEtaPhiCell()

void SoGenericBox::setParametersForBarrelEtaPhiCell ( double  etaMin,
double  etaMax,
double  phiMin,
double  phiMax,
double  cellDepth,
double  cellDistance,
double  etasqueezefact = 1.0,
double  phisqueezefact = 1.0 
)

Definition at line 255 of file SoGenericBox.cxx.

259 {
260  internalSetParametersForEtaPhiCell( true, etaMin, etaMax, phiMin, phiMax,
261  cellDepth, cellDistance, etasqueezefact, phisqueezefact );
262 }

◆ setParametersForBox()

void SoGenericBox::setParametersForBox ( float  dx,
float  dy,
float  dz,
float  xcenter = 0.0,
float  ycenter = 0.0,
float  zcenter = 0.0 
)

Definition at line 178 of file SoGenericBox.cxx.

179  {
181  m_points[0*3+0] = xcenter+dx; m_points[0*3+1] = ycenter+dy; m_points[0*3+2] = zcenter-dz;
182  m_points[1*3+0] = xcenter-dx; m_points[1*3+1] = ycenter+dy; m_points[1*3+2] = zcenter-dz;
183  m_points[2*3+0] = xcenter-dx; m_points[2*3+1] = ycenter-dy; m_points[2*3+2] = zcenter-dz;
184  m_points[3*3+0] = xcenter+dx; m_points[3*3+1] = ycenter-dy; m_points[3*3+2] = zcenter-dz;
185  m_points[4*3+0] = xcenter+dx; m_points[4*3+1] = ycenter+dy; m_points[4*3+2] = zcenter+dz;
186  m_points[5*3+0] = xcenter-dx; m_points[5*3+1] = ycenter+dy; m_points[5*3+2] = zcenter+dz;
187  m_points[6*3+0] = xcenter-dx; m_points[6*3+1] = ycenter-dy; m_points[6*3+2] = zcenter+dz;
188  m_points[7*3+0] = xcenter+dx; m_points[7*3+1] = ycenter-dy; m_points[7*3+2] = zcenter+dz;
189  pointsUpdated();
190 }

◆ setParametersForEndCapEtaPhiCell()

void SoGenericBox::setParametersForEndCapEtaPhiCell ( double  etaMin,
double  etaMax,
double  phiMin,
double  phiMax,
double  cellDepth,
double  cellDistance,
double  etasqueezefact = 1.0,
double  phisqueezefact = 1.0 
)

Definition at line 265 of file SoGenericBox.cxx.

269 {
270  internalSetParametersForEtaPhiCell( false, etaMin, etaMax, phiMin, phiMax,
271  cellDepth, cellDistance, etasqueezefact, phisqueezefact );
272 }

◆ setParametersForTrapezoid()

void SoGenericBox::setParametersForTrapezoid ( float  dz,
float  theta,
float  phi,
float  dy1,
float  dx1,
float  dx2,
float  dy2,
float  dx3,
float  dx4,
float  alp1,
float  alp2 
)

Definition at line 292 of file SoGenericBox.cxx.

296 {
298  const float tanTheta(tan(theta));
299  const float TthetaCphi = tanTheta*cos(phi);
300  const float TthetaSphi = tanTheta*sin(phi);
301  const float Talp1 = tan(alp1);
302  const float Talp2 = tan(alp2);
303 
304  m_points[0*3+0] = dx2+dy1*Talp1;
305  m_points[0*3+1] = dy1;
306  m_points[0*3+2] = -dz;
307 
308  m_points[1*3+0] = -dx2+dy1*Talp1;
309  m_points[1*3+1] = dy1;
310  m_points[1*3+2] = -dz;
311 
312  m_points[2*3+0] = -dx1-dy1*Talp1;
313  m_points[2*3+1] = -dy1;
314  m_points[2*3+2] = -dz;
315 
316  m_points[3*3+0] = dx1-dy1*Talp1;
317  m_points[3*3+1] = -dy1;
318  m_points[3*3+2] = -dz;
319 
320  m_points[4*3+0] = dx4+dy2*Talp2;
321  m_points[4*3+1] = dy2;
322  m_points[4*3+2] = dz;
323 
324  m_points[5*3+0] = -dx4+dy2*Talp2;
325  m_points[5*3+1] = dy2;
326  m_points[5*3+2] = dz;
327 
328  m_points[6*3+0] = -dx3-dy2*Talp2;
329  m_points[6*3+1] = -dy2;
330  m_points[6*3+2] = dz;
331 
332  m_points[7*3+0] = dx3-dy2*Talp2;
333  m_points[7*3+1] = -dy2;
334  m_points[7*3+2] = dz;
335 
336  const float dzTthetaCphi(dz*TthetaCphi);
337  const float dzTthetaSphi(dz*TthetaSphi);
338  int i;
339  for (i=0;i<4;i++) {
340  m_points[i*3+0] -= dzTthetaCphi;
341  m_points[i*3+1] -= dzTthetaSphi;
342  }
343  for (i=4;i<8;i++) {
344  m_points[i*3+0] += dzTthetaCphi;
345  m_points[i*3+1] += dzTthetaSphi;
346  }
347  pointsUpdated();
348 }

◆ setParametersForTrd()

void SoGenericBox::setParametersForTrd ( float  dx1,
float  dx2,
float  dy1,
float  dy2,
float  dz 
)

Definition at line 275 of file SoGenericBox.cxx.

278 {
280  m_points[0*3+0] = dx1; m_points[0*3+1] = dy1; m_points[0*3+2] = -dz;
281  m_points[1*3+0] = -dx1; m_points[1*3+1] = dy1; m_points[1*3+2] = -dz;
282  m_points[2*3+0] = -dx1; m_points[2*3+1] = -dy1; m_points[2*3+2] = -dz;
283  m_points[3*3+0] = dx1; m_points[3*3+1] = -dy1; m_points[3*3+2] = -dz;
284  m_points[4*3+0] = dx2; m_points[4*3+1] = dy2; m_points[4*3+2] = dz;
285  m_points[5*3+0] = -dx2; m_points[5*3+1] = dy2; m_points[5*3+2] = dz;
286  m_points[6*3+0] = -dx2; m_points[6*3+1] = -dy2; m_points[6*3+2] = dz;
287  m_points[7*3+0] = dx2; m_points[7*3+1] = -dy2; m_points[7*3+2] = dz;
288  pointsUpdated();
289 }

◆ setupDefaultPoints()

void SoGenericBox::setupDefaultPoints ( )
private

Definition at line 164 of file SoGenericBox.cxx.

165 {
166  setParametersForBox( 0.5, 0.5, 0.5 );
167 }

◆ SO_NODE_HEADER()

SoGenericBox::SO_NODE_HEADER ( SoGenericBox  )
private

Member Data Documentation

◆ alternateRep

SoSFNode SoGenericBox::alternateRep

Definition at line 35 of file SoGenericBox.h.

◆ drawEdgeLines

SoSFBool SoGenericBox::drawEdgeLines

Definition at line 33 of file SoGenericBox.h.

◆ forceEdgeLinesInBaseColour

SoSFBool SoGenericBox::forceEdgeLinesInBaseColour

Definition at line 34 of file SoGenericBox.h.

◆ m_bbox

SbBox3f SoGenericBox::m_bbox
private

Definition at line 112 of file SoGenericBox.h.

◆ m_center

SbVec3f SoGenericBox::m_center
private

Definition at line 113 of file SoGenericBox.h.

◆ m_normals

float* SoGenericBox::m_normals
private

Definition at line 111 of file SoGenericBox.h.

◆ m_points

float* SoGenericBox::m_points
private

Definition at line 110 of file SoGenericBox.h.


The documentation for this class was generated from the following files:
SoGenericBox::m_bbox
SbBox3f m_bbox
Definition: SoGenericBox.h:112
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:215
SoGenericBox::ensurePointsAllocated
void ensurePointsAllocated()
Definition: SoGenericBox.cxx:157
ymin
double ymin
Definition: listroot.cxx:63
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
WriteCellNoiseToCool.rb
rb
Definition: WriteCellNoiseToCool.py:229
SoGenericBox::m_normals
float * m_normals
Definition: SoGenericBox.h:111
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:217
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
python.HLT.MinBias.MinBiasMenuSequences.zf
zf
Definition: MinBiasMenuSequences.py:224
xAOD::etaMax
etaMax
Definition: HIEventShape_v2.cxx:46
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
x
#define x
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
xmin
double xmin
Definition: listroot.cxx:60
z
#define z
SoGenericBox::internalSetParametersForEtaPhiCell
void internalSetParametersForEtaPhiCell(bool barrel, double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact, double phisqueezefact)
Definition: SoGenericBox.cxx:193
makeTRTBarrelCans.y2
tuple y2
Definition: makeTRTBarrelCans.py:18
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
SoGenericBox::setupDefaultPoints
void setupDefaultPoints()
Definition: SoGenericBox.cxx:164
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
MuonR4::SegmentFit::ParamDefs::x0
@ x0
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
SoGenericBox::setParametersForBox
void setParametersForBox(float dx, float dy, float dz, float xcenter=0.0, float ycenter=0.0, float zcenter=0.0)
Definition: SoGenericBox.cxx:178
grepfile.sep
sep
Definition: grepfile.py:38
MuonR4::SegmentFit::ParamDefs::y0
@ y0
SoGenericBox::clearAlternateRep
virtual void clearAlternateRep()
Definition: SoGenericBox.cxx:463
SoGenericBox::alternateRep
SoSFNode alternateRep
Definition: SoGenericBox.h:35
SoGenericBox::drawEdgeLines
SoSFBool drawEdgeLines
Definition: SoGenericBox.h:33
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
trdV
#define trdV(i)
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
LArCellBinning.etaMin
etaMin
Definition: LArCellBinning.py:84
y
#define y
python.CaloScaleNoiseConfig.action
action
Definition: CaloScaleNoiseConfig.py:77
SoGenericBox::forceEdgeLinesInBaseColour
SoSFBool forceEdgeLinesInBaseColour
Definition: SoGenericBox.h:34
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
SoGenericBox
Definition: SoGenericBox.h:26
DetectorZone::barrel
@ barrel
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
xmax
double xmax
Definition: listroot.cxx:61
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
SoGenericBox::m_points
float * m_points
Definition: SoGenericBox.h:110
SoGenericBox::m_center
SbVec3f m_center
Definition: SoGenericBox.h:113
ymax
double ymax
Definition: listroot.cxx:64
SoGenericBox::pointsUpdated
void pointsUpdated()
Definition: SoGenericBox.cxx:374