Table of Contents

Geometry Panels

The Geometry Panels are the editors for Geometry Objects, together with the switchboard that picks which ITransformer places them. Two switchboards run the folder: the Geometry Management Panel chooses a geometry kind and hosts that kind's editor, and the Transformer Select Panel does the same for a transformer.

On the shipped SPA a Control Tree is where both switchboards are usually met. A Geometry slot or a Transformer slot carries the kind picker, and the picked kind becomes the slot's single child node, whose panel is that kind's editor. The same editors are also embedded inline, without a tree — by Transformation Geometry Control for its inner geometry and inner transformer, by Geometry Combination Control for each child, by the Mechanism Builder page, and by the Tool House cutter's upper beam.

A page belongs in this folder when it documents one geometry kind's editor, or a switchboard that picks a kind and hosts that editor. The transformer switchboard lives beside the geometry kinds rather than under a route because it sits in the same Control-Tree slot pattern and is embedded by the same editors.

Ordered the way the folder builds up: the primitive solids first, then the file-backed geometries, then the operators that wrap and combine them, and last the two switchboards that host all of them.

Geometry Kinds

Page What it edits
Box3d Control A 3D box defined by min/max coordinates
Cylindroid Control A cylindroid with radius values along the Z axis
Extended Cylinder Panel An ExtendedCylinder and its full length
STL File Control An IStlSource loaded from an STL file
Meshed Geometry Panel A CubeTreeFile, the pre-computed voxel cube tree; the kind picker shows it as MeshedGeomFile
Transformation Geometry Control An inner geometry plus the transformer that places it
Geometry Combination Control Several geometries combined into one

Every kind above is an ordinary entry in the same geometry kind map, and the switchboard resolves each one the same way. What separates them in practice is reach, not class: each host names the kinds its own model accepts, so CubeTreeFile reaches only the workpiece's raw-geometry picker, and ExtendedCylinder only the cutter's upper beam.

Switchboards

Page What it hosts
Geometry Management Panel The geometry kind picker and the picked kind's editor
Transformer Select Panel The transformer kind picker and the picked kind's editor, over all seven transformer kinds

Source Code Path

See HiNC App Anatomy for git repository links.

The editors and the two switchboards:

  • wwwroot-src/src/components/geom/ — the geometry editors, plus wwwroot-src/src/components/geom/GeometryEditor.vue, the geometry switchboard itself.
  • wwwroot-src/src/components/topo/ — the transformer editors, plus wwwroot-src/src/components/topo/TransformerSelectPanel.vue.
  • wwwroot-src/src/components/geom/geometryEditors.ts and wwwroot-src/src/components/topo/transformerEditors.ts — the two kind → editor maps every host resolves an editor through.

The Control-Tree glue that makes them reachable:

  • wwwroot-src/src/components/controlTree/GeometrySlotPanel.vue and wwwroot-src/src/components/controlTree/TransformerSlotPanel.vue — the two slot panels, each its switchboard in selector-only mode.
  • wwwroot-src/src/components/controlTree/SoleEditorPanel.vue — the kind node's panel, resolving the node's kind through both maps.
  • wwwroot-src/src/components/controlTree/itemTypes.ts — registers Geometry and Transformer as slot types; the five leaf geometry kinds and all seven transformer kinds against SoleEditorPanel; and TransformationGeom and GeomCombination against their own tree panels, which grow further slot children instead of one editor.

The REST controllers, one per kind:

  • Geom/Box3dController.cs, Geom/CylindroidController.cs, Geom/ExtendedCylinderController.cs, Geom/StlFileController.cs, Geom/CubeTreeFileController.cs, Geom/TransformationGeomController.cs, Geom/GeomCombinationController.cs.
  • Mech/Topo/StaticTranslationController.cs, Mech/Topo/StaticRotationController.cs, Mech/Topo/StaticFreeformController.cs, Mech/Topo/DynamicTranslationController.cs, Mech/Topo/DynamicRotationController.cs, Mech/Topo/GeneralTransformController.cs, Mech/Topo/NoTransformController.cs.