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 Editor 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 GeomCombination Editor for each child, by the Equipment page's Topology column, and by the Tool House cutter's upper beam. A transform on a geometry is not a kind of its own: the Transform Picker beside a geometry puts one on it in place, and the transformer's editor follows the geometry's.
A page belongs in this folder when it documents one geometry kind's editor, a switchboard that picks a kind and hosts that editor, or the Transform picker that sits beside the kind. 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 operator that combines them, then the Transform picker, and last the two switchboards that host all of them.
Geometry Kinds
| Page | What it edits |
|---|---|
| Box3d Editor | A 3D box defined by min/max coordinates |
| Cylindroid Editor | A cylindroid with radius values along the Z axis |
| ExtendedCylinder Editor | An ExtendedCylinder and its full length |
| StlFile Editor | An IStlSource loaded from an STL file |
| MeshedGeomFile Editor | A CubeTreeFile, the pre-computed voxel cube tree; the kind picker and this page name it MeshedGeomFile, the code calls it CubeTreeFile |
| GeomCombination Editor | 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 Editor | The geometry kind picker and the picked kind's editor |
| Transform Picker | The transform on a geometry — No Transform or one of six transformer kinds — put on the picked geometry in place; a TransformationGeom on the server, never a kind on the screen |
| 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, pluswwwroot-src/src/components/geom/GeometryEditor.vue, the geometry switchboard itself.wwwroot-src/src/components/topo/— the transformer editors, pluswwwroot-src/src/components/topo/TransformerSelectPanel.vue.wwwroot-src/src/components/geom/geometryEditors.tsandwwwroot-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.vueandwwwroot-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— registersGeometryandTransformeras slot types; six geometry kinds (TransformationGeomamong them, for a wrapper nested inside a wrapper) and all seven transformer kinds againstSoleEditorPanel; andGeomCombinationagainst its own tree panel, which grows further slot children instead of one editor. A slot holding aTransformationGeomgrows its inner kind's node and the transformer's node beneath it.
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.