@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 @@
|
|
|
1
|
+
{"version":3,"file":"ifc_grid_placement.test.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_grid_placement.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { beforeAll, describe, expect, test } from "@jest/globals";
|
|
3
|
+
import { IfcGeometryExtraction } from "./ifc_geometry_extraction.js";
|
|
4
|
+
import { ParseResult } from "../step/parsing/step_parser.js";
|
|
5
|
+
import IfcStepParser from "./ifc_step_parser.js";
|
|
6
|
+
import ParsingBuffer from "../parsing/parsing_buffer.js";
|
|
7
|
+
import { ConwayGeometry } from "../../dependencies/conway-geom/index.js";
|
|
8
|
+
import { ExtractResult } from "../core/shared_constants.js";
|
|
9
|
+
import { StepBufferNotResidentError } from "../step/step_buffer_provider.js";
|
|
10
|
+
import { IfcGrid } from "./ifc4_gen/index.js";
|
|
11
|
+
import Logger, { LogLevel } from "../logging/logger.js";
|
|
12
|
+
/* Express IDs in data/grid_placement.ifc — see that file for the geometry
|
|
13
|
+
* each of them describes and where the expectations below come from. */
|
|
14
|
+
const PLACEMENT_A = 201;
|
|
15
|
+
const PLACEMENT_B = 301;
|
|
16
|
+
const PLACEMENT_C = 501;
|
|
17
|
+
const PLACEMENT_D = 601;
|
|
18
|
+
const PLACEMENT_E = 701;
|
|
19
|
+
const CIRCULAR_AXIS = 410;
|
|
20
|
+
/* Where the two supported placements land in world space, derived in the
|
|
21
|
+
* comments beside each product in the fixture. */
|
|
22
|
+
const A_WORLD_X = 8;
|
|
23
|
+
const A_WORLD_Y = 17;
|
|
24
|
+
const A_WORLD_Z = 9;
|
|
25
|
+
const B_WORLD_X = 4;
|
|
26
|
+
const B_WORLD_Y = 25;
|
|
27
|
+
const B_WORLD_Z = 5;
|
|
28
|
+
const D_WORLD_X = 8;
|
|
29
|
+
const D_WORLD_Y = 17;
|
|
30
|
+
const D_WORLD_Z = 10;
|
|
31
|
+
const E_WORLD_X = 10;
|
|
32
|
+
const E_WORLD_Y = 20;
|
|
33
|
+
const E_WORLD_Z = 5;
|
|
34
|
+
/* Column-major offsets into a 4x4 transform's values. */
|
|
35
|
+
const X_AXIS = 0;
|
|
36
|
+
const TRANSLATION = 12;
|
|
37
|
+
let extraction;
|
|
38
|
+
let extractResult;
|
|
39
|
+
/**
|
|
40
|
+
* Parse data/grid_placement.ifc and extract its geometry.
|
|
41
|
+
*
|
|
42
|
+
* @param mutateModel Optional hook run on the parsed model before extraction,
|
|
43
|
+
* for the windowed-source tests that need a specific read to throw.
|
|
44
|
+
* @return {Promise<ExtractResult>} The result of the extraction.
|
|
45
|
+
*/
|
|
46
|
+
async function extractGridModel(mutateModel) {
|
|
47
|
+
const parser = IfcStepParser.Instance;
|
|
48
|
+
const input = new ParsingBuffer(fs.readFileSync("data/grid_placement.ifc"));
|
|
49
|
+
if (parser.parseHeader(input)[1] !== ParseResult.COMPLETE) {
|
|
50
|
+
return ExtractResult.INCOMPLETE;
|
|
51
|
+
}
|
|
52
|
+
const conwayGeometry = new ConwayGeometry();
|
|
53
|
+
if (!await conwayGeometry.initialize()) {
|
|
54
|
+
return ExtractResult.INCOMPLETE;
|
|
55
|
+
}
|
|
56
|
+
const [, model] = parser.parseDataToModel(input);
|
|
57
|
+
if (model === void 0) {
|
|
58
|
+
return ExtractResult.INCOMPLETE;
|
|
59
|
+
}
|
|
60
|
+
mutateModel?.(model);
|
|
61
|
+
extraction = new IfcGeometryExtraction(conwayGeometry, model);
|
|
62
|
+
return extraction.extractIFCGeometryData()[0];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The scene transform registered for an object placement.
|
|
66
|
+
*
|
|
67
|
+
* @param expressID The express ID of the placement.
|
|
68
|
+
* @return {IfcSceneTransform | undefined} Its transform, or undefined when
|
|
69
|
+
* the extraction registered none for it.
|
|
70
|
+
*/
|
|
71
|
+
function placementTransform(expressID) {
|
|
72
|
+
const placement = extraction.model.getElementByExpressID(expressID);
|
|
73
|
+
expect(placement).toBeDefined();
|
|
74
|
+
return extraction.scene.getTransform(placement.localID);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Find a buffered warning by the start of its message.
|
|
78
|
+
*
|
|
79
|
+
* @param prefix The leading text of the message to look for.
|
|
80
|
+
* @return {LogEntry | undefined} The matching entry.
|
|
81
|
+
*/
|
|
82
|
+
function warningStartingWith(prefix) {
|
|
83
|
+
return Logger.getLogs().find((entry) => entry.level === "warning" && entry.message.startsWith(prefix));
|
|
84
|
+
}
|
|
85
|
+
beforeAll(async () => {
|
|
86
|
+
Logger.clearLogs();
|
|
87
|
+
// The unsupported-axis product warns by design here, and the echo would be
|
|
88
|
+
// noise in the test console. The buffer these tests read is filled
|
|
89
|
+
// regardless of the console threshold.
|
|
90
|
+
const threshold = Logger.getLogLevel();
|
|
91
|
+
Logger.setLogLevel(LogLevel.OFF);
|
|
92
|
+
try {
|
|
93
|
+
extractResult = await extractGridModel();
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
Logger.setLogLevel(threshold);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
describe("IfcGridPlacement extraction", () => {
|
|
100
|
+
test("the model extracts", () => {
|
|
101
|
+
expect(extractResult).toBe(ExtractResult.COMPLETE);
|
|
102
|
+
});
|
|
103
|
+
test("a grid placement composes onto the grid's own placement", () => {
|
|
104
|
+
const transform = placementTransform(PLACEMENT_A);
|
|
105
|
+
expect(transform).toBeDefined();
|
|
106
|
+
const values = transform.absoluteTransform;
|
|
107
|
+
// Grid intersection (-3,2,4) carried through the grid's placement — a
|
|
108
|
+
// quarter turn about +Z, then (10,20,5). Landing at the origin is the
|
|
109
|
+
// defect this covers, and landing at (7,22,9) would mean the grid's
|
|
110
|
+
// rotation had been added rather than composed.
|
|
111
|
+
expect(values[TRANSLATION]).toBeCloseTo(A_WORLD_X);
|
|
112
|
+
expect(values[TRANSLATION + 1]).toBeCloseTo(A_WORLD_Y);
|
|
113
|
+
expect(values[TRANSLATION + 2]).toBeCloseTo(A_WORLD_Z);
|
|
114
|
+
// No PlacementRefDirection, so the x axis is the first axis' tangent
|
|
115
|
+
// (+X in the grid), which the grid's quarter turn takes to world +Y.
|
|
116
|
+
expect(values[X_AXIS]).toBeCloseTo(0);
|
|
117
|
+
expect(values[X_AXIS + 1]).toBeCloseTo(1);
|
|
118
|
+
expect(values[X_AXIS + 2]).toBeCloseTo(0);
|
|
119
|
+
});
|
|
120
|
+
test("two offsets and an explicit reference direction", () => {
|
|
121
|
+
const transform = placementTransform(PLACEMENT_B);
|
|
122
|
+
expect(transform).toBeDefined();
|
|
123
|
+
const values = transform.absoluteTransform;
|
|
124
|
+
// Grid intersection (5,6), with no third offset, so z stays on the grid.
|
|
125
|
+
expect(values[TRANSLATION]).toBeCloseTo(B_WORLD_X);
|
|
126
|
+
expect(values[TRANSLATION + 1]).toBeCloseTo(B_WORLD_Y);
|
|
127
|
+
expect(values[TRANSLATION + 2]).toBeCloseTo(B_WORLD_Z);
|
|
128
|
+
// PlacementRefDirection is +Y in the grid, which the quarter turn takes
|
|
129
|
+
// to world -X.
|
|
130
|
+
expect(values[X_AXIS]).toBeCloseTo(-1);
|
|
131
|
+
expect(values[X_AXIS + 1]).toBeCloseTo(0);
|
|
132
|
+
expect(values[X_AXIS + 2]).toBeCloseTo(0);
|
|
133
|
+
});
|
|
134
|
+
test("a local placement measured from a grid placement composes onto it", () => {
|
|
135
|
+
const transform = placementTransform(PLACEMENT_D);
|
|
136
|
+
expect(transform).toBeDefined();
|
|
137
|
+
const values = transform.absoluteTransform;
|
|
138
|
+
// 1m up from product A's grid placement, which is where an
|
|
139
|
+
// IfcLocalPlacement whose PlacementRelTo is an IfcGridPlacement lands
|
|
140
|
+
// once that placement registers a transform to be relative to.
|
|
141
|
+
expect(values[TRANSLATION]).toBeCloseTo(D_WORLD_X);
|
|
142
|
+
expect(values[TRANSLATION + 1]).toBeCloseTo(D_WORLD_Y);
|
|
143
|
+
expect(values[TRANSLATION + 2]).toBeCloseTo(D_WORLD_Z);
|
|
144
|
+
});
|
|
145
|
+
test("an axis curve that is not a line warns rather than dropping silently", () => {
|
|
146
|
+
expect(placementTransform(PLACEMENT_C)).toBeUndefined();
|
|
147
|
+
const warning = warningStartingWith("IfcGridPlacement: unsupported grid axis curve");
|
|
148
|
+
expect(warning).toBeDefined();
|
|
149
|
+
expect(warning.message).toContain("IFCCIRCLE");
|
|
150
|
+
expect(warning.expressIDs.has(String(CIRCULAR_AXIS))).toBe(true);
|
|
151
|
+
});
|
|
152
|
+
test("a reference direction along the placement z falls back to the tangent", () => {
|
|
153
|
+
const transform = placementTransform(PLACEMENT_E);
|
|
154
|
+
expect(transform).toBeDefined();
|
|
155
|
+
const values = transform.absoluteTransform;
|
|
156
|
+
// The failure this covers is not a wrong number but a poisoned one:
|
|
157
|
+
// unguarded, normalising a reference direction that lies along the forced
|
|
158
|
+
// z gives NaN, and addTransform carries it into every descendant. Asserted
|
|
159
|
+
// over the whole matrix rather than the x axis alone, since that is how it
|
|
160
|
+
// spreads.
|
|
161
|
+
expect(Array.from(values).every((value) => Number.isFinite(value)))
|
|
162
|
+
.toBe(true);
|
|
163
|
+
// Axes A and 1 with no offsets meet at the grid origin.
|
|
164
|
+
expect(values[TRANSLATION]).toBeCloseTo(E_WORLD_X);
|
|
165
|
+
expect(values[TRANSLATION + 1]).toBeCloseTo(E_WORLD_Y);
|
|
166
|
+
expect(values[TRANSLATION + 2]).toBeCloseTo(E_WORLD_Z);
|
|
167
|
+
// The schema default the guard falls back to: the first axis' tangent,
|
|
168
|
+
// +X in the grid, taken to world +Y by the grid's quarter turn - so the
|
|
169
|
+
// same x axis product A gets from having no reference direction at all.
|
|
170
|
+
expect(values[X_AXIS]).toBeCloseTo(0);
|
|
171
|
+
expect(values[X_AXIS + 1]).toBeCloseTo(1);
|
|
172
|
+
expect(values[X_AXIS + 2]).toBeCloseTo(0);
|
|
173
|
+
const warning = warningStartingWith("IfcGridPlacement: the placement reference direction is parallel");
|
|
174
|
+
expect(warning).toBeDefined();
|
|
175
|
+
expect(warning.expressIDs.has(String(PLACEMENT_E))).toBe(true);
|
|
176
|
+
});
|
|
177
|
+
test("nothing in this model is left unimplemented", () => {
|
|
178
|
+
// The arm this covers used to be a no-op; a supported placement that
|
|
179
|
+
// still warns would mean the implementation had not been reached.
|
|
180
|
+
expect(warningStartingWith("IfcGridPlacement: unimplemented")).toBeUndefined();
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe("IfcGridPlacement on a windowed source", () => {
|
|
184
|
+
test("non-resident grid records degrade to the intersection, not a dropped product", async () => {
|
|
185
|
+
// A store-backed model pages a product's forward-reference closure,
|
|
186
|
+
// which reaches the axes but never the IfcGrid that back-references
|
|
187
|
+
// them — so the gridByAxis scan is the one read here that can throw
|
|
188
|
+
// StepBufferNotResidentError. Simulate exactly that read failing.
|
|
189
|
+
const threshold = Logger.getLogLevel();
|
|
190
|
+
Logger.setLogLevel(LogLevel.OFF);
|
|
191
|
+
let result;
|
|
192
|
+
try {
|
|
193
|
+
result = await extractGridModel((model) => {
|
|
194
|
+
const originalTypes = model.types.bind(model);
|
|
195
|
+
model.types = ((...requested) => {
|
|
196
|
+
if (requested.length === 1 && requested[0] === IfcGrid) {
|
|
197
|
+
throw new StepBufferNotResidentError(0, 0);
|
|
198
|
+
}
|
|
199
|
+
return originalTypes(...requested);
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
Logger.setLogLevel(threshold);
|
|
205
|
+
}
|
|
206
|
+
// The product survives - dropping it entirely would be strictly worse
|
|
207
|
+
// than the pre-implementation rendered-at-origin state.
|
|
208
|
+
expect(result).toBe(ExtractResult.COMPLETE);
|
|
209
|
+
const transform = placementTransform(PLACEMENT_A);
|
|
210
|
+
expect(transform).toBeDefined();
|
|
211
|
+
const values = transform.absoluteTransform;
|
|
212
|
+
// The grid-frame intersection with its offsets, WITHOUT the grid's
|
|
213
|
+
// own placement composed on: the degraded-but-warned state.
|
|
214
|
+
expect(values[TRANSLATION]).toBeCloseTo(-3);
|
|
215
|
+
expect(values[TRANSLATION + 1]).toBeCloseTo(2);
|
|
216
|
+
expect(values[TRANSLATION + 2]).toBeCloseTo(4);
|
|
217
|
+
const warning = warningStartingWith("IfcGridPlacement: grid records are not resident");
|
|
218
|
+
expect(warning).toBeDefined();
|
|
219
|
+
expect(warning.expressIDs.has(String(PLACEMENT_A))).toBe(true);
|
|
220
|
+
});
|
|
221
|
+
test("a partially resident grid placement chain warns about the partial frame", async () => {
|
|
222
|
+
// The other residency miss on this path, and the reason the guard is
|
|
223
|
+
// two regions rather than one: the grid IS found, and the read that
|
|
224
|
+
// fails is its own placement chain. extractPlacement pushes a
|
|
225
|
+
// transform per level as it unwinds, so a miss part way up leaves
|
|
226
|
+
// ancestors applied - which the scan-failure message would describe
|
|
227
|
+
// wrongly. Patched on the prototype because the failing read is a
|
|
228
|
+
// generated accessor, not a model call the mutator hook can reach.
|
|
229
|
+
const placementProperty = "ObjectPlacement";
|
|
230
|
+
const threshold = Logger.getLogLevel();
|
|
231
|
+
// The buffer is file-wide, and the preceding test deliberately fires
|
|
232
|
+
// the scan-failure warning this one asserts the ABSENCE of.
|
|
233
|
+
Logger.clearLogs();
|
|
234
|
+
Logger.setLogLevel(LogLevel.OFF);
|
|
235
|
+
Object.defineProperty(IfcGrid.prototype, placementProperty, {
|
|
236
|
+
configurable: true,
|
|
237
|
+
/** @return {never} Always throws, as a non-resident read would. */
|
|
238
|
+
get() {
|
|
239
|
+
throw new StepBufferNotResidentError(0, 0);
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
let result;
|
|
243
|
+
try {
|
|
244
|
+
result = await extractGridModel();
|
|
245
|
+
}
|
|
246
|
+
finally {
|
|
247
|
+
delete IfcGrid.prototype[placementProperty];
|
|
248
|
+
Logger.setLogLevel(threshold);
|
|
249
|
+
}
|
|
250
|
+
expect(result).toBe(ExtractResult.COMPLETE);
|
|
251
|
+
// Still placed, and still not dropped.
|
|
252
|
+
expect(placementTransform(PLACEMENT_A)).toBeDefined();
|
|
253
|
+
const warning = warningStartingWith("IfcGridPlacement: the grid's own placement chain is not fully " +
|
|
254
|
+
"resident");
|
|
255
|
+
expect(warning).toBeDefined();
|
|
256
|
+
expect(warning.expressIDs.has(String(PLACEMENT_A))).toBe(true);
|
|
257
|
+
// The scan succeeded, so the message that says the grid records were
|
|
258
|
+
// never reached must NOT be the one reported.
|
|
259
|
+
expect(warningStartingWith("IfcGridPlacement: grid records are not resident")).toBeUndefined();
|
|
260
|
+
});
|
|
261
|
+
});
|
|
@@ -30,6 +30,18 @@ export declare class IfcModelGeometry implements ModelGeometry {
|
|
|
30
30
|
/**
|
|
31
31
|
* Add a mesh to the geometry cache.
|
|
32
32
|
*
|
|
33
|
+
* Freezes the native float vertex mirror at add time (one
|
|
34
|
+
* GetVertexData call): consumers (the compat GetGeometry surface)
|
|
35
|
+
* read float vertices whose frame must match the scene transforms,
|
|
36
|
+
* which are authored against the geometry AS CREATED. Later native
|
|
37
|
+
* mutations that keep the vertex count (normalize's centering)
|
|
38
|
+
* deliberately do NOT refresh the mirror, so every extraction path —
|
|
39
|
+
* whole-model walk, per-product demand pump, parse-time preview —
|
|
40
|
+
* serves the same creation-frame floats. Without this, paths that
|
|
41
|
+
* first read vertices only after a centering mutation serve
|
|
42
|
+
* per-geometry-shifted vertices against unshifted transforms
|
|
43
|
+
* (Share's demand-path "scatter").
|
|
44
|
+
*
|
|
33
45
|
* @param mesh
|
|
34
46
|
*/
|
|
35
47
|
add(mesh: CanonicalMesh): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_model_geometry.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_model_geometry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAqB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAoB,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAmB,MAAM,4BAA4B,CAAA;AAG/E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,aAAa;aAUvB,KAAK,EAAE,YAAY;aAAkB,MAAM,EAAE,OAAO;IARjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D;;;;;OAKG;gBAC0B,KAAK,EAAE,YAAY,EAAkB,MAAM,GAAE,OAAe;IAEzF;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAgBhC
|
|
1
|
+
{"version":3,"file":"ifc_model_geometry.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_model_geometry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAqB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAoB,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAmB,MAAM,4BAA4B,CAAA;AAG/E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,aAAa;aAUvB,KAAK,EAAE,YAAY;aAAkB,MAAM,EAAE,OAAO;IARjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D;;;;;OAKG;gBAC0B,KAAK,EAAE,YAAY,EAAkB,MAAM,GAAE,OAAe;IAEzF;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAgBhC;;;;;;;;;;;;;;;;OAgBG;IACI,GAAG,CAAC,IAAI,EAAE,aAAa;IAS9B;;;;OAIG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM;IAe7B;;;;;OAKG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI/D;;;;OAIG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC;IAI3D;;;;OAIG;IACI,qBAAqB,IAAI,MAAM;IAqBtC;;;;OAIG;IACK,IAAI,IAAK,gBAAgB,CAAE;QACjC,8BAA8B;QAC9B,MAAM;QACN,iBAAiB;QACjB,MAAM;KAAC,GAAG;QACV,8BAA8B;QAC9B,MAAM;QACN,SAAS;QACT,SAAS;KAAC,CAAC;CAqDd"}
|
|
@@ -40,9 +40,24 @@ export class IfcModelGeometry {
|
|
|
40
40
|
/**
|
|
41
41
|
* Add a mesh to the geometry cache.
|
|
42
42
|
*
|
|
43
|
+
* Freezes the native float vertex mirror at add time (one
|
|
44
|
+
* GetVertexData call): consumers (the compat GetGeometry surface)
|
|
45
|
+
* read float vertices whose frame must match the scene transforms,
|
|
46
|
+
* which are authored against the geometry AS CREATED. Later native
|
|
47
|
+
* mutations that keep the vertex count (normalize's centering)
|
|
48
|
+
* deliberately do NOT refresh the mirror, so every extraction path —
|
|
49
|
+
* whole-model walk, per-product demand pump, parse-time preview —
|
|
50
|
+
* serves the same creation-frame floats. Without this, paths that
|
|
51
|
+
* first read vertices only after a centering mutation serve
|
|
52
|
+
* per-geometry-shifted vertices against unshifted transforms
|
|
53
|
+
* (Share's demand-path "scatter").
|
|
54
|
+
*
|
|
43
55
|
* @param mesh
|
|
44
56
|
*/
|
|
45
57
|
add(mesh) {
|
|
58
|
+
if (mesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
|
|
59
|
+
mesh.geometry.GetVertexData();
|
|
60
|
+
}
|
|
46
61
|
this.meshes_.set(mesh.localID, mesh);
|
|
47
62
|
}
|
|
48
63
|
/**
|