Module fast_parse

Module fast_parse 

Source
Expand description

Fast Direct Parsing Module

Provides zero-allocation parsing for coordinate lists and index arrays. This bypasses the Token/AttributeValue pipeline for massive speedups on tessellation-heavy IFC files.

Performance: 3-5x faster than standard path for IfcTriangulatedFaceSet

Structs§

FastMeshData
Mesh data for fast path processing (avoiding full Mesh struct dependency)

Functions§

extract_coordinate_list_from_entity
Parse a whole point-list record’s CoordList (attribute 0), found by depth, not by the last )): an IFC4X3 TagList after it ends in )) and its digits became phantom vertices (core review behind #4577, finding 6). None when attribute 0 is not a list or the list is refused as corrupt (#5266).
extract_coordinate_list_from_entity_f64
extract_coordinate_list_from_entity at f64 precision. A caller that rebases national-grid coordinates must subtract its offset from these values: narrowing first can merge vertices that differ by less than one f32 ULP (0.25 m at 2,600 km) before the offset is removed (#5698).
extract_entity_refs_from_list
Extract entity IDs from a list attribute without full parsing
extract_entity_type_name
Extract entity type name from raw bytes
extract_face_indices_from_entity
Parse face indices from IfcTriangulatedFaceSet entity
extract_first_entity_ref
Extract the first entity reference from an entity’s first attribute
parse_coordinates_direct
Parse coordinate list directly from raw bytes to Vec<f32>
parse_coordinates_direct_f64
Parse coordinate list directly from raw bytes to Vec<f64>
parse_indices_direct
Parse index list directly from raw bytes to Vec<u32>
process_triangulated_faceset_direct
Process IfcTriangulatedFaceSet directly from raw bytes
should_use_fast_path
Fast path checker - determines if entity type benefits from direct parsing