forked from 1b-agent/opencadstudio-upstream
ocs_doc_api: Phase 3 (block references)
- Operation::CreateInsert(InsertSpec) appended to the wire enum (append-only). - backend add_insert validates the BlockRecord exists (unknown block -> Validation, no mutation); host inserts acadrust::entities::Insert with scale+rotation. - Insert transform moves insert_point (transform_entity_geometry) + ensure_transformable includes Insert. - facade EntityCollection::create_insert; spec Insert family; api_reference + binding_schema regenerated; mocks updated. - Test phase3_create_insert_and_transform -> 599 host lib green. - IMPLEMENTATION.md: Phase 3 done (attributes/traversal remaining).
This commit is contained in:
1 parent
d46351cdb3
commit
b03f68737e
13 files changed
+146
-5
No files matched your search
@@ -87,6 +87,14 @@ B-rep solid. Host resolves bodies via the solid_models cache (lift-on-miss from
|
||||
|
||||
- **create_xline**(`origin: [f64; 3], direction: [f64; 3]`) -> `XLine`
|
||||
|
||||
## `Entity` (acadrust `Insert`, collection `entities`)
|
||||
|
||||
Block reference. Place an existing BlockRecord by name; transform moves its insert point.
|
||||
|
||||
### Constructors (`doc.entities()`)
|
||||
|
||||
- **create_insert**(`block_name: &str, insert_point: [f64; 3], scale: f64, rotation: f64`) -> `Entity`
|
||||
|
||||
## Generic methods (every handle)
|
||||
|
||||
Every typed handle (`Solid`, `Line`, `Circle`, `Polyline`, `Point`, `Entity`) is a
|
||||
|
||||
@@ -187,6 +187,13 @@
|
||||
"handle": "XLine",
|
||||
"methods": [],
|
||||
"name": "XLine"
|
||||
},
|
||||
{
|
||||
"acadrust_variant": "Insert",
|
||||
"collection": "entities",
|
||||
"handle": "Entity",
|
||||
"methods": [],
|
||||
"name": "Insert"
|
||||
}
|
||||
],
|
||||
"layouts": {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::id::ObjectId;
|
||||
use crate::ops::{BoolOp, Curve2Spec, EntitySpec, PlacementSpec, SolidPrimitive};
|
||||
use crate::ops::{BoolOp, Curve2Spec, EntitySpec, InsertSpec, PlacementSpec, SolidPrimitive};
|
||||
|
||||
/// A typed write operation (plan §5). Each variant is ONE atomic host call = one
|
||||
/// undo step. Append new variants at the END only.
|
||||
@@ -27,4 +27,6 @@ pub enum Operation {
|
||||
CreateMany(Vec<EntitySpec>),
|
||||
TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec },
|
||||
DeleteMany(Vec<ObjectId>),
|
||||
// containers
|
||||
CreateInsert(InsertSpec),
|
||||
}
|
||||
Reference in new issue
Block a user