SceneMesher

Mesh a scene at a design point into tetrahedra, measure the mesh, and resolve every region of the scene on it.

Inherits study::IMesher

In the namespace construct::studyseam. Declared in src/libs/libconstruct/construct/studyseam/SceneMesher.hpp.

Detailed description

  1. Load the scene and set the design point on that copy. A parameter that the scene does not declare, or that is an expression entry, is refused: `Construct::setVariable` creates a missing entry silently, and a misspelled variable would then mesh the scene unchanged. A parameter in another unit is converted to the entry's unit with `study::Unit`; a unit of another dimension is refused.
  2. Export a tet volume through `exportScene`, at the request's resolution as the cell size, on the CPU interpreter and with no post-process: the same geometry at the same resolution gives the same bytes on every node, which the `mesh` component's `Portable` claim needs. A named volume scopes and cuts the mesh (§BVX-5). Without one, the bounds are detected around the geometry, and the scene's active volume is ignored (§PSD-2a.1).
  3. Report the element count, the smallest dihedral angle and the inverted and degenerate counts from the export's own quality report, so the gates read the numbers of the mesh that was written.
  4. Resolve every region on that mesh in world coordinates, through `construct::region::resolveRegion`, which hands the selection to `study::RegionResolver`, so §PSR-6 has one home.

It never writes to the scene file (§PSD-2a.1). It keeps no state, so one instance serves several study threads at once.

In this section