chore: bump codec d28fd71, kernel a03e4f0, graph 79bdc4b

Codec: PRs #71-#74 merged (MPOLYGON layout, multiline ATTDEF/ATTRIB DXF,
DXF MATERIAL/ACSH matrix, restorable SAT/SAB + history roots) and issues
#55 #64-#69 fixed. EntityType now boxes Surface, Extended, Table,
MultiLeader and Helix (2344 B -> 848 B per entity): construction sites
wrap in Box, the entity traits forward through Box, and the python
plugin generator converts with into(). Kernel: PR #70 (cuboid ring
winding).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-02 00:08:55 +03:00
1 parent 8c1471078d
commit 443b935a3f
31 files changed
+147 -84

No files matched your search

+18 -20
View File
@@ -3052,10 +3052,10 @@ impl Scene {
let is_insert = matches!(entity, EntityType::Insert(_));
let is_section = matches!(
entity,
EntityType::Extended(codec::entities::ExtendedEntity {
data: codec::entities::ExtendedEntityData::SectionObject(_),
..
})
EntityType::Extended(extended) if matches!(
extended.data,
codec::entities::ExtendedEntityData::SectionObject(_)
)
);
if self.meshes.contains_key(&handle)
|| self.block_meshes.contains_key(&handle)
@@ -7691,16 +7691,14 @@ impl Scene {
CACHE_CATEGORY_MESH,
|h| {
self.meshes.contains_key(&h)
|| matches!(
self.document.get_entity(h),
Some(EntityType::Insert(_))
| Some(EntityType::Extended(
codec::entities::ExtendedEntity {
data: codec::entities::ExtendedEntityData::SectionObject(_),
..
}
))
)
|| match self.document.get_entity(h) {
Some(EntityType::Insert(_)) => true,
Some(EntityType::Extended(extended)) => matches!(
extended.data,
codec::entities::ExtendedEntityData::SectionObject(_)
),
_ => false,
}
},
) =>
{
@@ -12153,15 +12151,15 @@ mod section_tests {
#[test]
fn adding_and_erasing_a_section_keeps_its_object_graph_consistent() {
let mut scene = Scene::new();
let handle = scene.add_entity(EntityType::Extended(ExtendedEntity {
let handle = scene.add_entity(EntityType::Extended(Box::new(ExtendedEntity {
common: EntityCommon::new(),
data: ExtendedEntityData::SectionObject(section(1, 0.0)),
}));
})));
let settings_handle = match scene.document.get_entity(handle).unwrap() {
EntityType::Extended(ExtendedEntity {
data: ExtendedEntityData::SectionObject(data),
..
}) => data.settings_handle,
EntityType::Extended(extended) => match &extended.data {
ExtendedEntityData::SectionObject(data) => data.settings_handle,
_ => unreachable!(),
},
_ => unreachable!(),
};
assert!(matches!(
+1 -1
View File
@@ -91,5 +91,5 @@ pub fn surface_entity(record: &SolidHistoryLoft) -> EntityType {
ruled_surface: settings.normals == 0, virtual_guide: false,
cross_sections: Vec::new(), guide_curves: Vec::new(), path_curve: None,
};
EntityType::Surface(surface)
EntityType::Surface(Box::new(surface))
}
+1 -1
View File
@@ -109,5 +109,5 @@ pub fn swept_surface_entity(record: &SolidHistorySweep) -> EntityType {
..SurfaceSweepOptions::default()
},
};
EntityType::Surface(surface)
EntityType::Surface(Box::new(surface))
}
+8 -4
View File
@@ -1002,10 +1002,14 @@ impl Scene {
continue;
}
let settings_handle = self.document.get_entity(h).and_then(|entity| match entity {
EntityType::Extended(codec::entities::ExtendedEntity {
data: codec::entities::ExtendedEntityData::SectionObject(data),
..
}) if !data.settings_handle.is_null() => Some(data.settings_handle),
EntityType::Extended(extended) => match &extended.data {
codec::entities::ExtendedEntityData::SectionObject(data)
if !data.settings_handle.is_null() =>
{
Some(data.settings_handle)
}
_ => None,
},
_ => None,
});
let section_managers: Vec<Handle> = managers_by_section