-
Notifications
You must be signed in to change notification settings - Fork 0
Surfaces Openings and Connections
A surface is the unit on which material is applied. The planner lets you turn raw geometry into named, editable surfaces, punch holes (openings) through them, split them along arbitrary lines, and tie neighbouring surfaces together with connections that drive how material wraps from one to another.
Feature line from the README: π§© Named surfaces, openings, and multi-surface connections.
Use the Surface tool (F):
- Activate the tool.
- Click inside an already-drawn rectangle or polygon to promote it, or
draw a new outline directly. The resulting outline is registered as a
surface entity with a unique id, a default name (
Surface 1,Surface 2β¦), and an editable polygon boundary. - Open the Properties panel to rename, assign a material and pick a placement pattern.
For the currently selected surface you can edit:
- Name β free-form, used in the legend, the cut list and the PDF export.
- Material β picks an entry from the material library.
- Placement pattern β selects a saved pattern; the active pattern's settings can be tweaked inline via a collapsible "Pattern settings" section.
- Show name / Show dimensions / Show area β three independent toggles that control overlay labels rendered on the canvas.
- Edge rules β per-edge overlap configuration (see Edge Overlap Visualization).
- Delete surface β removes the surface and all dependent layouts.
The Surface List in the bottom panel mirrors the same data and lets you jump between surfaces quickly.
Openings carve windows, sockets, ducts or any other hole out of a parent surface. The placement engine flows material around every opening so the cut list and visualization automatically respect them.
Select a surface, then activate the Opening tool (O):
- Drag a rectangle (the most common case), or click vertices to build a polygonal opening.
- The opening is subtracted from the parent surface and shown with a distinct outline on the canvas.
- Open the Properties panel to fine-tune size, position, label and visibility.
You can have any number of openings per surface; nested or overlapping openings are merged geometrically before the layout is computed.
The Split surface tool (X) divides one surface into two along a cut
line:
- Click the surface to split.
- Click a start point on one edge, then an end point on another edge.
- Two independent surfaces are produced. Each keeps its own name, material, pattern and edge rules β useful when a wall changes finish half-way.
The cut also leaves behind a connection (see below) so material continuity across the split is still respected.
A connection is a directed link between two edges that belong to two different surfaces. Connections power three things:
- Material continuity β the layout engine can flow material across the shared edge instead of stopping at it.
- Physical overlap β when one side is configured as a donor, its material is rendered partially over the other side (see Edge Overlap Visualization).
- Cut-list awareness β pieces that cross a connection are split once for cutting, but accounted for in the right place.
Use the Connection tool (C):
- Activate the tool, then click the first edge (surface A).
- Click the matching edge on a different surface (surface B).
- A dialog appears where you choose:
- The connection type (inside corner, outside corner, butt jointβ¦),
- Wrap behaviour and direction,
- Overlap distance, donor surface and visualization opacity.
- Confirm to create the connection. The new entity is editable from the Properties panel and visible on the canvas as a coloured marker between the two edges.
- ConnectionList in the bottom panel lists every connection with its participating surfaces.
- ConnectionProperties in the right-hand panel exposes all dialog fields so you can tweak after the fact.
- Surface tool & layer β
src/features/surfaces/SurfaceTool.tsx,SurfaceLayer.tsx - Surface properties β
src/features/surfaces/SurfaceProperties.tsx,SurfaceList.tsx - Openings β
src/features/drawingTools/OpeningTool.tsx,src/features/surfaces/OpeningProperties.tsx,src/features/surfaces/OpeningRenderer.tsx - Split surface β
src/features/surfaces/SplitSurfaceTool.tsx,SplitSurfaceToolPanel.tsx - Connections β
src/features/drawingTools/ConnectionTool.tsx,src/features/surfaces/SurfaceConnectionDialog.tsx,ConnectionProperties.tsx,ConnectionVisualizer.tsx
Documentation for the material-layout-planner project. Every feature in the application is documented here β see the contribution rules before opening a pull request.