Geant4  10.05.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4VTwistSurface Class Referenceabstract
Inheritance diagram for G4VTwistSurface:
G4TwistBoxSide G4TwistTrapAlphaSide G4TwistTrapFlatSide G4TwistTrapParallelSide G4TwistTubsFlatSide G4TwistTubsHypeSide G4TwistTubsSide

Classes

class  Boundary
 
class  CurrentStatus
 
class  G4SurfCurNormal
 
class  G4SurfSideQuery
 

Public Types

enum  EValidate { kDontValidate = 0, kValidateWithTol = 1, kValidateWithoutTol = 2, kUninitialized = 3 }
 

Public Member Functions

 G4VTwistSurface (const G4String &name)
 
 G4VTwistSurface (const G4String &name, const G4RotationMatrix &rot, const G4ThreeVector &tlate, G4int handedness, const EAxis axis1, const EAxis axis2, G4double axis0min=-kInfinity, G4double axis1min=-kInfinity, G4double axis0max=kInfinity, G4double axis1max=kInfinity)
 
virtual ~G4VTwistSurface ()
 
virtual G4int AmIOnLeftSide (const G4ThreeVector &me, const G4ThreeVector &vec, G4bool withTol=true)
 
virtual G4double DistanceToBoundary (G4int areacode, G4ThreeVector &xx, const G4ThreeVector &p)
 
virtual G4double DistanceToIn (const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector &gxxbest)
 
virtual G4double DistanceToOut (const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector &gxxbest)
 
virtual G4double DistanceTo (const G4ThreeVector &gp, G4ThreeVector &gxx)
 
virtual G4int DistanceToSurface (const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], G4int areacode[], G4bool isvalid[], EValidate validate=kValidateWithTol)=0
 
virtual G4int DistanceToSurface (const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[])=0
 
void DebugPrint () const
 
virtual G4ThreeVector GetNormal (const G4ThreeVector &xx, G4bool isGlobal)=0
 
virtual G4String GetName () const
 
virtual void GetBoundaryParameters (const G4int &areacode, G4ThreeVector &d, G4ThreeVector &x0, G4int &boundarytype) const
 
virtual G4ThreeVector GetBoundaryAtPZ (G4int areacode, const G4ThreeVector &p) const
 
G4double DistanceToPlaneWithV (const G4ThreeVector &p, const G4ThreeVector &v, const G4ThreeVector &x0, const G4ThreeVector &n0, G4ThreeVector &xx)
 
G4double DistanceToPlane (const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &n0, G4ThreeVector &xx)
 
G4double DistanceToPlane (const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &t1, const G4ThreeVector &t2, G4ThreeVector &xx, G4ThreeVector &n)
 
G4double DistanceToLine (const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &d, G4ThreeVector &xx)
 
G4bool IsAxis0 (G4int areacode) const
 
G4bool IsAxis1 (G4int areacode) const
 
G4bool IsOutside (G4int areacode) const
 
G4bool IsInside (G4int areacode, G4bool testbitmode=false) const
 
G4bool IsBoundary (G4int areacode, G4bool testbitmode=false) const
 
G4bool IsCorner (G4int areacode, G4bool testbitmode=false) const
 
G4bool IsValidNorm () const
 
G4bool IsSameBoundary (G4VTwistSurface *surface1, G4int areacode1, G4VTwistSurface *surface2, G4int areacode2) const
 
G4int GetAxisType (G4int areacode, G4int whichaxis) const
 
G4ThreeVector ComputeGlobalPoint (const G4ThreeVector &lp) const
 
G4ThreeVector ComputeLocalPoint (const G4ThreeVector &gp) const
 
G4ThreeVector ComputeGlobalDirection (const G4ThreeVector &lp) const
 
G4ThreeVector ComputeLocalDirection (const G4ThreeVector &gp) const
 
void SetAxis (G4int i, const EAxis axis)
 
void SetNeighbours (G4VTwistSurface *axis0min, G4VTwistSurface *axis1min, G4VTwistSurface *axis0max, G4VTwistSurface *axis1max)
 
virtual G4ThreeVector SurfacePoint (G4double, G4double, G4bool isGlobal=false)=0
 
virtual G4double GetBoundaryMin (G4double)=0
 
virtual G4double GetBoundaryMax (G4double)=0
 
virtual G4double GetSurfaceArea ()=0
 
virtual void GetFacets (G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside)=0
 
G4int GetNode (G4int i, G4int j, G4int m, G4int n, G4int iside)
 
G4int GetFace (G4int i, G4int j, G4int m, G4int n, G4int iside)
 
G4int GetEdgeVisibility (G4int i, G4int j, G4int m, G4int n, G4int number, G4int orientation)
 
 G4VTwistSurface (__void__ &)
 

