34#ifndef G4TWISTTRAPFLATSIDE_HH
35#define G4TWISTTRAPFLATSIDE_HH
56 G4bool isGlobal =
false)
override;
68 G4int areacode[])
override;
71 G4bool isGlobal =
false)
override;
86 G4bool withTol =
true)
override;
90 void SetCorners()
override;
91 void SetBoundaries()
override;
117 return ( ( fDx2 + fDx1 )/2. + u*(fDx2 - fDx1)/(2.*fDy) + u *fTanAlpha ) ;
125 if (isGlobal) {
return (
fRot*SurfPoint +
fTrans); }
132 return -xAxisMax(y, -fTAlph) ;
138 return xAxisMax(y, fTAlph) ;
144 return 2*(fDx1 + fDx2)*fDy ;
G4int GetAreaCode(const G4ThreeVector &xx, G4bool withTol=true) override
~G4TwistTrapFlatSide() override
void GetFacets(G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside) override
G4double GetBoundaryMax(G4double u) override
G4double GetSurfaceArea() override
G4ThreeVector SurfacePoint(G4double x, G4double y, G4bool isGlobal=false) override
G4ThreeVector GetNormal(const G4ThreeVector &, G4bool isGlobal=false) override
G4double GetBoundaryMin(G4double u) override
G4TwistTrapFlatSide(const G4String &name, G4double PhiTwist, G4double pDx1, G4double pDx2, G4double pDy, G4double pDz, G4double pAlpha, G4double pPhi, G4double pTheta, G4int handedness)
G4int DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], G4int areacode[], G4bool isvalid[], EValidate validate=kValidateWithTol) override