Selecting a block and running BEDIT (command, ribbon button, or a double-click on the block) opens a block-editor "space" tab, named after the block, alongside Model/Layout in the status bar. The tab draws ONLY the block record's own entities in block-local coordinates; edits are live on the definition, so every INSERT updates. Save Block / Discard buttons (side toolbar) finish the session; Discard restores the on-entry snapshot. Space switching is locked while a block is open, and BEDIT and REFEDIT are mutually exclusive. Implementation: a Scene.block_edit_block override at the top of current_layout_block_handle scopes render/pick/new-entity ownership to the edited block while current_layout stays "Model" (so the pervasive Model-vs-paper code keeps model behaviour). The model render/pick paths that hardcoded model_space_block_handle (wire tile set, hatch render + pick, block-instance meshes) are made binding-aware so the block isolation actually takes effect and model content does not leak in. Entering fits the camera to the block (fit_all already scopes via the binding). Renaming the block tab renames the block itself — new Scene::rename_block re-keys the record, updates the Block marker and repoints every INSERT reference. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
399 B
Rust
24 lines
399 B
Rust
pub mod align;
|
|
pub mod array;
|
|
pub mod attedit;
|
|
pub mod break_cmd;
|
|
pub mod copy;
|
|
pub mod delete;
|
|
pub mod explode;
|
|
pub mod fillet;
|
|
pub mod join;
|
|
pub mod lengthen;
|
|
pub mod mirror;
|
|
pub mod offset;
|
|
pub mod pedit;
|
|
pub mod block_edit;
|
|
pub mod refedit;
|
|
pub mod reverse;
|
|
pub mod rotate;
|
|
pub mod scale;
|
|
pub mod spline_ops;
|
|
pub mod splinedit;
|
|
pub mod stretch;
|
|
pub mod translate;
|
|
pub mod trim;
|
|
pub mod torient;
|