Commit Graph
161 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 7bc6c018b1 Rename PieceInfo to lcPieceData
Use PieceData consistently for the shared part/model record, its related
APIs and variables, and its source files. Keep the existing reference
counting and loading behavior so ownership and readiness changes can be
reviewed separately.
2026-10-18 23:22:28 -07:00
Leonardo Zide 6438bf2682 Expand far clipping distance when fitting large models
Large models can extend beyond the default far plane after fitting,
leaving the view blank or clipped. Pass an explicit adjustment flag
through view, model, and camera fitting, and reuse the fitted bounds
to expand clipping with a margin, rounded up to multiples of 10,000.

Adjust restored ordinary cameras after applying their saved state.
Preserve named cameras and explicit command-line clipping planes,
and avoid recalculating clipping during redraws or navigation.

Route output fitting through the view and move the bounds policy
definition out of the precompiled header.
2026-10-09 15:00:18 -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 c42d34ff98 Removed special case camera property functions. 2026-02-22 11:38:43 -08:00
Leonardo Zide ce0d7c7be3 Removed group action. 2026-02-14 12:34:29 -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 6334c159a9 Removed add piece action. 2025-12-28 15:21:09 -03:00
Leonardo Zide 8dfa1772b3 Fixed control point undo. 2025-12-26 11:53:51 -03:00
Leonardo Zide 2741b86e9c Don't save selection in object edit actions. 2025-12-21 13:39:34 -03:00
Leonardo Zide 4e49d4d0cc Fixed warnings. 2025-12-18 16:18:45 -03:00
Leonardo Zide 7492df03b0 Merge branch 'master' into undo 2025-12-10 23:27:40 -08:00
Leonardo Zide 691b78a828 Better view center when framing ortho cameras. Fixes #1004. 2025-12-10 23:23:09 -08:00
Leonardo Zide 561cf9cf52 Added camera action. 2025-12-06 16:21:33 -08: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 460bb0b8e2 Fixed warnings. 2025-11-19 23:10:18 -08:00
Leonardo Zide 6df16f5742 Added step insert and delete actions. 2025-11-19 22:34:53 -08:00
Leonardo Zide bf8e4cb8fa Merged Blender point/spot radius into a single setting. 2025-08-31 10:41:07 -07:00
Leonardo Zide 6f30ad275c Fixed changing camera transform with the properties widget. 2025-05-29 17:29:20 -07:00
Leonardo Zide 38111787d9 Added rotate camera support. 2025-05-22 08:56:38 -07:00
Leonardo Zide 05e326a395 Better camera orbit. Fixes #923. 2024-08-08 15:26:38 -07:00
Leonardo Zide 6a9c2d6a87 Use unique_ptr for cameras. 2024-06-04 09:34:38 -07:00
Leonardo Zide 80d144fea8 Array cleanup. 2024-05-26 13:01:34 -07:00
Leonardo Zide 14d1217850 Replaced property specific functions with the generic function. 2024-04-14 11:08: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 dd989bbc1d Added support for multi edit of ints and lists. 2024-02-19 16:31:02 -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 2f40cf5bc7 Merged property serialization functions. 2024-01-15 17:11:03 -08:00
Leonardo Zide 4785caac2a Added key frame widgets. 2024-01-14 17:41:01 -08:00
Leonardo Zide 9b4e6d6a65 Updated camera to lcObjectProperty. 2023-12-28 11:32:25 -08:00
Leonardo Zide 2990afba08 Refactored lcObjectKeyArray::RemoveAll. 2023-12-27 10:21:25 -08:00
Leonardo Zide c2199eb6b0 Added serialization helper functions. 2023-10-01 16:24:42 -07:00
Leonardo Zide 6ca5c160f1 Place new pieces relative to the side of the piece under the mouse. 2021-12-24 15:42:37 -08:00
Leonardo Zide a5207573bf Customizable object colors. 2021-11-24 15:20:08 -08:00
Leonardo Zide 2a24933fa8 Scoped enums. 2021-11-14 19:10:16 -08:00
Leonardo Zide 7d884e6b5f Static analysis fixes. 2021-11-14 18:34:24 -08:00
Leonardo Zide d56e389ee4 Qt 5.4 fixes. 2021-07-05 17:07:24 -07:00