35#ifndef G4VTWISTEDFACETED_HH
36#define G4VTWISTEDFACETED_HH 1
132 const G4bool calcnorm =
false,
133 G4bool* validnorm =
nullptr,
163 std::ostream&
StreamInfo(std::ostream& os)
const override;
223 void CreateSurfaces();
266 return ( fDx4 + fDx2 + ( fDx4 - fDx2 ) * ( 2 * phi ) / fPhiTwist ) ;
272 return ( fDx3 + fDx1 + ( fDx3 - fDx1 ) * ( 2 * phi ) / fPhiTwist ) ;
278 return ( fDy2 + fDy1 + ( fDy2 - fDy1 ) * ( 2 * phi ) / fPhiTwist ) ;
CLHEP::Hep3Vector G4ThreeVector
CLHEP::Hep2Vector G4TwoVector
G4ClippablePolygon in a utility class defining a polygon that can be clipped by a voxel.
G4SolidExtentList is utility class designed for calculating the extent of a CSG-like solid for a voxe...
G4VPVParameterisation ia an abstract base class for Parameterisation, able to compute the transformat...
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
G4VSolid(const G4String &name)
G4VTwistSurface is a base class for boundary surface of a G4VSolid.
G4VTwistedFaceted is a base class for twisted boxoids: G4TwistedTrd, G4TwistedTrap and G4TwistedBox.
G4double GetValueD(G4double phi) const
G4Polyhedron * GetPolyhedron() const override
G4double GetValueA(G4double phi) const
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4ThreeVector GetPointOnSurface() const override
G4double GetTheta() const
G4VTwistedFaceted & operator=(const G4VTwistedFaceted &rhs)
G4Polyhedron * fpPolyhedron
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
G4double GetTwistAngle() const
G4double GetCubicVolume() override
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
G4bool fRebuildPolyhedron
EInside Inside(const G4ThreeVector &p) const override
G4double GetAlpha() const
void ComputeDimensions(G4VPVParameterisation *, const G4int, const G4VPhysicalVolume *) override
G4Polyhedron * CreatePolyhedron() const override
std::ostream & StreamInfo(std::ostream &os) const override
G4GeometryType GetEntityType() const override
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcnorm=false, G4bool *validnorm=nullptr, G4ThreeVector *n=nullptr) const override
~G4VTwistedFaceted() override
G4VTwistedFaceted(const G4String &pname, G4double PhiTwist, G4double pDz, G4double pTheta, G4double pPhi, G4double pDy1, G4double pDx1, G4double pDx2, G4double pDy2, G4double pDx3, G4double pDx4, G4double pAlph)
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
G4VisExtent GetExtent() const override
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
G4double GetValueB(G4double phi) const
G4double Xcoef(G4double u, G4double phi, G4double ftg) const
G4double GetSurfaceArea() override
G4VoxelLimits represents limitation/restrictions of space, where restrictions are only made perpendic...