45 #ifndef __G4TWISTTRAPFLATSIDE__
46 #define __G4TWISTTRAPFLATSIDE__
104 virtual void SetCorners();
105 virtual void SetBoundaries();
131 return ( ( fDx2 + fDx1 )/2. + u*(fDx2 - fDx1)/(2.*fDy) + u *fTanAlpha ) ;
139 if (isGlobal) {
return (
fRot*SurfPoint +
fTrans); }
146 return -xAxisMax(y, -fTAlph ) ;
152 return xAxisMax(y, fTAlph ) ;
158 return 2*(fDx1 + fDx2)*fDy ;
virtual G4ThreeVector SurfacePoint(G4double x, G4double y, G4bool isGlobal=false)
virtual G4int DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], G4int areacode[], G4bool isvalid[], EValidate validate=kValidateWithTol)
virtual G4ThreeVector GetNormal(const G4ThreeVector &, G4bool isGlobal=false)
virtual G4double GetSurfaceArea()
virtual G4int GetAreaCode(const G4ThreeVector &xx, G4bool withTol=true)
G4TwistTrapFlatSide(const G4String &name, G4double PhiTwist, G4double pDx1, G4double pDx2, G4double pDy, G4double pDz, G4double pAlpha, G4double pPhi, G4double pTheta, G4int handedness)
virtual G4double GetBoundaryMin(G4double u)
virtual ~G4TwistTrapFlatSide()
virtual void GetFacets(G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside)
virtual G4double GetBoundaryMax(G4double u)