MVR Truss Geometry Authority

Perastage now exports truss objects with an explicit geometry authority policy controlled by the mvr_truss_geometry_authority configuration key.

Configuration

  • mvr_truss_geometry_authority = 0 → MVR_GEOMETRY (default)
  • mvr_truss_geometry_authority = 1 → GDTF

Export policy

The exporter always keeps GDTFSpec for truss objects when a GDTF source is available (existing truss GDTF, .gdtf model file, or generated GDTF).

To prevent duplicate meshes in downstream consumers, only one source is allowed to provide visible geometry per truss:

  • In MVR_GEOMETRY, visible geometry is written in the MVR <Geometries> node and the truss GDTF is rewritten as metadata-only (no renderable model).
  • In GDTF, no truss <Geometries> node is written and visible geometry is expected to come from the referenced GDTF.

Truss type and instance metadata

Standard truss type properties use the referenced GDTF as their primary exchange representation:

  • manufacturer and model names are stored on FixtureType;
  • dimensions are stored on Models/Model;
  • weight is stored in PhysicalDescriptions/Properties/Weight;
  • visual resources are referenced by Models/Model/@File.

Perastage continues to read older TrussInfoMap entries containing copies of these fields, but new exports do not duplicate standard GDTF properties there. Perastage-only metadata remains in root GeneralSceneDescription/UserData/Data[@provider="Perastage"], keyed by the canonical truss UUID. No UserData child is written directly below Truss.

The optional truss Load value is Perastage instance metadata rather than GDTF type data. An absent or empty Load entry means automatic load calculation. A non-empty manual override is written as:

<TrussInfo uuid="...">
  <Load unit="kg" source="Manual">123.45</Load>
</TrussInfo>

Clearing the Load table cell restores automatic mode and removes this element from subsequent exports. Manual values are highlighted in red in the truss table.

Generated truss GDTFs retain the simple top-level Geometry Name="Root" Model="Main" representation. Perastage does not require the optional GDTF Structure geometry in order to avoid changing compatibility with consumers that already render these visual-only truss fixture types.

Expected compatibility matrix

Mode (mvr_truss_geometry_authority) GDTFSpec on Truss <Geometries> on Truss Visible geometry authority Expected result in consumers that render GDTF by default
MVR_GEOMETRY (0) Yes Yes (when symbol geometry is available) MVR <Geometry3D> No double mesh, truss identity/metadata remains via GDTF.
GDTF (1) Yes No GDTF model No duplicate mesh from MVR truss geometry.
Back to top