@bldrs-ai/conway 1.389.1221 → 1.394.1504
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -22
- package/compiled/Dist/ConwayGeomWasmNode.js +0 -0
- package/compiled/Dist/ConwayGeomWasmNodeMT.js +0 -0
- package/compiled/Dist/ConwayGeomWasmWeb.js +0 -0
- package/compiled/Dist/ConwayGeomWasmWebMT.js +1 -1
- package/compiled/Dist/ConwayGeomWasmWebMT.wasm +0 -0
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNode.js +0 -0
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNodeMT.js +0 -0
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWeb.js +0 -0
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWebMT.js +1 -1
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWebMT.wasm +0 -0
- package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts +19 -0
- package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts.map +1 -1
- package/compiled/dependencies/conway-geom/interface/conway_geometry.js +17 -0
- package/compiled/dependencies/conway-geom/interface/parameters/surface_object.d.ts +6 -0
- package/compiled/dependencies/conway-geom/interface/parameters/surface_object.d.ts.map +1 -1
- package/compiled/examples/browser-bundled.cjs +1569 -51
- package/compiled/examples/cli-bundled.cjs +2790 -436
- package/compiled/examples/cli-step-bundled.cjs +1904 -229
- package/compiled/examples/validator-bundled.cjs +1569 -51
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_curve.gen.d.ts +2 -2
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_curve.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_curve.gen.js +2 -2
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_surface.gen.d.ts +3 -3
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_surface.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/b_spline_surface.gen.js +3 -3
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/composite_curve.gen.d.ts +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/composite_curve.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/composite_curve.gen.js +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_2d.gen.d.ts +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_2d.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_2d.gen.js +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_3d.gen.d.ts +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_3d.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_curve_3d.gen.js +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_surface.gen.d.ts +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_surface.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/offset_surface.gen.js +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/presentation_style_assignment.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/presentation_style_assignment.gen.js +2 -2
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/schema_ap214.gen.js +11 -11
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/shape_aspect.gen.d.ts +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/shape_aspect.gen.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/AP214E3_2010_gen/shape_aspect.gen.js +1 -1
- package/compiled/src/AP214E3_2010/ap214_command_line_main.js +7 -3
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.d.ts +181 -7
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.js +906 -137
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.test.js +10 -2
- package/compiled/src/AP214E3_2010/ap214_logical_attribute.test.d.ts +2 -0
- package/compiled/src/AP214E3_2010/ap214_logical_attribute.test.d.ts.map +1 -0
- package/compiled/src/AP214E3_2010/ap214_logical_attribute.test.js +114 -0
- package/compiled/src/AP214E3_2010/ap214_model_geometry.d.ts +6 -0
- package/compiled/src/AP214E3_2010/ap214_model_geometry.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/ap214_model_geometry.js +9 -0
- package/compiled/src/AP214E3_2010/ap214_pcurve_basis_surfaces.test.d.ts +2 -0
- package/compiled/src/AP214E3_2010/ap214_pcurve_basis_surfaces.test.d.ts.map +1 -0
- package/compiled/src/AP214E3_2010/ap214_pcurve_basis_surfaces.test.js +233 -0
- package/compiled/src/AP214E3_2010/ap214_sphere_vertex_loop.test.d.ts +2 -0
- package/compiled/src/AP214E3_2010/ap214_sphere_vertex_loop.test.d.ts.map +1 -0
- package/compiled/src/AP214E3_2010/ap214_sphere_vertex_loop.test.js +147 -0
- package/compiled/src/AP214E3_2010/ap214_step_model.d.ts +2 -1
- package/compiled/src/AP214E3_2010/ap214_step_model.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/ap214_step_model.js +1 -1
- package/compiled/src/AP214E3_2010/ap214_typed_select_enum.test.d.ts +2 -0
- package/compiled/src/AP214E3_2010/ap214_typed_select_enum.test.d.ts.map +1 -0
- package/compiled/src/AP214E3_2010/ap214_typed_select_enum.test.js +65 -0
- package/compiled/src/AP214E3_2010/ap214_unit_scale.test.d.ts +2 -0
- package/compiled/src/AP214E3_2010/ap214_unit_scale.test.d.ts.map +1 -0
- package/compiled/src/AP214E3_2010/ap214_unit_scale.test.js +111 -0
- package/compiled/src/compat/web-ifc/ap214_streamed_open.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ap214_streamed_open.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ap214_streamed_open.test.js +190 -0
- package/compiled/src/compat/web-ifc/coordination_export_order.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/coordination_export_order.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/coordination_export_order.test.js +110 -0
- package/compiled/src/compat/web-ifc/coordination_f64.d.ts +165 -0
- package/compiled/src/compat/web-ifc/coordination_f64.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/coordination_f64.js +286 -0
- package/compiled/src/compat/web-ifc/coordination_f64.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/coordination_f64.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/coordination_f64.test.js +225 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts +154 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api.js +211 -3
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.js +288 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +39 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts +30 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.js +83 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.js +383 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.js +124 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts +132 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +488 -92
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +268 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +996 -149
- package/compiled/src/compat/web-ifc/ifc_api_streamed_open.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ifc_api_streamed_open.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_streamed_open.test.js +129 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.d.ts +134 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.js +933 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/spatial_imposter.test.js +467 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.d.ts +187 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.js +524 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.test.js +234 -0
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +306 -0
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/streamed_preview_channel.js +580 -0
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.js +22 -0
- package/compiled/src/core/composed_model_skeleton.d.ts +63 -0
- package/compiled/src/core/composed_model_skeleton.d.ts.map +1 -0
- package/compiled/src/core/composed_model_skeleton.js +66 -0
- package/compiled/src/core/composed_model_skeleton.test.d.ts +2 -0
- package/compiled/src/core/composed_model_skeleton.test.d.ts.map +1 -0
- package/compiled/src/core/composed_model_skeleton.test.js +69 -0
- package/compiled/src/core/demand_geometry_queue.d.ts +147 -0
- package/compiled/src/core/demand_geometry_queue.d.ts.map +1 -0
- package/compiled/src/core/demand_geometry_queue.js +223 -0
- package/compiled/src/core/demand_geometry_queue.test.d.ts +2 -0
- package/compiled/src/core/demand_geometry_queue.test.d.ts.map +1 -0
- package/compiled/src/core/demand_geometry_queue.test.js +133 -0
- package/compiled/src/core/demand_residency_pump.d.ts +93 -0
- package/compiled/src/core/demand_residency_pump.d.ts.map +1 -0
- package/compiled/src/core/demand_residency_pump.js +120 -0
- package/compiled/src/core/demand_residency_pump.test.d.ts +2 -0
- package/compiled/src/core/demand_residency_pump.test.d.ts.map +1 -0
- package/compiled/src/core/demand_residency_pump.test.js +148 -0
- package/compiled/src/core/geometry_tile_bindings.d.ts +110 -0
- package/compiled/src/core/geometry_tile_bindings.d.ts.map +1 -0
- package/compiled/src/core/geometry_tile_bindings.js +76 -0
- package/compiled/src/core/geometry_tile_bindings.test.d.ts +2 -0
- package/compiled/src/core/geometry_tile_bindings.test.d.ts.map +1 -0
- package/compiled/src/core/geometry_tile_bindings.test.js +211 -0
- package/compiled/src/core/geometry_tile_pool.d.ts +99 -0
- package/compiled/src/core/geometry_tile_pool.d.ts.map +1 -0
- package/compiled/src/core/geometry_tile_pool.js +104 -0
- package/compiled/src/core/geometry_tile_pool.test.d.ts +2 -0
- package/compiled/src/core/geometry_tile_pool.test.d.ts.map +1 -0
- package/compiled/src/core/geometry_tile_pool.test.js +180 -0
- package/compiled/src/core/mem/chunked_pool.d.ts +116 -0
- package/compiled/src/core/mem/chunked_pool.d.ts.map +1 -0
- package/compiled/src/core/mem/chunked_pool.js +149 -0
- package/compiled/src/core/mem/chunked_pool.test.d.ts +2 -0
- package/compiled/src/core/mem/chunked_pool.test.d.ts.map +1 -0
- package/compiled/src/core/mem/chunked_pool.test.js +63 -0
- package/compiled/src/core/mem/shared_asset_pool.d.ts +82 -0
- package/compiled/src/core/mem/shared_asset_pool.d.ts.map +1 -0
- package/compiled/src/core/mem/shared_asset_pool.js +113 -0
- package/compiled/src/core/mem/shared_asset_pool.test.d.ts +2 -0
- package/compiled/src/core/mem/shared_asset_pool.test.d.ts.map +1 -0
- package/compiled/src/core/mem/shared_asset_pool.test.js +49 -0
- package/compiled/src/core/model_registry.d.ts +87 -0
- package/compiled/src/core/model_registry.d.ts.map +1 -0
- package/compiled/src/core/model_registry.js +101 -0
- package/compiled/src/core/model_registry.test.d.ts +2 -0
- package/compiled/src/core/model_registry.test.d.ts.map +1 -0
- package/compiled/src/core/model_registry.test.js +60 -0
- package/compiled/src/core/model_uri.d.ts +57 -0
- package/compiled/src/core/model_uri.d.ts.map +1 -0
- package/compiled/src/core/model_uri.js +101 -0
- package/compiled/src/core/model_uri.test.d.ts +2 -0
- package/compiled/src/core/model_uri.test.d.ts.map +1 -0
- package/compiled/src/core/model_uri.test.js +49 -0
- package/compiled/src/core/progress.d.ts +16 -2
- package/compiled/src/core/progress.d.ts.map +1 -1
- package/compiled/src/core/progress.js +31 -5
- package/compiled/src/core/progress.test.js +11 -2
- package/compiled/src/core/progress_log.d.ts +1 -0
- package/compiled/src/core/progress_log.d.ts.map +1 -1
- package/compiled/src/core/progress_log.js +7 -2
- package/compiled/src/core/progress_log.test.js +21 -0
- package/compiled/src/core/shared_byte_budget.d.ts +60 -0
- package/compiled/src/core/shared_byte_budget.d.ts.map +1 -0
- package/compiled/src/core/shared_byte_budget.js +85 -0
- package/compiled/src/core/shared_byte_budget.test.d.ts +2 -0
- package/compiled/src/core/shared_byte_budget.test.d.ts.map +1 -0
- package/compiled/src/core/shared_byte_budget.test.js +55 -0
- package/compiled/src/core/wasm_heap.d.ts +208 -0
- package/compiled/src/core/wasm_heap.d.ts.map +1 -0
- package/compiled/src/core/wasm_heap.js +417 -0
- package/compiled/src/core/wasm_heap.test.d.ts +2 -0
- package/compiled/src/core/wasm_heap.test.d.ts.map +1 -0
- package/compiled/src/core/wasm_heap.test.js +546 -0
- package/compiled/src/demand/index.d.ts +23 -0
- package/compiled/src/demand/index.d.ts.map +1 -0
- package/compiled/src/demand/index.js +22 -0
- package/compiled/src/ifc/ifc4_gen/IfcLogical.gen.d.ts +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcLogical.gen.d.ts.map +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcLogical.gen.js +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcPresentationStyleAssignment.gen.d.ts.map +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcPresentationStyleAssignment.gen.js +2 -2
- package/compiled/src/ifc/ifc4_gen/IfcRelInterferesElements.gen.d.ts +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcRelInterferesElements.gen.d.ts.map +1 -1
- package/compiled/src/ifc/ifc4_gen/IfcRelInterferesElements.gen.js +1 -1
- package/compiled/src/ifc/ifc4_gen/schema_ifc.gen.js +2 -2
- package/compiled/src/ifc/ifc_demand_extraction.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_demand_extraction.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_demand_extraction.test.js +251 -0
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +367 -6
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +1322 -389
- package/compiled/src/ifc/ifc_grid_placement.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_grid_placement.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_grid_placement.test.js +261 -0
- package/compiled/src/ifc/ifc_model_geometry.d.ts +12 -0
- package/compiled/src/ifc/ifc_model_geometry.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_model_geometry.js +15 -0
- package/compiled/src/ifc/ifc_regression_batch_main.js +210 -12
- package/compiled/src/ifc/ifc_spatial_skeleton.d.ts +145 -0
- package/compiled/src/ifc/ifc_spatial_skeleton.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_spatial_skeleton.js +266 -0
- package/compiled/src/ifc/ifc_spatial_skeleton.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_spatial_skeleton.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_spatial_skeleton.test.js +199 -0
- package/compiled/src/ifc/ifc_step_model.d.ts +6 -2
- package/compiled/src/ifc/ifc_step_model.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_step_model.js +6 -4
- package/compiled/src/ifc/ifc_step_parser.d.ts +58 -0
- package/compiled/src/ifc/ifc_step_parser.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_step_parser.js +64 -0
- package/compiled/src/ifc/ifc_stream_model.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_stream_model.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_stream_model.test.js +70 -0
- package/compiled/src/ifc/ifc_stream_open.d.ts +131 -0
- package/compiled/src/ifc/ifc_stream_open.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_stream_open.js +116 -0
- package/compiled/src/ifc/ifc_stream_open.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_stream_open.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_stream_open.test.js +230 -0
- package/compiled/src/ifc/ifc_tile_extractor.d.ts +84 -0
- package/compiled/src/ifc/ifc_tile_extractor.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_tile_extractor.js +134 -0
- package/compiled/src/ifc/ifc_tile_extractor.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_tile_extractor.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_tile_extractor.test.js +118 -0
- package/compiled/src/ifc/ifc_typed_select_enum.test.d.ts +2 -0
- package/compiled/src/ifc/ifc_typed_select_enum.test.d.ts.map +1 -0
- package/compiled/src/ifc/ifc_typed_select_enum.test.js +60 -0
- package/compiled/src/index.d.ts +21 -1
- package/compiled/src/index.d.ts.map +1 -1
- package/compiled/src/index.js +28 -1
- package/compiled/src/logging/logger.d.ts +16 -2
- package/compiled/src/logging/logger.d.ts.map +1 -1
- package/compiled/src/logging/logger.js +34 -7
- package/compiled/src/logging/logger.test.js +30 -0
- package/compiled/src/mem/index.d.ts +17 -0
- package/compiled/src/mem/index.d.ts.map +1 -0
- package/compiled/src/mem/index.js +16 -0
- package/compiled/src/namespace_surface.test.d.ts +2 -0
- package/compiled/src/namespace_surface.test.d.ts.map +1 -0
- package/compiled/src/namespace_surface.test.js +43 -0
- package/compiled/src/parsing/parsing_buffer.d.ts +23 -0
- package/compiled/src/parsing/parsing_buffer.d.ts.map +1 -1
- package/compiled/src/parsing/parsing_buffer.js +31 -0
- package/compiled/src/scripts/model_report_displacement.test.d.ts +2 -0
- package/compiled/src/scripts/model_report_displacement.test.d.ts.map +1 -0
- package/compiled/src/scripts/model_report_displacement.test.js +104 -0
- package/compiled/src/scripts/render_glb_paths.test.d.ts +2 -0
- package/compiled/src/scripts/render_glb_paths.test.d.ts.map +1 -0
- package/compiled/src/scripts/render_glb_paths.test.js +115 -0
- package/compiled/src/step/indexing/step_type_indexer.d.ts +20 -0
- package/compiled/src/step/indexing/step_type_indexer.d.ts.map +1 -1
- package/compiled/src/step/indexing/step_type_indexer.js +67 -0
- package/compiled/src/step/parsing/byte_source.d.ts +153 -0
- package/compiled/src/step/parsing/byte_source.d.ts.map +1 -0
- package/compiled/src/step/parsing/byte_source.js +106 -0
- package/compiled/src/step/parsing/byte_source.test.d.ts +2 -0
- package/compiled/src/step/parsing/byte_source.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/byte_source.test.js +47 -0
- package/compiled/src/step/parsing/byte_source_node.d.ts +41 -0
- package/compiled/src/step/parsing/byte_source_node.d.ts.map +1 -0
- package/compiled/src/step/parsing/byte_source_node.js +54 -0
- package/compiled/src/step/parsing/columnar_index.d.ts +103 -0
- package/compiled/src/step/parsing/columnar_index.d.ts.map +1 -0
- package/compiled/src/step/parsing/columnar_index.js +224 -0
- package/compiled/src/step/parsing/columnar_index.test.d.ts +2 -0
- package/compiled/src/step/parsing/columnar_index.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/columnar_index.test.js +155 -0
- package/compiled/src/step/parsing/cross_reference_registry.d.ts +95 -0
- package/compiled/src/step/parsing/cross_reference_registry.d.ts.map +1 -0
- package/compiled/src/step/parsing/cross_reference_registry.js +91 -0
- package/compiled/src/step/parsing/cross_reference_registry.test.d.ts +2 -0
- package/compiled/src/step/parsing/cross_reference_registry.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/cross_reference_registry.test.js +66 -0
- package/compiled/src/step/parsing/decode_utf8.d.ts +15 -0
- package/compiled/src/step/parsing/decode_utf8.d.ts.map +1 -1
- package/compiled/src/step/parsing/decode_utf8.js +28 -0
- package/compiled/src/step/parsing/express_ref_scan.d.ts +20 -0
- package/compiled/src/step/parsing/express_ref_scan.d.ts.map +1 -0
- package/compiled/src/step/parsing/express_ref_scan.js +91 -0
- package/compiled/src/step/parsing/express_ref_scan.test.d.ts +2 -0
- package/compiled/src/step/parsing/express_ref_scan.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/express_ref_scan.test.js +28 -0
- package/compiled/src/step/parsing/index_sidecar.d.ts +81 -0
- package/compiled/src/step/parsing/index_sidecar.d.ts.map +1 -0
- package/compiled/src/step/parsing/index_sidecar.js +283 -0
- package/compiled/src/step/parsing/index_sidecar.test.d.ts +2 -0
- package/compiled/src/step/parsing/index_sidecar.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/index_sidecar.test.js +122 -0
- package/compiled/src/step/parsing/inf_recovery_index.test.d.ts +2 -0
- package/compiled/src/step/parsing/inf_recovery_index.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/inf_recovery_index.test.js +108 -0
- package/compiled/src/step/parsing/prefix_type_index.d.ts +124 -0
- package/compiled/src/step/parsing/prefix_type_index.d.ts.map +1 -0
- package/compiled/src/step/parsing/prefix_type_index.js +207 -0
- package/compiled/src/step/parsing/prefix_type_index.test.d.ts +2 -0
- package/compiled/src/step/parsing/prefix_type_index.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/prefix_type_index.test.js +298 -0
- package/compiled/src/step/parsing/range_byte_source.d.ts +69 -0
- package/compiled/src/step/parsing/range_byte_source.d.ts.map +1 -0
- package/compiled/src/step/parsing/range_byte_source.js +78 -0
- package/compiled/src/step/parsing/range_byte_source.test.d.ts +2 -0
- package/compiled/src/step/parsing/range_byte_source.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/range_byte_source.test.js +70 -0
- package/compiled/src/step/parsing/record_event.d.ts +23 -0
- package/compiled/src/step/parsing/record_event.d.ts.map +1 -0
- package/compiled/src/step/parsing/record_event.js +1 -0
- package/compiled/src/step/parsing/record_field_cursor.d.ts +94 -0
- package/compiled/src/step/parsing/record_field_cursor.d.ts.map +1 -0
- package/compiled/src/step/parsing/record_field_cursor.js +189 -0
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts +29 -0
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_deserialization_functions.js +45 -0
- package/compiled/src/step/parsing/step_deserialization_functions.test.js +59 -1
- package/compiled/src/step/parsing/step_parser.d.ts +66 -1
- package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_parser.js +164 -10
- package/compiled/src/step/parsing/step_string_parser.js +8 -8
- package/compiled/src/step/parsing/streaming_index_builder.d.ts +141 -0
- package/compiled/src/step/parsing/streaming_index_builder.d.ts.map +1 -0
- package/compiled/src/step/parsing/streaming_index_builder.js +280 -0
- package/compiled/src/step/parsing/streaming_index_builder.test.d.ts +2 -0
- package/compiled/src/step/parsing/streaming_index_builder.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/streaming_index_builder.test.js +107 -0
- package/compiled/src/step/parsing/streaming_index_builder_async.test.d.ts +2 -0
- package/compiled/src/step/parsing/streaming_index_builder_async.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/streaming_index_builder_async.test.js +109 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.d.ts +71 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.d.ts.map +1 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.js +88 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.test.d.ts +2 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/streaming_record_dispatcher.test.js +66 -0
- package/compiled/src/step/parsing/uint32_sink.d.ts +72 -0
- package/compiled/src/step/parsing/uint32_sink.d.ts.map +1 -0
- package/compiled/src/step/parsing/uint32_sink.js +180 -0
- package/compiled/src/step/parsing/uint32_sink.test.d.ts +2 -0
- package/compiled/src/step/parsing/uint32_sink.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/uint32_sink.test.js +199 -0
- package/compiled/src/step/step_buffer_provider.d.ts +48 -3
- package/compiled/src/step/step_buffer_provider.d.ts.map +1 -1
- package/compiled/src/step/step_buffer_provider.js +60 -11
- package/compiled/src/step/step_buffer_provider.test.js +14 -0
- package/compiled/src/step/step_entity_base.d.ts +65 -3
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +135 -3
- package/compiled/src/step/step_model_base.d.ts +221 -8
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +542 -7
- package/compiled/src/stream/index.d.ts +34 -0
- package/compiled/src/stream/index.d.ts.map +1 -0
- package/compiled/src/stream/index.js +32 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/* eslint-disable no-magic-numbers */
|
|
2
|
+
import { describe, expect, test } from "@jest/globals";
|
|
3
|
+
import * as glmatrix from "gl-matrix";
|
|
4
|
+
import { COORDINATION_SNAP_M, LARGE_COORDINATE_BUDGET_M, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, composeTransformF64, deriveCoordinationF64, mat4MultiplyF64, } from "./coordination_f64.js";
|
|
5
|
+
// The Z-up -> Y-up normalize matrix the proxies pass in (column-major).
|
|
6
|
+
const NORMALIZE_MAT = [
|
|
7
|
+
1,
|
|
8
|
+
0,
|
|
9
|
+
0,
|
|
10
|
+
0,
|
|
11
|
+
0,
|
|
12
|
+
0,
|
|
13
|
+
-1,
|
|
14
|
+
0,
|
|
15
|
+
0,
|
|
16
|
+
1,
|
|
17
|
+
0,
|
|
18
|
+
0,
|
|
19
|
+
0,
|
|
20
|
+
0,
|
|
21
|
+
0,
|
|
22
|
+
1,
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* A pseudo-random but deterministic 4x4 (no Math.random — stable runs).
|
|
26
|
+
*
|
|
27
|
+
* @param seed Any integer seed.
|
|
28
|
+
* @return {number[]} 16 column-major components in [-1, 1).
|
|
29
|
+
*/
|
|
30
|
+
function pseudoMat(seed) {
|
|
31
|
+
const out = new Array(16);
|
|
32
|
+
let state = seed;
|
|
33
|
+
for (let i = 0; i < 16; ++i) {
|
|
34
|
+
// xorshift-ish; deterministic.
|
|
35
|
+
state = (state * 1103515245 + 12345) & 2147483647;
|
|
36
|
+
out[i] = (state / 2147483647) * 2 - 1;
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
describe("coordination_f64", () => {
|
|
41
|
+
test("mat4MultiplyF64 matches gl-matrix multiply for arbitrary inputs", () => {
|
|
42
|
+
for (let seed = 1; seed <= 8; ++seed) {
|
|
43
|
+
const a = pseudoMat(seed);
|
|
44
|
+
const b = pseudoMat(seed * 31 + 7);
|
|
45
|
+
const mine = mat4MultiplyF64(a, b);
|
|
46
|
+
const ref = glmatrix.mat4.create();
|
|
47
|
+
glmatrix.mat4.multiply(ref, a, b);
|
|
48
|
+
for (let i = 0; i < 16; ++i) {
|
|
49
|
+
// float32 gl-matrix vs float64 mine: agree to float32 precision.
|
|
50
|
+
expect(mine[i]).toBeCloseTo(ref[i], 4);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
test("below the budget every anchor derives model-zero (export-order independence)", () => {
|
|
55
|
+
// The Share#1749 shape: two exports of one object disagree about
|
|
56
|
+
// which element comes first, so the walk anchors on points 76m
|
|
57
|
+
// apart. Both must derive the same frame, or the two files render
|
|
58
|
+
// 76m apart and no camera permalink spans them.
|
|
59
|
+
const identity = glmatrix.mat4.create();
|
|
60
|
+
const first = deriveCoordinationF64(identity, { x: 76, y: -11.4504049888, z: 0 }, NORMALIZE_MAT, 1);
|
|
61
|
+
const second = deriveCoordinationF64(identity, { x: 0, y: -11.4504049888, z: 0 }, NORMALIZE_MAT, 1);
|
|
62
|
+
expect(second).toEqual(first);
|
|
63
|
+
// Model-zero (conway#87): the frame is the bare Y-up normalize and
|
|
64
|
+
// the model keeps the coordinates its file authored.
|
|
65
|
+
expect(first[TRANSLATION_X]).toBe(0);
|
|
66
|
+
expect(first[TRANSLATION_Y]).toBe(0);
|
|
67
|
+
expect(first[TRANSLATION_Z]).toBe(0);
|
|
68
|
+
});
|
|
69
|
+
test("anchors either side of a grid line below the budget still agree", () => {
|
|
70
|
+
// Why the recentre is staged rather than snapped everywhere: a
|
|
71
|
+
// straight snap turns a small anchor disagreement into a full-cell
|
|
72
|
+
// one. A site-grid model at x ~ 500m whose preview channel anchors
|
|
73
|
+
// at 480 and whose durable walk anchors at 520 would derive frames
|
|
74
|
+
// 1km apart — and the adopted-frame gate only re-derives past
|
|
75
|
+
// LARGE_COORDINATE_BUDGET_M, so it would keep the wrong one and
|
|
76
|
+
// render 1km off a classic open. Below the budget both are zero.
|
|
77
|
+
const identity = glmatrix.mat4.create();
|
|
78
|
+
const below = deriveCoordinationF64(identity, { x: 480, y: 0, z: 0 }, NORMALIZE_MAT, 1);
|
|
79
|
+
const above = deriveCoordinationF64(identity, { x: 520, y: 0, z: 0 }, NORMALIZE_MAT, 1);
|
|
80
|
+
expect(above).toEqual(below);
|
|
81
|
+
expect(below[TRANSLATION_X]).toBe(0);
|
|
82
|
+
});
|
|
83
|
+
test("recentres only once past the budget, on the same metre grid whatever the source unit", () => {
|
|
84
|
+
// Same object, one file in metres and one in millimetres: the
|
|
85
|
+
// millimetre file's anchor is 1000x larger and its scaleFactor
|
|
86
|
+
// 1000x smaller, so both must land on the same metre frame.
|
|
87
|
+
const identity = glmatrix.mat4.create();
|
|
88
|
+
const metres = deriveCoordinationF64(identity, { x: 2600076, y: 412, z: 0 }, NORMALIZE_MAT, 1);
|
|
89
|
+
const millimetres = deriveCoordinationF64(identity, { x: 2600076000, y: 412000, z: 0 }, NORMALIZE_MAT, 0.001);
|
|
90
|
+
for (const i of [TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z]) {
|
|
91
|
+
expect(millimetres[i]).toBeCloseTo(metres[i], 6);
|
|
92
|
+
}
|
|
93
|
+
expect(metres[TRANSLATION_X]).toBe(-2600000);
|
|
94
|
+
});
|
|
95
|
+
test("keeps a georeferenced model inside the recentre budget", () => {
|
|
96
|
+
// Above the budget the recentre engages and snapping trades
|
|
97
|
+
// exactness for order-independence. Once engaged every component is
|
|
98
|
+
// snapped, so each keeps at most half a cell and the anchor lands
|
|
99
|
+
// within half a cell in each axis — measured as a distance so the
|
|
100
|
+
// bound is a property of the anchor, like the stage decision itself.
|
|
101
|
+
// The outer bound that matters is LARGE_COORDINATE_BUDGET_M, the
|
|
102
|
+
// threshold above which a frame counts as not having recentred.
|
|
103
|
+
const identity = glmatrix.mat4.create();
|
|
104
|
+
const ref = { x: 2600000.31, y: 1200000.17, z: 412.5 };
|
|
105
|
+
const coord = deriveCoordinationF64(identity, ref, NORMALIZE_MAT, 1);
|
|
106
|
+
// NORMALIZE_MAT is Z-up -> Y-up, so the source y/z components land in
|
|
107
|
+
// the frame's z/y translation slots.
|
|
108
|
+
const residual = Math.hypot(ref.x + coord[TRANSLATION_X], ref.z + coord[TRANSLATION_Y], ref.y - coord[TRANSLATION_Z]);
|
|
109
|
+
// sqrt(3) half-cells is the true worst case; assert both it and the
|
|
110
|
+
// budget so a future edit that widens either is caught.
|
|
111
|
+
expect(residual).toBeLessThanOrEqual(COORDINATION_SNAP_M);
|
|
112
|
+
expect(residual).toBeLessThan(LARGE_COORDINATE_BUDGET_M);
|
|
113
|
+
});
|
|
114
|
+
test("recentres a model whose offset is spread across axes", () => {
|
|
115
|
+
// The stage decision is the anchor's distance from the origin, not
|
|
116
|
+
// any one component: (9km, 9km, 9km) is 15.6km out — past the budget
|
|
117
|
+
// — while no single component crosses it. Deciding per component
|
|
118
|
+
// would leave this model in file coordinates and quietly undo the
|
|
119
|
+
// float32 jitter fix the budget exists to enforce.
|
|
120
|
+
const identity = glmatrix.mat4.create();
|
|
121
|
+
const coord = deriveCoordinationF64(identity, { x: 9000, y: 9000, z: 9000 }, NORMALIZE_MAT, 1);
|
|
122
|
+
const residual = Math.hypot(9000 + coord[TRANSLATION_X], 9000 + coord[TRANSLATION_Y], 9000 - coord[TRANSLATION_Z]);
|
|
123
|
+
expect(coord[TRANSLATION_X]).not.toBe(0);
|
|
124
|
+
expect(residual).toBeLessThan(LARGE_COORDINATE_BUDGET_M);
|
|
125
|
+
});
|
|
126
|
+
test("places a LV95-magnitude element exactly where float32 mis-lands it", () => {
|
|
127
|
+
// The georeferencing jitter mechanism (Share#1631): an element placed
|
|
128
|
+
// at Swiss LV95 magnitude (~2.6M easting) is composed against the
|
|
129
|
+
// recentre frame, and float32 ULP at 2.6M is ~0.31m. Run through
|
|
130
|
+
// gl-matrix's Float32Array that composition quantizes, and the
|
|
131
|
+
// element lands cm-to-dm from where the frame says — a positional
|
|
132
|
+
// error baked into every emitted transform. The float64 path lands it
|
|
133
|
+
// exactly.
|
|
134
|
+
//
|
|
135
|
+
// Note the frame's own translation is now snapped to whole kilometres
|
|
136
|
+
// (COORDINATION_SNAP_M), which happens to be exactly representable in
|
|
137
|
+
// float32 — so the loss this pins is in the composition against the
|
|
138
|
+
// element's full-precision placement, which is where it always
|
|
139
|
+
// mattered: that product is what becomes the FlatMesh transform.
|
|
140
|
+
const ref = { x: 2600000.31, y: 1200000.17, z: 412.5 };
|
|
141
|
+
const frame = deriveCoordinationF64(glmatrix.mat4.create(), ref, NORMALIZE_MAT, 1);
|
|
142
|
+
// An element sitting on that reference point.
|
|
143
|
+
const placement = glmatrix.mat4.create();
|
|
144
|
+
glmatrix.mat4.identity(placement);
|
|
145
|
+
const placementF64 = Array.from(placement);
|
|
146
|
+
placementF64[TRANSLATION_X] = ref.x;
|
|
147
|
+
placementF64[TRANSLATION_Y] = ref.y;
|
|
148
|
+
placementF64[TRANSLATION_Z] = ref.z;
|
|
149
|
+
// Where it must land: the within-cell remainder of every component.
|
|
150
|
+
// The stage decision is made once on the whole anchor, and this one
|
|
151
|
+
// is far past the budget, so all three components snap — including
|
|
152
|
+
// z=412.5, whose nearest grid multiple is 0 and which therefore
|
|
153
|
+
// keeps its full value. (A per-component budget test would leave z
|
|
154
|
+
// untouched for a different reason and agree here by coincidence;
|
|
155
|
+
// this mirrors what quantizeRecentre actually does.)
|
|
156
|
+
const rem = (v) => v - Math.round(v / COORDINATION_SNAP_M) * COORDINATION_SNAP_M;
|
|
157
|
+
const expected = [rem(ref.x), rem(ref.z), -rem(ref.y)];
|
|
158
|
+
const f64 = composeTransformF64(frame, placementF64);
|
|
159
|
+
// The old path's loss: the placement crosses the wasm boundary as a
|
|
160
|
+
// glm::dmat4 but was rebuilt with gl-matrix `mat4.fromValues`, i.e.
|
|
161
|
+
// stored in a Float32Array — quantizing its 2.6M component to the
|
|
162
|
+
// ~0.31m float32 grid before anything is composed. Snapping the frame
|
|
163
|
+
// does not rescue that; only keeping the placement in float64 does.
|
|
164
|
+
const f32 = composeTransformF64(frame, new Float32Array(placementF64));
|
|
165
|
+
const errF64 = Math.max(Math.abs(f64[TRANSLATION_X] - expected[0]), Math.abs(f64[TRANSLATION_Y] - expected[1]), Math.abs(f64[TRANSLATION_Z] - expected[2]));
|
|
166
|
+
const errF32 = Math.max(Math.abs(f32[TRANSLATION_X] - expected[0]), Math.abs(f32[TRANSLATION_Y] - expected[1]), Math.abs(f32[TRANSLATION_Z] - expected[2]));
|
|
167
|
+
expect(errF64).toBeLessThan(0.000001);
|
|
168
|
+
expect(errF32).toBeGreaterThan(0.01);
|
|
169
|
+
});
|
|
170
|
+
test("near origin float64 and float32 agree (fixtures unaffected)", () => {
|
|
171
|
+
const placement = pseudoMat(99);
|
|
172
|
+
// Keep it a valid affine-ish transform near origin.
|
|
173
|
+
placement[12] = 3;
|
|
174
|
+
placement[13] = -2;
|
|
175
|
+
placement[14] = 5;
|
|
176
|
+
placement[3] = 0;
|
|
177
|
+
placement[7] = 0;
|
|
178
|
+
placement[11] = 0;
|
|
179
|
+
placement[15] = 1;
|
|
180
|
+
const point = { x: 0.5, y: 0.25, z: -0.75 };
|
|
181
|
+
const f64 = deriveCoordinationF64(placement, point, NORMALIZE_MAT, 1);
|
|
182
|
+
const composed = composeTransformF64(f64, placement, { x: 0.1, y: 0.2, z: 0.3 });
|
|
183
|
+
expect(composed).toHaveLength(16);
|
|
184
|
+
// Sanity: finite, bounded.
|
|
185
|
+
for (const v of composed) {
|
|
186
|
+
expect(Number.isFinite(v)).toBe(true);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
test("flushes non-finite and float32-underflow garbage to zero (reopen parity)", () => {
|
|
190
|
+
// A degenerate/reopened-model placement whose getValues() returns
|
|
191
|
+
// subnormal garbage + a NaN. The old Float32Array path zeroed the
|
|
192
|
+
// subnormals; we zero those AND NaN/Inf so parity holds and no NaN
|
|
193
|
+
// leaks into a transform.
|
|
194
|
+
const garbage = [
|
|
195
|
+
1,
|
|
196
|
+
0,
|
|
197
|
+
0,
|
|
198
|
+
0,
|
|
199
|
+
0,
|
|
200
|
+
1,
|
|
201
|
+
0,
|
|
202
|
+
0,
|
|
203
|
+
0,
|
|
204
|
+
0,
|
|
205
|
+
1,
|
|
206
|
+
0,
|
|
207
|
+
1.29e-304,
|
|
208
|
+
NaN,
|
|
209
|
+
Infinity,
|
|
210
|
+
1,
|
|
211
|
+
];
|
|
212
|
+
const out = composeTransformF64([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], garbage);
|
|
213
|
+
expect(out[12]).toBe(0); // subnormal -> 0
|
|
214
|
+
expect(out[13]).toBe(0); // NaN -> 0
|
|
215
|
+
expect(out[14]).toBe(0); // Infinity -> 0
|
|
216
|
+
for (const v of out) {
|
|
217
|
+
expect(Number.isFinite(v)).toBe(true);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
test("undefined placement is treated as identity", () => {
|
|
221
|
+
const coord = [2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1];
|
|
222
|
+
const out = composeTransformF64(coord, void 0);
|
|
223
|
+
expect(Array.from(out)).toEqual(coord);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
@@ -5,6 +5,8 @@ import * as glmatrix from "gl-matrix";
|
|
|
5
5
|
import { StepExternalByteStore } from "../../step/step_buffer_provider.js";
|
|
6
6
|
import { IfcApiModelPassthrough } from "./ifc_api_model_passthrough.js";
|
|
7
7
|
import { Properties } from "./properties.js";
|
|
8
|
+
import type { PreviewMeshPayload } from "./streamed_preview_channel.js";
|
|
9
|
+
export type { PreviewMeshPayload } from "./streamed_preview_channel.js";
|
|
8
10
|
export * from "./ifc2x4.js";
|
|
9
11
|
export declare const UNKNOWN = 0;
|
|
10
12
|
export declare const STRING = 1;
|
|
@@ -37,6 +39,27 @@ export interface Loadersettings {
|
|
|
37
39
|
* embedders can print the model line as early as possible (issue #301).
|
|
38
40
|
*/
|
|
39
41
|
ON_MODEL_INFO?: (info: ModelInfo) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Conway extension (OpenModelStreamed only; Share demand/tiled
|
|
44
|
+
* rendering slice A): open with NO geometry extraction — the model
|
|
45
|
+
* registers with an empty scene and the embedder pumps
|
|
46
|
+
* `ExtractGeometryBatch` to extract products in file-order batches,
|
|
47
|
+
* receiving each batch's meshes incrementally. Properties and the
|
|
48
|
+
* spatial structure work from the first batch. Ignored by the
|
|
49
|
+
* classic open paths and by the internal streamed→classic fallback.
|
|
50
|
+
*/
|
|
51
|
+
DEFER_GEOMETRY?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Conway extension (OpenModelStreamed + DEFER_GEOMETRY only; demand/tiled
|
|
54
|
+
* rendering slice A2): receive PREVIEW mesh payloads while the parse is
|
|
55
|
+
* still running — self-contained (geometry copied out of the wasm heap),
|
|
56
|
+
* so they can be uploaded before the model exists. Preview quality:
|
|
57
|
+
* relationship records (voids, materials) live near the end of real IFC
|
|
58
|
+
* files, so previews can miss openings/materials; the durable batch pump
|
|
59
|
+
* re-extracts every product after the parse and REPLACES the preview.
|
|
60
|
+
* Consumers must treat these as disposable. Ignored everywhere else.
|
|
61
|
+
*/
|
|
62
|
+
ON_PREVIEW_MESH?: (mesh: PreviewMeshPayload) => void;
|
|
40
63
|
}
|
|
41
64
|
/**
|
|
42
65
|
* web-ifc compatible log levels (numeric values match web-ifc's enum so an
|
|
@@ -50,6 +73,18 @@ export declare enum LogLevel {
|
|
|
50
73
|
LOG_LEVEL_ERROR = 4,
|
|
51
74
|
LOG_LEVEL_OFF = 5
|
|
52
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Normalize an embedder wasm directory (the SetWasmPath value) to the
|
|
78
|
+
* absolute site path the web engine modules are served from — the
|
|
79
|
+
* runtime module prefix isolated (multithreaded) contexts import the
|
|
80
|
+
* engine from. Web wasm paths are site-root-relative by convention
|
|
81
|
+
* ('./static/js/'); missing input falls back to the same '/static/js/'
|
|
82
|
+
* directory conway-geom's web init already uses to locate wasm.
|
|
83
|
+
*
|
|
84
|
+
* @param wasmPath The embedder-configured wasm directory, if any.
|
|
85
|
+
* @return {string} Absolute directory with a trailing slash.
|
|
86
|
+
*/
|
|
87
|
+
export declare function webWasmDirectory(wasmPath: string | undefined): string;
|
|
53
88
|
export interface Vector<T> {
|
|
54
89
|
get(index: number): T;
|
|
55
90
|
push(parameter: T): void;
|
|
@@ -145,6 +180,43 @@ export declare class IfcAPI {
|
|
|
145
180
|
* @return {Promise<number>} model ID
|
|
146
181
|
*/
|
|
147
182
|
OpenModelAsync(data: Uint8Array, settings?: Loadersettings): Promise<number>;
|
|
183
|
+
/**
|
|
184
|
+
* Streamed-open variant of OpenModelAsync (conway extension;
|
|
185
|
+
* feature-detect with typeof api.OpenModelStreamed === 'function').
|
|
186
|
+
* IFC input parses through the streaming columnar indexer, so the
|
|
187
|
+
* model's record index is columnar from birth and the classic
|
|
188
|
+
* per-record object phase — the dominant JS-heap cost of parsing
|
|
189
|
+
* large models — never exists. Everything downstream is identical to
|
|
190
|
+
* OpenModelAsync: same cooperative geometry extraction, same
|
|
191
|
+
* meshes/properties surface, and SpillModelSource works afterwards
|
|
192
|
+
* as usual.
|
|
193
|
+
*
|
|
194
|
+
* Never does worse than OpenModelAsync: non-IFC formats and any
|
|
195
|
+
* streamed-parse failure fall back to the classic path internally,
|
|
196
|
+
* so -1 here means the classic open would have failed too.
|
|
197
|
+
*
|
|
198
|
+
* @param data containing IFC data (bytes)
|
|
199
|
+
* @param settings settings for loading the model
|
|
200
|
+
* @return {Promise<number>} model ID
|
|
201
|
+
*/
|
|
202
|
+
OpenModelStreamed(data: Uint8Array, settings?: Loadersettings): Promise<number>;
|
|
203
|
+
/**
|
|
204
|
+
* M1b store-backed open (conway extension; feature-detect with
|
|
205
|
+
* `typeof api.OpenModelStream === 'function'`). Parses through a
|
|
206
|
+
* moving window over `store` and keeps the model windowed from
|
|
207
|
+
* birth — the source is never one JS `ArrayBuffer`. Geometry
|
|
208
|
+
* extract on the deferred path must use
|
|
209
|
+
* {@link ExtractGeometryBatchAsync} so product closures can be
|
|
210
|
+
* paged in.
|
|
211
|
+
*
|
|
212
|
+
* IFC only; other formats return -1 (caller should fall back to
|
|
213
|
+
* buffering + OpenModelStreamed).
|
|
214
|
+
*
|
|
215
|
+
* @param store External store holding the source bytes (OPFS File).
|
|
216
|
+
* @param settings settings for loading the model
|
|
217
|
+
* @return {Promise<number>} model ID, or -1 on failure
|
|
218
|
+
*/
|
|
219
|
+
OpenModelStream(store: StepExternalByteStore, settings?: Loadersettings): Promise<number>;
|
|
148
220
|
/**
|
|
149
221
|
* Set conway's console-echo log threshold, web-ifc compatible surface
|
|
150
222
|
* (numeric LogLevel enum). Embedders (e.g. Share) use this to quiet a
|
|
@@ -281,6 +353,19 @@ export declare class IfcAPI {
|
|
|
281
353
|
* @return {Array<number>}
|
|
282
354
|
*/
|
|
283
355
|
GetCoordinationMatrix(modelID: number): Array<number>;
|
|
356
|
+
/**
|
|
357
|
+
* Conway extension: the coordination frame the open ACTUALLY applied
|
|
358
|
+
* to emitted placements (the COORDINATE_TO_ORIGIN recenter), identity
|
|
359
|
+
* when none ran. GetCoordinationMatrix keeps its classic identity
|
|
360
|
+
* contract (consumers stamp it onto assembled models); this is the
|
|
361
|
+
* explicit report of the real offset so embedders can map rendered
|
|
362
|
+
* points back to source-world coordinates (Share#1634 acceptance).
|
|
363
|
+
* Feature-detect: typeof api.GetAppliedCoordinationMatrix.
|
|
364
|
+
*
|
|
365
|
+
* @param modelID
|
|
366
|
+
* @return {Array<number>} column-major mat4
|
|
367
|
+
*/
|
|
368
|
+
GetAppliedCoordinationMatrix(modelID: number): Array<number>;
|
|
284
369
|
/**
|
|
285
370
|
*
|
|
286
371
|
* @param ptr
|
|
@@ -309,6 +394,75 @@ export declare class IfcAPI {
|
|
|
309
394
|
* @param modelID Model handle retrieved by OpenModel, model must not be closed
|
|
310
395
|
*/
|
|
311
396
|
CloseModel(modelID: number): void;
|
|
397
|
+
/**
|
|
398
|
+
* Conway extension (Share demand/tiled rendering slice A): on a model
|
|
399
|
+
* opened with `OpenModelStreamed(data, {DEFER_GEOMETRY: true})`,
|
|
400
|
+
* extract the next `batchSize` products and emit this batch's meshes —
|
|
401
|
+
* the incremental twin of StreamAllMeshes. Feature-detect with
|
|
402
|
+
* `typeof api.ExtractGeometryBatch === 'function'`; call repeatedly
|
|
403
|
+
* until `remaining` is 0.
|
|
404
|
+
*
|
|
405
|
+
* DELTA CONTRACT: an entity may be emitted again in a LATER call with
|
|
406
|
+
* a FlatMesh containing only its NEW placed instances (shared/mapped
|
|
407
|
+
* geometry attributes instances to an entity from other products'
|
|
408
|
+
* extractions). Consumers must render/accumulate deltas additively —
|
|
409
|
+
* never key emissions by expressID with overwrite semantics. Each
|
|
410
|
+
* placed instance is emitted exactly once across all calls.
|
|
411
|
+
*
|
|
412
|
+
* @param modelID handle retrieved by OpenModelStreamed
|
|
413
|
+
* @param batchSize max products to extract this call
|
|
414
|
+
* @param meshCallback receives each newly-extracted product's mesh
|
|
415
|
+
* @return {object} `{extracted, remaining}`; `{extracted: 0,
|
|
416
|
+
* remaining: 0}` for unknown models or models without the deferred
|
|
417
|
+
* pump (non-IFC / fully-extracted opens).
|
|
418
|
+
*/
|
|
419
|
+
ExtractGeometryBatch(modelID: number, batchSize: number, meshCallback?: (mesh: FlatMesh) => void): {
|
|
420
|
+
extracted: number;
|
|
421
|
+
remaining: number;
|
|
422
|
+
};
|
|
423
|
+
/**
|
|
424
|
+
* Async twin of {@link ExtractGeometryBatch}: pages each product's
|
|
425
|
+
* source-byte closure before extracting it. Required for models
|
|
426
|
+
* opened with {@link OpenModelStream}; a no-op-prefetch on a
|
|
427
|
+
* resident-source deferred open. Feature-detect with
|
|
428
|
+
* `typeof api.ExtractGeometryBatchAsync === 'function'`.
|
|
429
|
+
*
|
|
430
|
+
* @param modelID handle retrieved by OpenModelStream / OpenModelStreamed
|
|
431
|
+
* @param batchSize max products to extract this call
|
|
432
|
+
* @param meshCallback receives each newly-extracted product's mesh
|
|
433
|
+
* @return {Promise<object>} `{extracted, remaining}`
|
|
434
|
+
*/
|
|
435
|
+
ExtractGeometryBatchAsync(modelID: number, batchSize: number, meshCallback?: (mesh: FlatMesh) => void): Promise<{
|
|
436
|
+
extracted: number;
|
|
437
|
+
remaining: number;
|
|
438
|
+
}>;
|
|
439
|
+
/**
|
|
440
|
+
* Conway extension: free a model's native geometry once the consumer
|
|
441
|
+
* has built its own scene from the meshes — every canonical mesh the
|
|
442
|
+
* extraction produced plus the GetGeometry map. Subsequent
|
|
443
|
+
* GetGeometry calls return an empty dummy; placed transforms, the
|
|
444
|
+
* spatial structure and properties are untouched. Feature-detect with
|
|
445
|
+
* `typeof api.ReleaseModelGeometry === 'function'`.
|
|
446
|
+
*
|
|
447
|
+
* The wasm heap never shrinks, but freed pages are reused — repeated
|
|
448
|
+
* loads in one tab plateau instead of stacking whole model scenes.
|
|
449
|
+
* On a deferred model whose pump has not drained this is a safe
|
|
450
|
+
* no-op returning false.
|
|
451
|
+
*
|
|
452
|
+
* @param modelID handle retrieved by OpenModel/OpenModelStreamed
|
|
453
|
+
* @return {boolean} True when geometry was released.
|
|
454
|
+
*/
|
|
455
|
+
/**
|
|
456
|
+
* Conway extension: the model's linear scaling factor to metres
|
|
457
|
+
* (1 = metres, 0.001 = millimetres, 0.0254 = inches), derived from
|
|
458
|
+
* the model's unit assignment during extraction. Feature-detect with
|
|
459
|
+
* `typeof`. Returns 1 for unknown models.
|
|
460
|
+
*
|
|
461
|
+
* @param modelID handle retrieved by OpenModel/OpenModelStreamed
|
|
462
|
+
* @return {number} metres per model unit.
|
|
463
|
+
*/
|
|
464
|
+
GetLinearScalingFactor(modelID: number): number;
|
|
465
|
+
ReleaseModelGeometry(modelID: number): boolean;
|
|
312
466
|
/**
|
|
313
467
|
*
|
|
314
468
|
* @param modelID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,IAAI,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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"}
|