Static Public Attributes

static const G4int sOutside
 
static const G4int sInside
 
static const G4int sBoundary
 
static const G4int sCorner
 
static const G4int sC0Min1Min
 
static const G4int sC0Max1Min
 
static const G4int sC0Max1Max
 
static const G4int sC0Min1Max
 
static const G4int sAxisMin
 
static const G4int sAxisMax
 
static const G4int sAxisX
 
static const G4int sAxisY
 
static const G4int sAxisZ
 
static const G4int sAxisRho
 
static const G4int sAxisPhi
 
static const G4int sAxis0
 
static const G4int sAxis1
 
static const G4int sSizeMask
 
static const G4int sAxisMask
 
static const G4int sAreaMask
 

Protected Member Functions

G4VTwistSurface ** GetNeighbours ()
 
G4int GetNeighbours (G4int areacode, G4VTwistSurface *surfaces[])
 
G4ThreeVector GetCorner (G4int areacode) const
 
void GetBoundaryAxis (G4int areacode, EAxis axis[]) const
 
void GetBoundaryLimit (G4int areacode, G4double limit[]) const
 
virtual G4int GetAreaCode (const G4ThreeVector &xx, G4bool withtol=true)=0
 
virtual void SetBoundary (const G4int &axiscode, const G4ThreeVector &direction, const G4ThreeVector &x0, const G4int &boundarytype)
 
void SetCorner (G4int areacode, G4double x, G4double y, G4double z)
 

Protected Attributes

EAxis fAxis [2]
 
G4double fAxisMin [2]
 
G4double fAxisMax [2]
 
CurrentStatus fCurStatWithV
 
CurrentStatus fCurStat
 
G4RotationMatrix fRot
 
G4ThreeVector fTrans
 
G4int fHandedness
 
G4SurfCurNormal fCurrentNormal
 
G4bool fIsValidNorm
 
G4double kCarTolerance
 

Private Member Functions

virtual void SetBoundaries ()=0
 
virtual void SetCorners ()=0
 

Private Attributes

G4VTwistSurfacefNeighbours [4]
 
G4ThreeVector fCorners [4]
 
Boundary fBoundaries [4]
 
G4String fName
 
G4SurfSideQuery fAmIOnLeftSide
 

Member Enumeration Documentation

enum EValidate
Enumerator
kDontValidate 
kValidateWithTol 
kValidateWithoutTol 
kUninitialized 

Constructor & Destructor Documentation

G4VTwistSurface ( const G4String name,
const G4RotationMatrix rot,
const G4ThreeVector tlate,
G4int  handedness,
const EAxis  axis1,
const EAxis  axis2,
G4double  axis0min = -kInfinity,
G4double  axis1min = -kInfinity,
G4double  axis0max = kInfinity,
G4double  axis1max = kInfinity 
)
virtual ~G4VTwistSurface ( )
virtual
G4VTwistSurface ( __void__ &  )

Member Function Documentation

virtual G4int AmIOnLeftSide ( const G4ThreeVector me,
const G4ThreeVector vec,
G4bool  withTol = true 
)
virtual
virtual G4double DistanceToBoundary ( G4int  areacode,
G4ThreeVector xx,
const G4ThreeVector p 
)
virtual
virtual G4double DistanceToIn ( const G4ThreeVector gp,
const G4ThreeVector gv,
G4ThreeVector gxxbest 
)
virtual
virtual G4double DistanceToOut ( const G4ThreeVector gp,
const G4ThreeVector gv,
G4ThreeVector gxxbest 
)
virtual
virtual G4double DistanceTo ( const G4ThreeVector gp,
G4ThreeVector gxx 
)
virtual
virtual G4int DistanceToSurface ( const G4ThreeVector gp,
const G4ThreeVector gv,
G4ThreeVector  gxx[],
G4double  distance[],
G4int  areacode[],
G4bool  isvalid[],
EValidate  validate = kValidateWithTol 
)
pure virtual
virtual G4int DistanceToSurface ( const G4ThreeVector gp,
G4ThreeVector  gxx[],
G4double  distance[],
G4int  areacode[] 
)
pure virtual
void DebugPrint ( ) const
virtual G4String GetName ( ) const
virtual

References fName.

