ATLAS Offline Software
Public Member Functions | Public Attributes | Private Attributes | List of all members
ExtFace Class Reference

#include <BooleanProcessor.h>

Collaboration diagram for ExtFace:

Public Member Functions

 ExtFace (std::vector< ExtEdge > &a_edges, int iedge)
 
 ~ExtFace ()
 
 ExtFace (const ExtFace &face)
 
ExtFaceoperator= (const ExtFace &face)
 
void invert ()
 

Public Attributes

int iedges [4]
 
HVPlane3D plane
 
double rmin [3]
 
double rmax [3]
 
int iold
 
int inew
 
int iprev
 
int inext
 

Private Attributes

std::vector< ExtEdge > & m_edges
 

Detailed Description

Definition at line 204 of file BooleanProcessor.h.

Constructor & Destructor Documentation

◆ ExtFace() [1/2]

ExtFace::ExtFace ( std::vector< ExtEdge > &  a_edges,
int  iedge 
)
inline

Definition at line 218 of file BooleanProcessor.h.

219  : m_edges(a_edges), iold(iedge), inew(0), iprev(0), inext(0) {
220  //G.Barrand : initialize arrays to quiet valgrind.
221  {for (int i=0; i<4; i++) { iedges[i] = 0; }}
222  {for (int i=0; i<3; i++) { rmin[i] = 0; rmax[i] = 0; }}
223  }

◆ ~ExtFace()

ExtFace::~ExtFace ( )
inline

Definition at line 224 of file BooleanProcessor.h.

224 {}

◆ ExtFace() [2/2]

ExtFace::ExtFace ( const ExtFace face)
inline

Definition at line 226 of file BooleanProcessor.h.

226  :
227  m_edges(face.m_edges), //G.Barrand
228  plane(face.plane), iold(face.iold), inew(face.inew),
229  iprev(face.iprev), inext(face.inext)
230  {
231  int i;
232  for (i=0; i<4; i++) { iedges[i] = face.iedges[i]; }
233  for (i=0; i<3; i++) { rmin[i] = face.rmin[i]; rmax[i] = face.rmax[i]; }
234  }

Member Function Documentation

◆ invert()

void ExtFace::invert ( )
inline

Definition at line 410 of file BooleanProcessor.h.

419 {
420  int iEprev, iEcur, iEnext;
421 
422  iEprev = 0; iEcur = iold;
423  while (iEcur > 0) {
424  ExtEdge& edge = m_edges[iEcur]; //G.Barrand : optimize.
425  edge.invert();
426  iEnext = edge.inext;
427  edge.inext = iEprev;
428  iEprev = iEcur;
429  iEcur = iEnext;
430  }
431  if (iold > 0) iold = iEprev;
432 
433  iEprev = 0; iEcur = inew;
434  while (iEcur > 0) {
435  ExtEdge& edge = m_edges[iEcur]; //G.Barrand : optimize.
436  edge.invert();
437  iEnext = edge.inext;
438  edge.inext = iEprev;
439  iEprev = iEcur;
440  iEcur = iEnext;
441  }
442  if (inew > 0) inew = iEprev;
443 
444 #ifdef BP_GEANT4 //G.Barrand
445  plane = HVPlane3D(-plane.a(), -plane.b(), -plane.c(), -plane.d());
446 #else
448 #endif
449 }

◆ operator=()

ExtFace& ExtFace::operator= ( const ExtFace face)
inline

Definition at line 236 of file BooleanProcessor.h.

236  {
237  if (&face == this) return *this;
238  //FIXME : edges(face.edges) ???? //G.Barrand
239  int i;
240  for (i=0; i<4; i++) { iedges[i] = face.iedges[i]; }
241  plane = face.plane;
242  for (i=0; i<3; i++) { rmin[i] = face.rmin[i]; rmax[i] = face.rmax[i]; }
243  iold = face.iold;
244  inew = face.inew;
245  iprev = face.iprev;
246  inext = face.inext;
247  return *this;
248  }

Member Data Documentation

◆ iedges

int ExtFace::iedges[4]

Definition at line 208 of file BooleanProcessor.h.

◆ inew

int ExtFace::inew

Definition at line 212 of file BooleanProcessor.h.

◆ inext

int ExtFace::inext

Definition at line 214 of file BooleanProcessor.h.

◆ iold

int ExtFace::iold

Definition at line 211 of file BooleanProcessor.h.

◆ iprev

int ExtFace::iprev

Definition at line 213 of file BooleanProcessor.h.

◆ m_edges

std::vector<ExtEdge>& ExtFace::m_edges
private

Definition at line 206 of file BooleanProcessor.h.

◆ plane

HVPlane3D ExtFace::plane

Definition at line 209 of file BooleanProcessor.h.

◆ rmax

double ExtFace::rmax[3]

Definition at line 210 of file BooleanProcessor.h.

◆ rmin

double ExtFace::rmin[3]

Definition at line 210 of file BooleanProcessor.h.


The documentation for this class was generated from the following file:
ExtFace::iprev
int iprev
Definition: BooleanProcessor.h:213
HVPlane3D
HEPVis::SbPlane HVPlane3D
Definition: BooleanProcessor.h:67
ExtEdge::invert
void invert()
Definition: BooleanProcessor.h:197
ExtEdge
Definition: BooleanProcessor.h:168
lumiFormat.i
int i
Definition: lumiFormat.py:92
HEPVis::SbPlane::getNormal
const SbVec3d & getNormal() const
Definition: SbPlane.cxx:77
ExtFace::rmax
double rmax[3]
Definition: BooleanProcessor.h:210
ExtFace::inew
int inew
Definition: BooleanProcessor.h:212
ExtFace::iedges
int iedges[4]
Definition: BooleanProcessor.h:208
ExtFace::inext
int inext
Definition: BooleanProcessor.h:214
ExtFace::plane
HVPlane3D plane
Definition: BooleanProcessor.h:209
HEPVis::SbPlane::getDistanceFromOrigin
double getDistanceFromOrigin() const
Definition: SbPlane.cxx:78
ExtFace::m_edges
std::vector< ExtEdge > & m_edges
Definition: BooleanProcessor.h:206
ExtEdge::inext
int inext
Definition: BooleanProcessor.h:174
ExtFace::iold
int iold
Definition: BooleanProcessor.h:211
ExtFace::rmin
double rmin[3]
Definition: BooleanProcessor.h:210