![]() |
Project
|
Namespaces | |
| namespace | bench |
| namespace | harness |
| namespace | surface |
| namespace | xray |
Classes | |
| struct | BVHSurfaceCurveRecord |
| One boundary curve of a BVHSurfaceRecord in the flat form ROOT streams: a segment, an arc or a B-spline. More... | |
| struct | BVHSurfaceRecord |
| The persistent record of one successful Add*Surface call; reading a solid back replays the records. More... | |
| struct | FlatCSGBox |
| struct | FlatCSGCell |
One DNF cell: [first, first + count) of the halfspace array, intersected; volume is its own volume. More... | |
| struct | FlatCSGHalfspace |
| class | O2BVHAssembly |
| class | O2BVHSurfaceSolid |
| class | O2FlatCSG |
| struct | OverlapCensus |
| struct | OverlapOptions |
| struct | OverlapPair |
| One pair of placed solids, and everything measured about it. More... | |
| struct | OverlapSolidReport |
| One solid's sampling report; a shape with a poor display mesh shows here as reduced coverage. More... | |
Enumerations | |
| enum class | OverlapVerdict { Disjoint , Touching , Interpenetrating , Contained } |
| Whether two placed solids may legally coexist: disjoint and touching are legal, interpenetrating and contained are not. More... | |
Functions | |
| TGeoVolume * | buildCADVolumeFromMacro (const std::string ¯oFile, const std::string &instanceTag) |
| void | remapCADMedia (TGeoVolume *top, const char *modulename) |
| const char * | OverlapVerdictName (OverlapVerdict verdict) |
| int | SampleBoundaryPoints (const TGeoShape *shape, int npoints, double residualTolerance, std::vector< double > &points, int &rejected, double &worstResidual, bool *usedPointsOnSegments=nullptr) |
| OverlapPair | CheckPairOverlap (const TGeoShape *shapeA, const TGeoMatrix *matA, const std::string &nameA, const TGeoShape *shapeB, const TGeoMatrix *matB, const std::string &nameB, const OverlapOptions &options=OverlapOptions()) |
| Test one placed pair. matA / matB take each shape's local frame to the common frame. | |
| OverlapCensus | CheckWorldOverlaps (const TGeoVolume *volume, const OverlapOptions &options=OverlapOptions()) |
| Census every pair of volume's immediate daughters, and optionally each daughter against volume. | |
| bool | LoadSurfaceSolid (const std::string &file, O2BVHSurfaceSolid &solid) |
| bool | LoadFacetSolid (const std::string &file, o2::base::O2Tessellated &solid) |
| bool | LoadFlatCSG (const std::string &file, O2FlatCSG &solid) |
| Load a flat-CSG sidecar (flatcsg_*.bin, version 1) into solid; call CloseShape() after. False on an I/O or format error. | |
| bool | WriteFlatCSG (const std::string &file, const O2FlatCSG &solid) |
|
strong |
Whether two placed solids may legally coexist: disjoint and touching are legal, interpenetrating and contained are not.
Definition at line 31 of file O2OverlapCheck.h.
| TGeoVolume * o2::cad::buildCADVolumeFromMacro | ( | const std::string & | macroFile, |
| const std::string & | instanceTag | ||
| ) |
JIT-compile a CAD-derived ROOT geometry macro (as produced by O2_CADtoTGeo.py) and execute it to obtain the top TGeoVolume of the described module.
The macro body is wrapped into a unique namespace (derived from instanceTag) so that several such macros — which all export identically named symbols (build(), get_builder_hook_unchecked(), ...) — can coexist in the same Cling session without colliding. Returns nullptr on failure.
| macroFile | path to the geometry macro (shell variables are expanded) |
| instanceTag | a short tag used to build a unique, human-readable namespace |
Definition at line 39 of file CADGeometryUtils.cxx.
| OverlapPair o2::cad::CheckPairOverlap | ( | const TGeoShape * | shapeA, |
| const TGeoMatrix * | matA, | ||
| const std::string & | nameA, | ||
| const TGeoShape * | shapeB, | ||
| const TGeoMatrix * | matB, | ||
| const std::string & | nameB, | ||
| const OverlapOptions & | options = OverlapOptions() |
||
| ) |
Test one placed pair. matA / matB take each shape's local frame to the common frame.
Definition at line 343 of file O2OverlapCheck.cxx.
| OverlapCensus o2::cad::CheckWorldOverlaps | ( | const TGeoVolume * | volume, |
| const OverlapOptions & | options = OverlapOptions() |
||
| ) |
Census every pair of volume's immediate daughters, and optionally each daughter against volume.
Definition at line 370 of file O2OverlapCheck.cxx.
| bool o2::cad::LoadFacetSolid | ( | const std::string & | file, |
| o2::base::O2Tessellated & | solid | ||
| ) |
Load a facet sidecar (facets_*.bin: a uint32 triangle count, then nine float32 per triangle) into solid; call CloseShape() after. False on an I/O or format error; degenerate facets are skipped and counted in a warning.
Definition at line 636 of file O2SurfaceSolidIO.cxx.
| bool o2::cad::LoadFlatCSG | ( | const std::string & | file, |
| O2FlatCSG & | solid | ||
| ) |
Load a flat-CSG sidecar (flatcsg_*.bin, version 1) into solid; call CloseShape() after. False on an I/O or format error.
Definition at line 688 of file O2SurfaceSolidIO.cxx.
| bool o2::cad::LoadSurfaceSolid | ( | const std::string & | file, |
| O2BVHSurfaceSolid & | solid | ||
| ) |
Load an exact-surface sidecar (surfaces_*.bin, versions 1-3) into solid through its Add*Surface methods; call CloseShape() after. False on an I/O or format error, when the solid may be partly filled and should be discarded.
Definition at line 365 of file O2SurfaceSolidIO.cxx.
| const char * o2::cad::OverlapVerdictName | ( | OverlapVerdict | verdict | ) |
Definition at line 38 of file O2OverlapCheck.cxx.
Re-register the TGeo media used in the volume tree rooted at top into the O2 MaterialManager under ownership of modulename, rewiring the volumes to the newly created media. This brings the CAD-imported media under O2's media/cut handling (so that e.g. tracking cuts apply consistently).
Definition at line 102 of file CADGeometryUtils.cxx.
| int o2::cad::SampleBoundaryPoints | ( | const TGeoShape * | shape, |
| int | npoints, | ||
| double | residualTolerance, | ||
| std::vector< double > & | points, | ||
| int & | rejected, | ||
| double & | worstResidual, | ||
| bool * | usedPointsOnSegments = nullptr |
||
| ) |
Sample npoints points on shape's own boundary into points, keeping those within residualTolerance where Contains flips. Returns the number kept; rejected and worstResidual report the filter.
Definition at line 154 of file O2OverlapCheck.cxx.
| bool o2::cad::WriteFlatCSG | ( | const std::string & | file, |
| const O2FlatCSG & | solid | ||
| ) |
Write solid in the same format. Used by the converter's tests and by the round-trip case; the production writer is Detectors/CADSupport/tools/cadsupport/flat.py, and the two must agree byte for byte.
Definition at line 804 of file O2SurfaceSolidIO.cxx.