Skip to content

FP-20: Ceiling Shapes (Vaults, Slopes, Polygons) #773

@steilerDev

Description

@steilerDev

As a homeowner, I want to define ceiling shapes beyond flat so that I can document vaulted, sloped, and custom ceiling geometries.

Parent Epic: #752 (EPIC-16: Floor Plans & Utility Tracking)
Priority: Could Have
Phase: 5 — Multi-Floor & Special Structures

Acceptance Criteria

  • 1. The ceiling surface page includes a "Shape" editor section above the layer stack
  • 2. Shape types are selectable: flat, barrel_vault, groin_vault, sloped, polygon, custom
  • 3. barrel_vault shape has adjustable parameters: apex_height_mm, span direction (reference wall)
  • 4. groin_vault shape has adjustable parameters: apex_height_mm (vault peak above spring line)
  • 5. sloped shape has adjustable parameters: min_height_mm, max_height_mm, slope_angle_degrees, reference_wall_id
  • 6. polygon shape allows defining an arbitrary cross-section profile via vertex editing
  • 7. custom shape allows free-form profile path editing using bezier curves
  • 8. Each shape renders an SVG profile curve in the cross-section view showing the ceiling shape above the layer stack
  • 9. Reference wall selection is available for sloped and vaulted shapes (dropdown of walls on the current floor)
  • 10. Shape parameters are stored via the PUT /api/floor-plans/floors/:floorId/ceiling-shape endpoint as JSON
  • 11. Preset shapes (barrel_vault, groin_vault, sloped) show a preview with reasonable defaults before parameter adjustment
  • 12. Switching shape type resets parameters to defaults for the new type (with confirmation if parameters were customized)

Notes

  • Dependencies: FP-12 (FP-12: Ceiling & Floor Surface Layers #764) — ceiling surface view must exist
  • This extends the basic ceiling shape rendering from FP-12 with full editing capabilities
  • The profile curve is 2D (cross-section), not 3D — it shows the ceiling shape as seen from a side view

Metadata

Metadata

Assignees

No one assigned

    Labels

    user-storyUser story - individual deliverable

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions