Commit Graph
8 Commits
Author SHA1 Message Date
Thiago LöpesandGitHub afe14a8cc7 Fix: Restore floor drag/delete functionality for imported legacy JSON… (#413)
* Fix: Restore floor drag/delete functionality for imported legacy JSON files

Summary

Fixed an issue where floors became impossible to drag or delete after importing JSON configuration files created in versions prior to 0.9.1.

Root Cause

The migration process was executing elevator parent migration before all level nodes had their children fully normalized. As a result, imported scenes could end up with inconsistent parent-child relationships, causing floor management operations such as dragging and deletion to fail.

Changes Made
Refactored migrateNodes() into a two-pass migration process.
Added normalization for level nodes:
Ensures level values are valid finite numbers.
Removes references to missing child nodes.
Preserves only valid children during migration.
Moved elevator migration logic to a dedicated second pass:
Elevator parent migration now runs only after all level.children relationships have been stabilized.
Prevents invalid hierarchy reconstruction when importing legacy JSON files.
Result

Imported layouts from versions prior to 0.9.1 now correctly preserve floor hierarchy, allowing floors to be dragged, reordered, and deleted as expected.

* Update use-scene.ts
2026-06-24 16:00:43 -04:00
Thiago LöpesandGitHub dff934e0bb Export ExportSystem from the export-system module 2026-03-30 17:43:01 -03:00
Thiago LöpesandGitHub 02d68835ef Add ExportSystem component to viewer 2026-03-30 17:42:11 -03:00
Thiago LöpesandGitHub 9056eb2f1d Add files via upload 2026-03-30 17:39:37 -03:00
Thiago LöpesandGitHub 16835c6f46 feat: implement editable wall length slider #191
Key Additions & Changes:

Interactive Length Control: Replaced the static "Length" text with an editable SliderControl component.

Vector Math Implementation: Added handleUpdateLength, a function that recalculates the wall's end position ($P_{end}$) based on the user's input while preserving the wall's original direction.

Real-time Geometry Updates: Integrated the change with useScene and dirtyNodes to ensure the 3D mesh updates instantly in the viewer as the slider moves.

UX Consistency: Used the existing SliderControl and PanelSection patterns to match the Pascal Editor's design system.

Fixes #191
2026-03-28 17:12:35 -03:00
Thiago LöpesandGitHub e4e64e22e3 fix: use WALL_MIN_LENGTH constant to prevent ghost walls (#168)
* Increase minimum wall length from 0.01 to 0.5

* fix: use WALL_MIN_LENGTH constant in wall-tool.tsx
2026-03-26 00:30:04 -04:00
Thiago LöpesandGitHub 7a16fad7a0 fix: use WALL_MIN_LENGTH constant in wall-tool.tsx 2026-03-24 18:18:07 -03:00
Thiago LöpesandGitHub eceefc09ad Increase minimum wall length from 0.01 to 0.5 2026-03-24 18:15:04 -03:00