7#ifndef G4OCCT_G4OCCTSolid_hh
8#define G4OCCT_G4OCCTSolid_hh
11#include <G4ThreeVector.hh>
20class G4VGraphicsScene;
40 G4OCCTSolid(
const G4String& name,
const TopoDS_Shape& shape);
64 EInside
Inside(
const G4ThreeVector& p)
const override;
72 G4ThreeVector
SurfaceNormal(
const G4ThreeVector& p)
const override;
83 G4double
DistanceToIn(
const G4ThreeVector& p,
const G4ThreeVector& v)
const override;
91 G4double
DistanceToIn(
const G4ThreeVector& p)
const override;
105 G4double
DistanceToOut(
const G4ThreeVector& p,
const G4ThreeVector& v,
106 const G4bool calcNorm =
false, G4bool* validNorm =
nullptr,
107 G4ThreeVector* n =
nullptr)
const override;
115 G4double
DistanceToOut(
const G4ThreeVector& p)
const override;
168 void BoundingLimits(G4ThreeVector& pMin, G4ThreeVector& pMax)
const override;
174 G4bool
CalculateExtent(
const EAxis pAxis,
const G4VoxelLimits& pVoxelLimit,
175 const G4AffineTransform& pTransform, G4double& pMin,
176 G4double& pMax)
const override;
193 std::ostream&
StreamInfo(std::ostream& os)
const override;
215 std::unique_ptr<Impl> fImpl;
Geant4 solid wrapping an Open CASCADE Technology (OCCT) TopoDS_Shape.
G4double ExactDistanceToOut(const G4ThreeVector &p) const
EInside Inside(const G4ThreeVector &p) const override
G4double GetCubicVolume() override
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4Polyhedron * CreatePolyhedron() const override
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
void SetOCCTShape(const TopoDS_Shape &shape)
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
G4double GetSurfaceArea() override
G4GeometryType GetEntityType() const override
const TopoDS_Shape & GetOCCTShape() const
G4ThreeVector GetPointOnSurface() const override
G4VisExtent GetExtent() const override
std::ostream & StreamInfo(std::ostream &os) const override
static G4OCCTSolid * FromSTEP(const G4String &name, const std::string &path)
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4double ExactDistanceToIn(const G4ThreeVector &p) const