openscad-cpp-evaluator 0.54.0__tar.gz → 0.55.0__tar.gz
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.
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/evaluator.hpp +9 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/import.cpp +7 -4
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/primitives_3d.cpp +6 -4
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/topology.cpp +38 -3
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/csg_generate.cpp +6 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_csg_tree.cpp +78 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/README.md +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/uv.lock +0 -0
|
@@ -294,6 +294,15 @@ public:
|
|
|
294
294
|
// depth-first on one thread.
|
|
295
295
|
const oscad::Position* generateWarnEntry = nullptr;
|
|
296
296
|
|
|
297
|
+
// Set while generating anything beneath a hull(). An open mesh there is
|
|
298
|
+
// not a mistake to report: a convex hull needs only points, so BOSL2's
|
|
299
|
+
// hull_points(pts, fast=true) hands polyhedron() a deliberately garbage
|
|
300
|
+
// face list purely to carry the vertices in. The reference says nothing
|
|
301
|
+
// about it, and spheroid(circum=true, style="icosa") goes through that
|
|
302
|
+
// path -- warning would fire on an everyday BOSL2 call. Covers the whole
|
|
303
|
+
// subtree, not just direct children, since hull() consumes all of it.
|
|
304
|
+
bool insideHull = false;
|
|
305
|
+
|
|
297
306
|
ColoredBody tagGenerated(manifold::Manifold body, const oscad::ASTNode& node, const Value& colorValue);
|
|
298
307
|
|
|
299
308
|
// tagGenerated()'s counterpart for a mesh Manifold refused to build --
|
|
@@ -318,10 +318,13 @@ std::vector<ColoredBody> generateImport(Evaluator& ev, const CSGParams& params,
|
|
|
318
318
|
const MeshDiagnosis d = checkMesh(mesh);
|
|
319
319
|
std::string why = d.summary();
|
|
320
320
|
if (why.empty()) why = manifoldErrorName(body.Status());
|
|
321
|
-
ev.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
321
|
+
if (!ev.insideHull) {
|
|
322
|
+
ev.warn("import: mesh is not a closed solid (" + why +
|
|
323
|
+
"); drawing it as a surface. hull() can still use its points, but "
|
|
324
|
+
"it cannot take part in union/difference/intersection" +
|
|
325
|
+
std::string(repair ? "" : ". Try import(..., repair=true)"),
|
|
326
|
+
&node.position());
|
|
327
|
+
}
|
|
325
328
|
// tagDisplayOnly carries a raw triangle soup for the renderer to
|
|
326
329
|
// draw, and the renderer is float either way, so narrowing here
|
|
327
330
|
// costs nothing this mesh will ever be measured on.
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/primitives_3d.cpp
RENAMED
|
@@ -802,10 +802,12 @@ std::vector<ColoredBody> generatePolyhedron(Evaluator& ev, const CSGParams& para
|
|
|
802
802
|
// closed mesh with reversed winding, non-manifold vertices or
|
|
803
803
|
// self-intersections builds perfectly well, and only an OPEN one
|
|
804
804
|
// reaches this branch. The count points straight at the problem.
|
|
805
|
-
ev.
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
805
|
+
if (!ev.insideHull) {
|
|
806
|
+
ev.warn("polyhedron: mesh is not closed -- " + std::to_string(countBoundaryEdges(mesh)) +
|
|
807
|
+
" boundary edge(s); drawing it as a surface. hull() can still "
|
|
808
|
+
"use its points, but it cannot take part in union/difference/intersection",
|
|
809
|
+
&node.position());
|
|
810
|
+
}
|
|
809
811
|
manifold::MeshGL soup;
|
|
810
812
|
soup.numProp = 3;
|
|
811
813
|
soup.vertProperties.assign(mesh.vertProperties.begin(), mesh.vertProperties.end());
|
|
@@ -35,19 +35,51 @@ CSGParams resolveHull(Evaluator& ev, const oscad::ModularCall& node, EvalContext
|
|
|
35
35
|
// matching the reference's own `if bodies_3d: ... else: sections...`
|
|
36
36
|
// either/or dispatch). background/highlight/show_only bodies pass through
|
|
37
37
|
// untouched, same as union/difference/intersection.
|
|
38
|
+
// Vertex positions out of a MeshGL, whatever else it carries per vertex.
|
|
39
|
+
// Only the first three properties are the position; numProp may be larger.
|
|
40
|
+
static void appendVertices(const manifold::MeshGL& mesh, std::vector<manifold::vec3>& out) {
|
|
41
|
+
const size_t stride = mesh.numProp;
|
|
42
|
+
if (stride < 3) return;
|
|
43
|
+
for (size_t i = 0; i + 2 < mesh.vertProperties.size(); i += stride)
|
|
44
|
+
out.push_back({mesh.vertProperties[i], mesh.vertProperties[i + 1],
|
|
45
|
+
mesh.vertProperties[i + 2]});
|
|
46
|
+
}
|
|
47
|
+
|
|
38
48
|
std::vector<ColoredBody> generateHull(Evaluator&, const CSGParams&, const std::vector<std::unique_ptr<CSGNode>>& children,
|
|
39
49
|
const oscad::ASTNode&) {
|
|
40
50
|
const std::vector<ColoredBody> bodies = flattenCsgTree(children);
|
|
41
51
|
if (bodies.empty()) return {};
|
|
42
52
|
const RoleSplit split = splitByRole(bodies);
|
|
43
53
|
|
|
54
|
+
// An open mesh has no Manifold, but a convex hull only ever needed its
|
|
55
|
+
// POINTS -- closedness is irrelevant to one. BOSL2 depends on this:
|
|
56
|
+
// hull_points(pts, fast=true) hands polyhedron() a deliberately garbage
|
|
57
|
+
// face list purely to carry the vertices into hull(), and
|
|
58
|
+
// spheroid(circum=true, style="icosa") goes through it. Dropping those
|
|
59
|
+
// children left the loose triangles to fall through un-hulled, which is
|
|
60
|
+
// what the reference does not do.
|
|
61
|
+
std::vector<manifold::vec3> loosePoints;
|
|
62
|
+
for (const ColoredBody& c : split.displayOnly) {
|
|
63
|
+
if (c.rawMesh) appendVertices(*c.rawMesh, loosePoints);
|
|
64
|
+
}
|
|
65
|
+
|
|
44
66
|
std::optional<ColoredBody> hullResult;
|
|
45
|
-
if (!split.foreground.empty()) {
|
|
67
|
+
if (!split.foreground.empty() || !loosePoints.empty()) {
|
|
46
68
|
std::vector<manifold::Manifold> bodies3d;
|
|
47
69
|
for (const ColoredBody& c : split.foreground) {
|
|
48
70
|
if (c.body) bodies3d.push_back(*c.body);
|
|
49
71
|
}
|
|
50
|
-
if (!
|
|
72
|
+
if (!loosePoints.empty()) {
|
|
73
|
+
// Hulling points and bodies together has to go through the
|
|
74
|
+
// point overload, so the solids contribute their vertices too.
|
|
75
|
+
for (const manifold::Manifold& m : bodies3d)
|
|
76
|
+
appendVertices(m.GetMeshGL(), loosePoints);
|
|
77
|
+
ColoredBody cb;
|
|
78
|
+
cb.body = manifold::Manifold::Hull(loosePoints);
|
|
79
|
+
cb.color = split.foreground.empty() ? split.displayOnly.front().color
|
|
80
|
+
: split.foreground.front().color;
|
|
81
|
+
hullResult = std::move(cb);
|
|
82
|
+
} else if (!bodies3d.empty()) {
|
|
51
83
|
ColoredBody cb;
|
|
52
84
|
cb.body = manifold::Manifold::Hull(bodies3d);
|
|
53
85
|
cb.color = split.foreground.front().color;
|
|
@@ -71,7 +103,10 @@ std::vector<ColoredBody> generateHull(Evaluator&, const CSGParams&, const std::v
|
|
|
71
103
|
result.insert(result.end(), split.background.begin(), split.background.end());
|
|
72
104
|
result.insert(result.end(), split.highlight.begin(), split.highlight.end());
|
|
73
105
|
result.insert(result.end(), split.showOnly.begin(), split.showOnly.end());
|
|
74
|
-
|
|
106
|
+
// Only pass the open meshes through if they were NOT hulled; hull()
|
|
107
|
+
// consumes its children, so re-adding them would draw them twice.
|
|
108
|
+
if (loosePoints.empty())
|
|
109
|
+
result.insert(result.end(), split.displayOnly.begin(), split.displayOnly.end());
|
|
75
110
|
return result;
|
|
76
111
|
}
|
|
77
112
|
|
|
@@ -64,7 +64,13 @@ std::vector<ColoredBody> Evaluator::generateTreeImpl(const std::vector<CSGNode*>
|
|
|
64
64
|
std::vector<CSGNode*> childPtrs;
|
|
65
65
|
childPtrs.reserve(node.children.size());
|
|
66
66
|
for (const std::unique_ptr<CSGNode>& c : node.children) childPtrs.push_back(c.get());
|
|
67
|
+
// Saved and restored rather than left set, exactly as
|
|
68
|
+
// generateWarnEntry is: a sibling generated afterwards is not
|
|
69
|
+
// inside this hull.
|
|
70
|
+
const bool savedInsideHull = insideHull;
|
|
71
|
+
if (node.isBuiltin && node.kind == "hull") insideHull = true;
|
|
67
72
|
generateTreeImpl(childPtrs);
|
|
73
|
+
insideHull = savedInsideHull;
|
|
68
74
|
|
|
69
75
|
applyDimensionRules(node);
|
|
70
76
|
|
|
@@ -314,3 +314,81 @@ TEST(WarningTrace, FromClauseNamesOutermostFrameNotImmediateCaller) {
|
|
|
314
314
|
EXPECT_NE(warning.find("from <string>, line 3"), std::string::npos) << warning;
|
|
315
315
|
EXPECT_EQ(warning.find("from <string>, line 2"), std::string::npos) << warning;
|
|
316
316
|
}
|
|
317
|
+
|
|
318
|
+
// -- hull() over an open mesh ------------------------------------------
|
|
319
|
+
//
|
|
320
|
+
// A convex hull needs only its input's POINTS; whether the mesh that
|
|
321
|
+
// carried them is closed is irrelevant. BOSL2 leans on this hard:
|
|
322
|
+
// hull_points(pts, fast=true) hands polyhedron() a deliberately garbage
|
|
323
|
+
// face list purely as a vehicle for the vertices, and
|
|
324
|
+
// spheroid(circum=true, style="icosa") goes through that path. Treating
|
|
325
|
+
// the open mesh as display-only left the loose triangles to fall out of
|
|
326
|
+
// hull() un-hulled -- the model rendered as a scatter of shards where the
|
|
327
|
+
// reference produced a solid.
|
|
328
|
+
|
|
329
|
+
TEST(HullOpenMesh, HullsThePointsOfAMeshThatDoesNotClose) {
|
|
330
|
+
Evaluated e = evalSrc(
|
|
331
|
+
"pts = [[0,0,0],[10,0,0],[10,10,0],[0,10,0],\n"
|
|
332
|
+
" [0,0,10],[10,0,10],[10,10,10],[0,10,10]];\n"
|
|
333
|
+
"hull() polyhedron(points=pts, faces=[[0,1,2],[3,4,5],[6,7,0]]);\n");
|
|
334
|
+
|
|
335
|
+
ASSERT_EQ(e.bodies.size(), 1u) << "the open mesh must be consumed, not passed through";
|
|
336
|
+
ASSERT_TRUE(e.bodies[0].body.has_value());
|
|
337
|
+
EXPECT_FALSE(e.bodies[0].isDisplayOnly());
|
|
338
|
+
EXPECT_EQ(e.bodies[0].body->Status(), manifold::Manifold::Error::NoError);
|
|
339
|
+
EXPECT_NEAR(e.bodies[0].body->Volume(), 1000.0, 1e-6);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
TEST(HullOpenMesh, AnOpenMeshAndASolidHullTogether) {
|
|
343
|
+
// The solid's own vertices must survive the switch to the point-based
|
|
344
|
+
// hull: hulling only the loose points would silently shrink the result.
|
|
345
|
+
Evaluated e = evalSrc(
|
|
346
|
+
"hull() {\n"
|
|
347
|
+
" polyhedron(points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0]], faces=[[0,1,2]]);\n"
|
|
348
|
+
" translate([0,0,10]) cube(10);\n"
|
|
349
|
+
"}\n");
|
|
350
|
+
|
|
351
|
+
ASSERT_EQ(e.bodies.size(), 1u);
|
|
352
|
+
ASSERT_TRUE(e.bodies[0].body.has_value());
|
|
353
|
+
EXPECT_EQ(e.bodies[0].body->Status(), manifold::Manifold::Error::NoError);
|
|
354
|
+
// Hull of the z=0 square and the 10..20 cube: a prism, strictly larger
|
|
355
|
+
// than the cube alone.
|
|
356
|
+
EXPECT_GT(e.bodies[0].body->Volume(), 1000.0);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
TEST(HullOpenMesh, AnOpenMeshOutsideAHullStillPassesThroughUntouched) {
|
|
360
|
+
Evaluated e = evalSrc(
|
|
361
|
+
"polyhedron(points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0]], faces=[[0,1,2]]);\n");
|
|
362
|
+
|
|
363
|
+
ASSERT_EQ(e.bodies.size(), 1u);
|
|
364
|
+
EXPECT_TRUE(e.bodies[0].isDisplayOnly()) << "only hull() may consume it";
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
TEST(HullOpenMesh, NoWarningForAnOpenMeshInsideAHull) {
|
|
368
|
+
// The reference is silent here, and BOSL2 reaches this on an everyday
|
|
369
|
+
// spheroid(circum=true, style="icosa") -- warning would cry wolf.
|
|
370
|
+
std::string warning;
|
|
371
|
+
evalSrc("hull() polyhedron(points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0],\n"
|
|
372
|
+
" [0,0,10],[10,0,10],[10,10,10],[0,10,10]],\n"
|
|
373
|
+
" faces=[[0,1,2],[3,4,5],[6,7,0]]);\n",
|
|
374
|
+
[&](const std::string& m) { if (warning.empty()) warning = m; });
|
|
375
|
+
EXPECT_EQ(warning, "") << warning;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
TEST(HullOpenMesh, SuppressionCoversTheWholeSubtreeNotJustDirectChildren) {
|
|
379
|
+
std::string warning;
|
|
380
|
+
evalSrc("hull() { translate([0,0,1]) polyhedron(\n"
|
|
381
|
+
" points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0]], faces=[[0,1,2]]); cube(1); }\n",
|
|
382
|
+
[&](const std::string& m) { if (warning.empty()) warning = m; });
|
|
383
|
+
EXPECT_EQ(warning, "") << warning;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
TEST(HullOpenMesh, ASiblingAfterAHullStillWarns) {
|
|
387
|
+
// The flag is restored on the way out; an open mesh that is NOT hulled
|
|
388
|
+
// is still a real mistake.
|
|
389
|
+
std::string warning;
|
|
390
|
+
evalSrc("hull() cube(1);\n"
|
|
391
|
+
"polyhedron(points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0]], faces=[[0,1,2]]);\n",
|
|
392
|
+
[&](const std::string& m) { if (warning.empty()) warning = m; });
|
|
393
|
+
EXPECT_NE(warning.find("mesh is not closed"), std::string::npos) << warning;
|
|
394
|
+
}
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/.github/workflows/wheels.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/examples/minimal_debugger.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/src/text/freetype_font_provider.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_dxf_svg_import.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_python_bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.54.0 → openscad_cpp_evaluator-0.55.0}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|