pub struct Graph { /* private fields */ }Expand description
An index of supported records keyed by (node type, XMT identifier).
Implementations§
Source§impl Graph
impl Graph
Sourcepub fn parse(stream: &[u8]) -> Self
pub fn parse(stream: &[u8]) -> Self
Parse supported fixed-record nodes from a neutral-binary stream.
Sourcepub fn get(&self, kind: u8, xmt: u32) -> Option<&Node>
pub fn get(&self, kind: u8, xmt: u32) -> Option<&Node>
Look up a node by record type and XMT identifier.
Sourcepub fn at_pos(&self, pos: usize) -> Option<&Node>
pub fn at_pos(&self, pos: usize) -> Option<&Node>
Look up the node whose type tag starts at pos.
Sourcepub fn of_kind(&self, kind: u8) -> impl Iterator<Item = &Node>
pub fn of_kind(&self, kind: u8) -> impl Iterator<Item = &Node>
Iterate nodes of one record type in physical record order.
Sourcepub fn referenced_curve_xmts(&self) -> BTreeSet<u32>
pub fn referenced_curve_xmts(&self) -> BTreeSet<u32>
Curve identities occupying typed curve-reference slots in the fixed topology and procedural graph.
Sourcepub fn unique_curve_edge_endpoints(&self, curve_xmt: u32) -> Option<[Point3; 2]>
pub fn unique_curve_edge_endpoints(&self, curve_xmt: u32) -> Option<[Point3; 2]>
Resolve the two model-space endpoints of the unique edge carrying a curve.
Sourcepub fn referenced_carrier_xmts(&self) -> BTreeSet<u32>
pub fn referenced_carrier_xmts(&self) -> BTreeSet<u32>
Carrier identities required by the surviving fixed topology image.
Sourcepub fn body_shape_shells(&self) -> Vec<&Node>
pub fn body_shape_shells(&self) -> Vec<&Node>
Return SHELL nodes whose ownership fields define a body shape.
Sourcepub fn has_complete_body_topology(&self) -> bool
pub fn has_complete_body_topology(&self) -> bool
Return whether every body-shape face has a non-empty valid loop chain and every non-null radial FIN partner belongs to the same reachable body topology.
Sourcepub fn body_shape_face_count(&self) -> usize
pub fn body_shape_face_count(&self) -> usize
Count faces owned by validated body-shape shells.
Sourcepub fn face_loop_rings(&self, face_xmt: u32) -> Option<Vec<(u32, Vec<u32>)>>
pub fn face_loop_rings(&self, face_xmt: u32) -> Option<Vec<(u32, Vec<u32>)>>
Return the validated loop-to-FIN rings owned by a face.
The face’s loop chain must terminate at the null reference. Each loop points back to the face. Each FIN cycle closes at its first FIN, stays in the loop, and has reciprocal forward/backward links. Every FIN resolves its edge and vertex.