Commit Graph
102 Commits
Author SHA1 Message Date
Leonardo Zide baae697960 Fix in-place submodel editing context and navigation
In-place editing could use the tab model's step and focus, lose its active
state after switching tabs, or resolve a nested instance through the wrong
parent. Entering before the final animation key also moved geometry when
drilling into a child.

Use the edited model for step controls, step edits, visibility, and focus
coordinates. Restore that editing target when returning to its tab, include
animation keys and finite hide steps in the last step, and retain the
selected instance path and transforms during nested editing.

Show the editing path only during in-place edits, with links to ancestors
and a close control to return to the tab model. Stack Find/Replace beneath
it and preserve full names in accessible text and tooltips. Add translated
source entries without changing existing translations.

Add a regression test for final-key tracking through time and key edits.
Validated with the macOS Qt 6 application build, all 8 Qt Test cases, and
51 focused checks against the compiled application for steps, tab switching,
focus status, breadcrumbs, and Find/Replace layout. Visually checked the
viewport overlay and its placement during nested editing.
2026-10-24 12:39:25 -07:00
Leonardo Zide 851eecee50 Store only changed objects in edit undo history
Full before-and-after model snapshots accumulate large amounts of memory during editing, even when an operation changes only one object. Compact completed edits to retain only added, removed, or modified object states, with ordering metadata kept only for structural changes.

Restore objects by stable IDs, including group relationships, and detach views before removing cameras. Compose merged edits from their deltas and compare animation keys as well as current property values so keyframe-only edits remain undoable.
2026-10-21 10:48:24 -07:00
Leonardo Zide a8e37df8ce Whitespace cleanup. 2026-03-10 21:11:40 -07:00
Leonardo Zide bc9bc3a1b2 Removed unused code. 2026-03-07 18:01:11 -08:00
Leonardo Zide fb71e545a9 Saved undo data as structures. 2026-02-11 20:15:26 -08:00
Leonardo Zide 576f9fe13e Moved hidden state to lcObject. 2026-02-03 23:02:24 -08:00
Leonardo Zide c8dca012f9 Replaced bool Ortho with lcCameraProjection::Orthographic for clarity. 2026-02-03 21:46:00 -08:00
Leonardo Zide c627e1608e Merged selection/focus code in the lcObject class. 2026-01-25 23:01:47 -08:00
Leonardo Zide 8342e147cf Added RemoveFromSelection action. 2026-01-10 21:34:21 -08:00
Leonardo Zide 75ac6fe0cb Removed unused SetSelected override. 2026-01-03 10:14:45 -03:00
Leonardo Zide 6334c159a9 Removed add piece action. 2025-12-28 15:21:09 -03:00
Leonardo Zide 2741b86e9c Don't save selection in object edit actions. 2025-12-21 13:39:34 -03:00
Leonardo Zide 4de6c095e4 Save the entire object state to the undo buffer instead of only key frames. 2025-12-04 17:41:04 -08:00
Leonardo Zide 3bf01f2095 Added actions for mouse drag changes. 2025-11-23 20:33:59 -08:00
Leonardo Zide 6df16f5742 Added step insert and delete actions. 2025-11-19 22:34:53 -08:00
Leonardo Zide ca88e5c2b3 Display Blender angle in degrees. 2025-08-31 10:47:14 -07:00
Leonardo Zide bf8e4cb8fa Merged Blender point/spot radius into a single setting. 2025-08-31 10:41:07 -07:00
Leonardo Zide 7451d336f7 Split pov ray area light grid into 2 separate keys. 2024-07-04 10:42:02 -07:00
Leonardo Zide 6a9c2d6a87 Use unique_ptr for cameras. 2024-06-04 09:34:38 -07:00
Leonardo Zide 27f5dcfde7 Use unique_ptr for lights. 2024-06-04 09:08:54 -07:00
Leonardo Zide cb6a836178 Use unique_ptr to control group ownership. 2024-05-27 11:43:36 -07:00
Leonardo Zide 14d1217850 Replaced property specific functions with the generic function. 2024-04-14 11:08:30 -07:00
Leonardo Zide 954ced14e1 Update light blender settings default values. 2024-04-14 10:35:30 -07:00
Leonardo Zide 3528817d22 Split light size into different variables per type. 2024-04-07 12:48:41 -07:00
Leonardo Zide 5d5274b2b4 Split light power into different properties for Blender and POV-Ray. 2024-04-07 11:28:54 -07:00
Leonardo Zide 69ae4ea492 Added POV-Ray prefix to spot tightness and area grid 2024-04-06 18:50:37 -07:00
Leonardo Zide 66f4e42e2d Renamed attenuation to POV-Ray Fade for clarity 2024-04-06 17:29:15 -07:00
Leonardo Zide 732dac4c65 Support editing string properties. 2024-02-19 17:38:04 -08:00
Leonardo Zide 39bdb1aa0a Added multi state support to colors. 2024-02-19 14:54:45 -08:00
Leonardo Zide db24fab6d7 Support changing multiple bool properties at the same time. 2024-02-19 12:32:19 -08:00
Leonardo Zide a42d86394c Support toggling key frames. 2024-01-21 12:53:18 -08:00
Leonardo Zide 4785caac2a Added key frame widgets. 2024-01-14 17:41:01 -08:00
Leonardo Zide ef43c152ad Replaced piece properties widget. 2023-12-31 12:55:35 -08:00
Leonardo Zide 086be790d0 Removed Get/SetValue. 2023-12-28 10:27:00 -08:00
Leonardo Zide e4f4df4376 Use lcObjectProperty in Piece. 2023-12-28 10:21:52 -08:00
Leonardo Zide eeabc06c49 Added lcObjectProperty class. 2023-12-27 12:03:41 -08:00
Leonardo Zide 2990afba08 Refactored lcObjectKeyArray::RemoveAll. 2023-12-27 10:21:25 -08:00
Leonardo Zide 6774b17051 Merged POV-Ray and Blender light power. 2023-12-20 16:42:00 -08:00
Leonardo Zide 321b9389ed Removed unused light options.
Specular is EEVEE only and Diffuse/Cutoff are unknown.
2023-12-17 12:16:32 -08:00
Leonardo Zide d52159087c Added light attenuation settings. 2023-12-17 11:37:11 -08:00
Leonardo Zide 0e74aea5fa Fixed POV-Ray area light grid. 2023-11-19 18:05:43 -08:00
Leonardo Zide 0a48e30ec0 Changed POV area lights to take the x/y vectors correctly. 2023-10-22 18:48:08 -07:00
Leonardo Zide 5430dd6170 Added light power attribute. 2023-10-01 13:16:26 -07:00
Leonardo Zide a27694a594 Support dragging light targets to rotate. 2023-09-23 18:38:03 -07:00
Leonardo Zide 177c1b82d7 Support Blender light sizes for all types of lights. 2023-09-17 11:45:14 -07:00
Leonardo Zide 59c1930b83 Added support for area size key frames. 2023-09-17 10:40:23 -07:00
Leonardo Zide e061eca2e8 Reorganized spot light parameters. 2023-09-09 18:25:34 -07:00
Leonardo Zide 6a1df617e8 Use a matrix to store the light transform. 2023-09-04 20:53:34 -07:00
Leonardo Zide 86327196c2 Support rotating lights. 2023-09-04 10:59:16 -07:00
Leonardo Zide 080a418e1b Renamed shadowless to cast shadow. 2023-09-02 10:40:52 -07:00