openscad-cpp-evaluator 1.1.0__tar.gz → 1.2.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-1.1.0 → openscad_cpp_evaluator-1.2.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/booleans.cpp +30 -16
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/csg_generate.cpp +25 -2
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_booleans.cpp +48 -35
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/uv.lock +1 -1
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/README.md +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tools/cli/main.cpp +0 -0
|
@@ -214,7 +214,15 @@ std::vector<ColoredBody> generateCsg(Evaluator& ev, const CSGParams& params, con
|
|
|
214
214
|
: &std::get<ListPtr>(emptyIsAGroupIt->second)->items;
|
|
215
215
|
|
|
216
216
|
std::vector<ColoredBody> allBg, allHi, allSo, allDo;
|
|
217
|
-
|
|
217
|
+
// Two accumulators, one per dimension. union() may legitimately carry
|
|
218
|
+
// both -- `translate(...) { part(); text("label"); }` is how a docs
|
|
219
|
+
// figure annotates a 3D part, and the reference draws both -- and a
|
|
220
|
+
// single optional that switched between body and section is exactly
|
|
221
|
+
// what used to be dereferenced empty when a group changed dimension
|
|
222
|
+
// part-way. difference and intersection still see one dimension only:
|
|
223
|
+
// applyDimensionRules drops the mismatch before it gets here, so for
|
|
224
|
+
// them just one of these is ever populated.
|
|
225
|
+
std::optional<ColoredBody> res3d, res2d;
|
|
218
226
|
size_t idx = 0;
|
|
219
227
|
|
|
220
228
|
size_t stmtIndex = 0;
|
|
@@ -273,50 +281,56 @@ std::vector<ColoredBody> generateCsg(Evaluator& ev, const CSGParams& params, con
|
|
|
273
281
|
// discards while no positive operand has been established yet;
|
|
274
282
|
// union just skips the empty contributor and keeps going.
|
|
275
283
|
if (op == "intersection") {
|
|
276
|
-
|
|
284
|
+
res3d.reset();
|
|
285
|
+
res2d.reset();
|
|
277
286
|
break;
|
|
278
287
|
}
|
|
279
|
-
if (op == "difference" && !
|
|
288
|
+
if (op == "difference" && !res3d && !res2d) break;
|
|
280
289
|
continue;
|
|
281
290
|
}
|
|
282
291
|
|
|
292
|
+
// Each dimension accumulates on its own, so a statement holding
|
|
293
|
+
// both contributes to both rather than the 2D half falling off the
|
|
294
|
+
// end of an if/else.
|
|
283
295
|
if (!bodies3d.empty()) {
|
|
284
296
|
manifold::Manifold grp = *bodies3d.front().body;
|
|
285
297
|
for (size_t i = 1; i < bodies3d.size(); ++i) grp = grp + *bodies3d[i].body;
|
|
286
|
-
if (!
|
|
298
|
+
if (!res3d) {
|
|
287
299
|
ColoredBody cb;
|
|
288
300
|
cb.body = std::move(grp);
|
|
289
301
|
cb.color = bodies3d.front().color;
|
|
290
|
-
|
|
302
|
+
res3d = std::move(cb);
|
|
291
303
|
} else if (op == "union") {
|
|
292
|
-
|
|
304
|
+
res3d->body = *res3d->body + grp;
|
|
293
305
|
} else if (op == "difference") {
|
|
294
|
-
|
|
306
|
+
res3d->body = *res3d->body - grp;
|
|
295
307
|
} else if (op == "intersection") {
|
|
296
|
-
|
|
308
|
+
res3d->body = *res3d->body ^ grp;
|
|
297
309
|
}
|
|
298
|
-
}
|
|
310
|
+
}
|
|
311
|
+
if (!sections2d.empty()) {
|
|
299
312
|
manifold::CrossSection grp = *sections2d.front().section;
|
|
300
313
|
for (size_t i = 1; i < sections2d.size(); ++i) grp = grp + *sections2d[i].section;
|
|
301
|
-
if (!
|
|
314
|
+
if (!res2d) {
|
|
302
315
|
ColoredBody cb;
|
|
303
316
|
cb.section = std::move(grp);
|
|
304
317
|
cb.color = sections2d.front().color;
|
|
305
|
-
|
|
318
|
+
res2d = std::move(cb);
|
|
306
319
|
} else if (op == "union") {
|
|
307
|
-
|
|
320
|
+
res2d->section = *res2d->section + grp;
|
|
308
321
|
} else if (op == "difference") {
|
|
309
|
-
|
|
322
|
+
res2d->section = *res2d->section - grp;
|
|
310
323
|
} else if (op == "intersection") {
|
|
311
|
-
|
|
324
|
+
res2d->section = *res2d->section ^ grp;
|
|
312
325
|
}
|
|
313
326
|
}
|
|
314
327
|
}
|
|
315
328
|
|
|
316
|
-
if (
|
|
329
|
+
if (res3d && res3d->body) attachTriColors(ev, *res3d);
|
|
317
330
|
|
|
318
331
|
std::vector<ColoredBody> result;
|
|
319
|
-
if (
|
|
332
|
+
if (res3d) result.push_back(std::move(*res3d));
|
|
333
|
+
if (res2d) result.push_back(std::move(*res2d));
|
|
320
334
|
result.insert(result.end(), allBg.begin(), allBg.end());
|
|
321
335
|
result.insert(result.end(), allHi.begin(), allHi.end());
|
|
322
336
|
result.insert(result.end(), allSo.begin(), allSo.end());
|
|
@@ -129,6 +129,20 @@ enum class DimRule {
|
|
|
129
129
|
None, // no dimension diagnostics at all
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
+
// Nodes that hand their children on as a list instead of combining them
|
|
133
|
+
// into one result, so a mixed 2D/3D list reaches nothing that has to pick a
|
|
134
|
+
// single dimension. generateTransform and generateColor map over the
|
|
135
|
+
// bodies; generateCsg's union keeps a 3D and a 2D accumulator side by side.
|
|
136
|
+
//
|
|
137
|
+
// difference and intersection are deliberately absent: subtracting or
|
|
138
|
+
// intersecting across dimensions has no meaning, and they still collapse to
|
|
139
|
+
// one result. hull and minkowski likewise build a single hull.
|
|
140
|
+
bool keepsMixedDimensions(const std::string& kind) {
|
|
141
|
+
return kind == "union" || kind == "color" || kind == "translate" ||
|
|
142
|
+
kind == "rotate" || kind == "scale" || kind == "mirror" ||
|
|
143
|
+
kind == "multmatrix" || kind == "resize";
|
|
144
|
+
}
|
|
145
|
+
|
|
132
146
|
DimRule dimRuleFor(const std::string& kind) {
|
|
133
147
|
if (kind == "linear_extrude" || kind == "rotate_extrude" || kind == "offset") return DimRule::Only2D;
|
|
134
148
|
if (kind == "projection") return DimRule::Only3D;
|
|
@@ -168,7 +182,11 @@ void Evaluator::applyDimensionRules(CSGNode& node) {
|
|
|
168
182
|
std::vector<CSGNode*> kids;
|
|
169
183
|
kids.reserve(node.children.size());
|
|
170
184
|
for (const std::unique_ptr<CSGNode>& c : node.children) kids.push_back(c.get());
|
|
171
|
-
|
|
185
|
+
// Only a Group-rule node can keep a mix. linear_extrude and friends take
|
|
186
|
+
// one dimension by definition, so a wrong-dimension child there is still
|
|
187
|
+
// dropped with its warning.
|
|
188
|
+
const bool keepMixed = rule == DimRule::Group && keepsMixedDimensions(node.kind);
|
|
189
|
+
applyDimensionRulesTo(kids, static_cast<int>(rule), keepMixed);
|
|
172
190
|
}
|
|
173
191
|
|
|
174
192
|
// `keepMixed` warns about a mixed group but drops nothing -- the top level's
|
|
@@ -199,7 +217,12 @@ void Evaluator::applyDimensionRulesTo(const std::vector<CSGNode*>& children, int
|
|
|
199
217
|
continue;
|
|
200
218
|
}
|
|
201
219
|
const oscad::Position* pos = child->node ? &child->node->position() : nullptr;
|
|
202
|
-
|
|
220
|
+
// Silent when both are kept: the reference says nothing for
|
|
221
|
+
// `cube(1); square(4);`, `translate(...) { ... }` or `union()
|
|
222
|
+
// { ... }` -- checked by running it -- and a warning here would
|
|
223
|
+
// fail any docs example that legitimately draws a 2D annotation
|
|
224
|
+
// beside a 3D part.
|
|
225
|
+
if (rule == DimRule::Group && !keepMixed && !warnedMixing) {
|
|
203
226
|
warn("Mixing 2D and 3D objects is not supported", pos);
|
|
204
227
|
warnedMixing = true;
|
|
205
228
|
}
|
|
@@ -618,41 +618,53 @@ std::vector<std::string> dimWarnings(const std::string& code) {
|
|
|
618
618
|
}
|
|
619
619
|
} // namespace
|
|
620
620
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
621
|
+
// Both dimensions survive a union or a transform, in either order, because
|
|
622
|
+
// the reference keeps both -- `translate([9,3]) { cube(10); text("hi"); }`
|
|
623
|
+
// renders the cube AND the flat text there, which is how BOSL2's joiners
|
|
624
|
+
// figure annotates a part. Checked by running the reference, not assumed.
|
|
625
|
+
TEST(MixedDimensions, UnionKeepsBothDimensions) {
|
|
626
|
+
for (const char* src : {"union() { cube(1); square(4); }",
|
|
627
|
+
"union() { square(4); cube(1); }"}) {
|
|
628
|
+
Evaluated e = evalSrc(src);
|
|
629
|
+
ASSERT_EQ(e.bodies.size(), 2u) << src;
|
|
630
|
+
const ColoredBody* solid = nullptr;
|
|
631
|
+
const ColoredBody* flat = nullptr;
|
|
632
|
+
for (const ColoredBody& b : e.bodies) {
|
|
633
|
+
if (b.body) solid = &b;
|
|
634
|
+
if (b.section) flat = &b;
|
|
635
|
+
}
|
|
636
|
+
ASSERT_TRUE(solid) << src;
|
|
637
|
+
ASSERT_TRUE(flat) << src;
|
|
638
|
+
EXPECT_NEAR(solid->body->Volume(), 1.0, 1e-9) << src;
|
|
639
|
+
EXPECT_NEAR(flat->section->Area(), 16.0, 1e-9) << src;
|
|
640
|
+
}
|
|
627
641
|
}
|
|
628
642
|
|
|
629
|
-
TEST(MixedDimensions,
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
643
|
+
TEST(MixedDimensions, TransformKeepsBothDimensions) {
|
|
644
|
+
// The transform maps over its bodies rather than combining them, so the
|
|
645
|
+
// mix reaches nothing that has to choose.
|
|
646
|
+
Evaluated e = evalSrc("translate([0,0,0]) { square(4); cube(1); }");
|
|
647
|
+
ASSERT_EQ(e.bodies.size(), 2u);
|
|
634
648
|
}
|
|
635
649
|
|
|
636
|
-
TEST(MixedDimensions,
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
650
|
+
TEST(MixedDimensions, KeepingBothIsSilent) {
|
|
651
|
+
// The reference warns for none of these -- verified by running it.
|
|
652
|
+
EXPECT_TRUE(dimWarnings("union() { square(4); cube(1); }").empty());
|
|
653
|
+
EXPECT_TRUE(dimWarnings("union() { cube(1); square(4); }").empty());
|
|
654
|
+
EXPECT_TRUE(dimWarnings("translate([0,0,0]) { square(4); cube(1); }").empty());
|
|
655
|
+
EXPECT_TRUE(dimWarnings("scale(2) { square(4); cube(1); }").empty());
|
|
656
|
+
EXPECT_TRUE(dimWarnings("color(\"red\") { square(4); cube(1); }").empty());
|
|
657
|
+
EXPECT_TRUE(dimWarnings("for (i = [0:0]) { square(4); cube(1); }").empty());
|
|
658
|
+
EXPECT_TRUE(dimWarnings("if (true) { square(4); cube(1); }").empty());
|
|
643
659
|
}
|
|
644
660
|
|
|
645
|
-
TEST(MixedDimensions,
|
|
661
|
+
TEST(MixedDimensions, CombiningOperationsStillPickOne) {
|
|
662
|
+
// These collapse to a single result, so a mix has no meaning and the
|
|
663
|
+
// odd child is still dropped, with both warnings.
|
|
646
664
|
const std::vector<std::string> expected{"WARNING: Ignoring 3D child object for 2D operation",
|
|
647
665
|
"WARNING: Mixing 2D and 3D objects is not supported"};
|
|
648
|
-
EXPECT_EQ(dimWarnings("
|
|
649
|
-
EXPECT_EQ(dimWarnings("
|
|
650
|
-
EXPECT_EQ(dimWarnings("color(\"red\") { square(4); cube(1); }"), expected);
|
|
651
|
-
// for/if are transparent -- their children land at the top level, so
|
|
652
|
-
// they get the top level's keep-both treatment rather than a group's.
|
|
653
|
-
const std::vector<std::string> topLevel{"WARNING: Mixing 2D and 3D objects is not supported"};
|
|
654
|
-
EXPECT_EQ(dimWarnings("for (i = [0:0]) { square(4); cube(1); }"), topLevel);
|
|
655
|
-
EXPECT_EQ(dimWarnings("if (true) { square(4); cube(1); }"), topLevel);
|
|
666
|
+
EXPECT_EQ(dimWarnings("difference() { square(4); cube(1); }"), expected);
|
|
667
|
+
EXPECT_EQ(dimWarnings("intersection() { square(4); cube(1); }"), expected);
|
|
656
668
|
EXPECT_EQ(dimWarnings("hull() { square(4); cube(1); }"), expected);
|
|
657
669
|
}
|
|
658
670
|
|
|
@@ -678,15 +690,16 @@ TEST(MixedDimensions, RoofWarnsForNeither) {
|
|
|
678
690
|
EXPECT_TRUE(dimWarnings("roof() { square(4); cube(1); }").empty());
|
|
679
691
|
}
|
|
680
692
|
|
|
681
|
-
TEST(MixedDimensions,
|
|
682
|
-
// The top level
|
|
683
|
-
//
|
|
684
|
-
//
|
|
685
|
-
// reference's own preview draws 2D and 3D side by side. Dropping here
|
|
693
|
+
TEST(MixedDimensions, TopLevelKeepsBothDimensionsSilently) {
|
|
694
|
+
// The top level drops NOTHING, and says nothing either: the reference
|
|
695
|
+
// is silent for `square(4); cube(1);` -- verified by running it -- and
|
|
696
|
+
// it draws 2D and 3D side by side in its own preview. Dropping here
|
|
686
697
|
// silently lost the whole of a BOSL2 debug overlay (debug_bezier() of a
|
|
687
|
-
// 2D bezier is entirely 2D) whenever a 3D shape shared the script
|
|
688
|
-
|
|
689
|
-
|
|
698
|
+
// 2D bezier is entirely 2D) whenever a 3D shape shared the script; the
|
|
699
|
+
// warning went when union and the transforms learned to keep both, so
|
|
700
|
+
// that a docs figure annotating a 3D part with 2D text is not reported
|
|
701
|
+
// as a mistake.
|
|
702
|
+
EXPECT_TRUE(dimWarnings("square(4); cube(1);").empty());
|
|
690
703
|
Evaluated e = evalSrc("square(4); cube(1);");
|
|
691
704
|
ASSERT_EQ(e.bodies.size(), 2u);
|
|
692
705
|
EXPECT_TRUE(e.bodies[0].section.has_value()) << "the 2D shape survived";
|
|
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-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/external/openscad_cpp_parser/README.md
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
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/src/builtins/primitives_3d.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
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.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
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_children_separate.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
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_multi_color_merge.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
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.1.0 → openscad_cpp_evaluator-1.2.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
|