virtual void GetBoundaryParameters ( const G4int areacode,
G4ThreeVector d,
G4ThreeVector x0,
G4int boundarytype 
) const
virtual
virtual G4ThreeVector GetBoundaryAtPZ ( G4int  areacode,
const G4ThreeVector p 
) const
virtual
G4double DistanceToPlaneWithV ( const G4ThreeVector p,
const G4ThreeVector v,
const G4ThreeVector x0,
const G4ThreeVector n0,
G4ThreeVector xx 
)
G4double DistanceToPlane ( const G4ThreeVector p,
const G4ThreeVector x0,
const G4ThreeVector n0,
G4ThreeVector xx 
)
G4double DistanceToPlane ( const G4ThreeVector p,
const G4ThreeVector x0,
const G4ThreeVector t1,
const G4ThreeVector t2,
G4ThreeVector xx,
G4ThreeVector n 
)
G4double DistanceToLine ( const G4ThreeVector p,
const G4ThreeVector x0,
const G4ThreeVector d,
G4ThreeVector xx 
)
G4bool IsAxis0 ( G4int  areacode) const
G4bool IsAxis1 ( G4int  areacode) const
G4bool IsOutside ( G4int  areacode) const
G4bool IsInside ( G4int  areacode,
G4bool  testbitmode = false 
) const
G4bool IsBoundary ( G4int  areacode,
G4bool  testbitmode = false 
) const
G4bool IsCorner ( G4int  areacode,
G4bool  testbitmode = false 
) const
G4bool IsValidNorm ( ) const

References fIsValidNorm.

G4bool IsSameBoundary ( G4VTwistSurface surface1,
G4int  areacode1,
G4VTwistSurface surface2,
G4int  areacode2 
) const
G4int GetAxisType ( G4int  areacode,
G4int  whichaxis 
) const
G4ThreeVector ComputeGlobalPoint ( const G4ThreeVector lp) const
G4ThreeVector ComputeLocalPoint ( const G4ThreeVector gp) const
G4ThreeVector ComputeGlobalDirection ( const G4ThreeVector lp) const
G4ThreeVector ComputeLocalDirection ( const G4ThreeVector gp) const
void SetAxis ( G4int  i,
const EAxis  axis 
)

References fAxis.

void SetNeighbours ( G4VTwistSurface axis0min,
G4VTwistSurface axis1min,
G4VTwistSurface axis0max,
G4VTwistSurface axis1max 
)
virtual void GetFacets ( G4int  m,
G4int  n,
G4double  xyz[][3],
G4int  faces[][4],
G4int  iside 
)
pure virtual
G4int GetNode ( G4int  i,
G4int  j,
G4int  m,
G4int  n,
G4int  iside 
)
G4int GetFace ( G4int  i,
G4int  j,
G4int  m,
G4int  n,
G4int  iside 
)
G4int GetEdgeVisibility ( G4int  i,
G4int  j,
G4int  m,
G4int  n,
G4int  number,
G4int  orientation 
)
G4VTwistSurface** GetNeighbours ( )
protected

References fNeighbours.

G4int GetNeighbours ( G4int  areacode,
G4VTwistSurface surfaces[] 
)
protected
G4ThreeVector GetCorner ( G4int  areacode) const
protected
void GetBoundaryAxis ( G4int  areacode,
EAxis  axis[] 
) const
protected
void GetBoundaryLimit ( G4int  areacode,
G4double  limit[] 
) const
protected
virtual G4int GetAreaCode ( const G4ThreeVector xx,
G4bool  withtol = true 
)
protectedpure virtual
virtual void SetBoundary ( const G4int axiscode,
const G4ThreeVector direction,
const G4ThreeVector x0,
const G4int boundarytype 
)
protectedvirtual
void SetCorner ( G4int  areacode,
G4double  x,
G4double  y,
G4double  z 
)
protected

Member Data Documentation

const G4int sOutside
static
const G4int sInside
static
const G4int sBoundary
static
const G4int sCorner
static
const G4int sC0Min1Min
static
const G4int sC0Max1Min
static
const G4int sC0Max1Max
static
const G4int sC0Min1Max
static
const G4int sAxisMin
static
const G4int sAxisMax
static
const G4int sAxisX
static
const G4int sAxisY
static
const G4int sAxisZ
static
const G4int sAxisRho
static
const G4int sAxisPhi
static
const G4int sAxis1
static
const G4int sSizeMask
static
const G4int sAxisMask
static
const G4int sAreaMask
static
EAxis fAxis[2]
protected

Referenced by SetAxis().

CurrentStatus fCurStatWithV
protected
CurrentStatus fCurStat
protected
G4int fHandedness
protected
G4SurfCurNormal fCurrentNormal
protected
G4bool fIsValidNorm
protected

Referenced by IsValidNorm().

G4double kCarTolerance
protected
G4VTwistSurface* fNeighbours[4]
private

Referenced by GetNeighbours().

G4ThreeVector fCorners[4]
private
Boundary fBoundaries[4]
private
G4String fName
private

Referenced by GetName().

G4SurfSideQuery fAmIOnLeftSide
private