7#ifndef G4OCCT_src_TGeoOCCTSolidBridge_hh
8#define G4OCCT_src_TGeoOCCTSolidBridge_hh
30 std::array<double, 3>
origin{0.0, 0.0, 0.0};
34 std::array<double, 3>
p1{0.0, 0.0, 0.0};
35 std::array<double, 3>
p2{0.0, 0.0, 0.0};
36 std::array<double, 3>
p3{0.0, 0.0, 0.0};
46 static std::unique_ptr<TGeoOCCTSolidBridge>
FromSTEP(
const std::string& name,
47 const std::string& path);
52 const TopoDS_Shape&
Shape()
const;
53 void SetShape(
const TopoDS_Shape& shape);
56 std::shared_ptr<const DisplayMeshCm>
DisplayMesh()
const;
59 double SafetyCm(
const double* point_cm,
bool inside)
const;
61 double* safe_cm =
nullptr)
const;
62 double DistFromInsideCm(
const double* point_cm,
const double* dir,
double* safe_cm =
nullptr,
63 bool calcNorm =
false,
double* norm =
nullptr,
64 bool* validNorm =
nullptr)
const;
70 std::unique_ptr<Impl> fImpl;
std::uint64_t ShapeGeneration() const
double DistFromOutsideCm(const double *point_cm, const double *dir, double *safe_cm=nullptr) const
double SafetyCm(const double *point_cm, bool inside) const
const TopoDS_Shape & Shape() const
void SurfaceNormalCm(const double *point_cm, double *norm) const
std::shared_ptr< const DisplayMeshCm > DisplayMesh() const
static std::unique_ptr< TGeoOCCTSolidBridge > FromSTEP(const std::string &name, const std::string &path)
static double InfinityCm()
PointClassification ClassifyCm(const double *point_cm) const
TGeoOCCTSolidBridge(const TGeoOCCTSolidBridge &)=delete
void SetShape(const TopoDS_Shape &shape)
double CapacityCm3() const
double DistFromInsideCm(const double *point_cm, const double *dir, double *safe_cm=nullptr, bool calcNorm=false, double *norm=nullptr, bool *validNorm=nullptr) const
TGeoOCCTSolidBridge & operator=(const TGeoOCCTSolidBridge &)=delete
std::array< double, 3 > origin
std::vector< DisplayTriangleCm > triangles
std::array< double, 3 > p2
std::array< double, 3 > p1
std::array< double, 3 > p3