openscad-cpp-evaluator 1.25.0__tar.gz → 1.26.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.25.0 → openscad_cpp_evaluator-1.26.0}/CLAUDE.md +15 -1
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/colored_body.hpp +9 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/evaluator.hpp +3 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/colored_body.cpp +12 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/csg_generate.cpp +24 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_python_bindings.py +50 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/README.md +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/uv.lock +0 -0
|
@@ -1687,6 +1687,20 @@ the former is worth dragging.
|
|
|
1687
1687
|
A cache hit restamps to the chain reaching the geometry *now*, not the one that
|
|
1688
1688
|
first produced it: a module called twice genuinely is two call chains.
|
|
1689
1689
|
|
|
1690
|
+
**A 2D shape is picked by `ColoredBody::sectionId`.** A `CrossSection` is contours
|
|
1691
|
+
with no run IDs, so a top-level 2D shape had no `idToNode` entry at all: its preview
|
|
1692
|
+
slab got fresh IDs from `Manifold::Extrude` in `toRenderableBodies`, after the table
|
|
1693
|
+
was built, and a click on it mapped to no source (it blocked BelfrySCAD's extrude
|
|
1694
|
+
gizmo, which exists to act on exactly those). Now the generate loop calls
|
|
1695
|
+
`tagSections` after every builtin's `GenerateFn`: any 2D body without an ID gets one
|
|
1696
|
+
reserved from Manifold's counter, attributed to that node. A transform keeps the ID
|
|
1697
|
+
it was given (it edits the body in place), so a 2D shape stays its primitive, as a
|
|
1698
|
+
solid's runs do; an op that builds a *new* section -- a 2D `union()`, `offset()`,
|
|
1699
|
+
`hull()` -- claims it, so the whole union is one pick. `restampCachedIds` restamps it
|
|
1700
|
+
by the solid rule (across renders, to the reused node), `recordRunColors` records its
|
|
1701
|
+
colour, and `toRenderableBodies` rebuilds the slab from a `MeshGL` whose one run
|
|
1702
|
+
carries it. Tested in `tests/test_python_bindings.py` (`_picked_text`).
|
|
1703
|
+
|
|
1690
1704
|
No stored script path is needed to tell the user's file from a library:
|
|
1691
1705
|
`callStack_.front()` is by construction the call made from top level.
|
|
1692
1706
|
|
|
@@ -1695,7 +1709,7 @@ Exposed to Python as `node.call_sites` (innermost-first `_CallFrame`s, each a
|
|
|
1695
1709
|
|
|
1696
1710
|
`Evaluator::measuring_` is set for the whole generate. It suppresses the four
|
|
1697
1711
|
writes that exist solely to describe *drawn* geometry — `idToNode`/`idToColor`/`idToCallChain` in
|
|
1698
|
-
`tagGenerated` and `
|
|
1712
|
+
`tagGenerated`, `tagDisplayOnly` and `tagSections`, the `restampCachedIds` call on a cache hit,
|
|
1699
1713
|
and `cacheProducer_` — because those tables are cleared once per pass, so a leak
|
|
1700
1714
|
is permanent and surfaces later as wrong click-to-source. It also suppresses
|
|
1701
1715
|
`checkDebug`, which would otherwise inject stops at the paused statement's own
|
|
@@ -42,6 +42,15 @@ struct ColoredBody {
|
|
|
42
42
|
std::optional<manifold::CrossSection> section;
|
|
43
43
|
bool flatPreview = false;
|
|
44
44
|
|
|
45
|
+
// The originalID a 2D `section` is picked by. A CrossSection is contours
|
|
46
|
+
// and carries no run IDs, so a 2D shape had no entry in idToNode and a
|
|
47
|
+
// click on its preview slab mapped to no source at all. Reserved from
|
|
48
|
+
// Manifold's own counter (so it cannot collide with a solid's ID) by the
|
|
49
|
+
// generate loop, for the node that built the section -- a primitive, or
|
|
50
|
+
// an op like union() that made a new one; a transform keeps the one it
|
|
51
|
+
// was given. toRenderableBodies() gives the slab this ID.
|
|
52
|
+
std::optional<uint32_t> sectionId;
|
|
53
|
+
|
|
45
54
|
// What a 2D `section` has been transformed BY that a CrossSection
|
|
46
55
|
// cannot itself hold: a translation along Z, a rotation out of the XY
|
|
47
56
|
// plane, anything with a Z component. Applied when
|
|
@@ -283,6 +283,9 @@ public:
|
|
|
283
283
|
// attributes there).
|
|
284
284
|
// Give cached bodies fresh originalIDs so a second call site reusing
|
|
285
285
|
// them is not confused with the first. See its definition.
|
|
286
|
+
// Give every 2D body in `bodies` that has no sectionId yet one of its
|
|
287
|
+
// own, attributed to `node`. See ColoredBody::sectionId.
|
|
288
|
+
void tagSections(std::vector<ColoredBody>& bodies, const oscad::ASTNode& node, uint32_t callChain);
|
|
286
289
|
void restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::ASTNode& node,
|
|
287
290
|
const oscad::ASTNode* producer, uint32_t callChain);
|
|
288
291
|
|
|
@@ -37,6 +37,18 @@ std::vector<ColoredBody> toRenderableBodies(const std::vector<ColoredBody>& bodi
|
|
|
37
37
|
if (!cb.body && cb.section) {
|
|
38
38
|
ColoredBody flat;
|
|
39
39
|
flat.body = manifold::Manifold::Extrude(cb.section->ToPolygons(), kTopLevel2dHeight);
|
|
40
|
+
if (cb.sectionId && !flat.body->IsEmpty()) {
|
|
41
|
+
// One run carrying the section's own ID, so a click on the
|
|
42
|
+
// slab finds the node that built the shape (see
|
|
43
|
+
// ColoredBody::sectionId). Manifold keeps a MeshGL's
|
|
44
|
+
// runOriginalID when it is given one.
|
|
45
|
+
manifold::MeshGL mesh = flat.body->GetMeshGL();
|
|
46
|
+
mesh.runOriginalID = {*cb.sectionId};
|
|
47
|
+
mesh.runIndex = {0, static_cast<uint32_t>(mesh.triVerts.size())};
|
|
48
|
+
mesh.runTransform.clear();
|
|
49
|
+
mesh.faceID.clear();
|
|
50
|
+
flat.body = manifold::Manifold(mesh);
|
|
51
|
+
}
|
|
40
52
|
// Put it back where the transforms a CrossSection could not
|
|
41
53
|
// hold would have placed it -- a Z offset, a rotation out of
|
|
42
54
|
// the plane. See ColoredBody::sectionXform.
|
|
@@ -124,6 +124,7 @@ std::vector<ColoredBody> Evaluator::generateTreeImpl(const std::vector<CSGNode*>
|
|
|
124
124
|
generateWarnEntry = node.warnEntry;
|
|
125
125
|
generateCallChain = node.callChain;
|
|
126
126
|
node.bodies = it->second(*this, node.params, node.children, *node.node);
|
|
127
|
+
if (!measuring_) tagSections(node.bodies, *node.node, node.callChain);
|
|
127
128
|
generateWarnEntry = savedWarnEntry;
|
|
128
129
|
generateCallChain = savedCallChain;
|
|
129
130
|
} else {
|
|
@@ -393,6 +394,16 @@ void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::
|
|
|
393
394
|
// its producer check keeps the first copy's descendants. They occupy
|
|
394
395
|
// the same space, so there is nothing to select apart.
|
|
395
396
|
for (ColoredBody& cb : bodies) {
|
|
397
|
+
// A 2D body's one ID, restamped by the same rule as a solid's runs.
|
|
398
|
+
if (cb.sectionId) {
|
|
399
|
+
const uint32_t fresh = manifold::Manifold::ReserveIDs(1);
|
|
400
|
+
auto old = idToNode.find(*cb.sectionId);
|
|
401
|
+
idToNode[fresh] =
|
|
402
|
+
(old != idToNode.end() && old->second != producer) ? old->second : &node;
|
|
403
|
+
idToCallChain[fresh] = callChain;
|
|
404
|
+
idToColor[fresh] = cb.color;
|
|
405
|
+
cb.sectionId = fresh;
|
|
406
|
+
}
|
|
396
407
|
if (!cb.body || cb.body->IsEmpty()) continue;
|
|
397
408
|
manifold::MeshGL mesh = cb.body->GetMeshGL();
|
|
398
409
|
if (mesh.runOriginalID.empty()) continue;
|
|
@@ -475,6 +486,7 @@ void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::
|
|
|
475
486
|
|
|
476
487
|
|
|
477
488
|
void Evaluator::recordRunColors(ColoredBody& b, const std::optional<std::array<float, 4>>& rgba) {
|
|
489
|
+
if (b.sectionId) idToColor[*b.sectionId] = rgba;
|
|
478
490
|
if (!b.body || bodyIsEmpty(b)) return;
|
|
479
491
|
// A body that is still one original knows its own ID without building
|
|
480
492
|
// a mesh -- the common case, and the cheap one.
|
|
@@ -486,6 +498,18 @@ void Evaluator::recordRunColors(ColoredBody& b, const std::optional<std::array<f
|
|
|
486
498
|
for (uint32_t id : b.body->GetMeshGL().runOriginalID) idToColor[id] = rgba;
|
|
487
499
|
}
|
|
488
500
|
|
|
501
|
+
void Evaluator::tagSections(std::vector<ColoredBody>& bodies, const oscad::ASTNode& node,
|
|
502
|
+
uint32_t callChain) {
|
|
503
|
+
for (ColoredBody& cb : bodies) {
|
|
504
|
+
if (!cb.section || cb.body || cb.sectionId) continue;
|
|
505
|
+
const uint32_t id = manifold::Manifold::ReserveIDs(1);
|
|
506
|
+
idToNode[id] = &node;
|
|
507
|
+
idToColor[id] = cb.color;
|
|
508
|
+
idToCallChain[id] = callChain;
|
|
509
|
+
cb.sectionId = id;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
489
513
|
ColoredBody Evaluator::tagGenerated(manifold::Manifold body, const oscad::ASTNode& node, const Value& colorValue) {
|
|
490
514
|
manifold::MeshGL mesh = body.GetMeshGL();
|
|
491
515
|
std::optional<std::array<float, 4>> color = valueToColor(colorValue);
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_python_bindings.py
RENAMED
|
@@ -1046,3 +1046,53 @@ def test_svg_class_is_feature_detectable(tmp_path):
|
|
|
1046
1046
|
out = []
|
|
1047
1047
|
Evaluator(echo_fn=out.append).evaluate(str(scad), generate=False)
|
|
1048
1048
|
assert "1" in out[0], out
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
def _picked_text(tmp_path, src, cache=None, name="s.scad"):
|
|
1052
|
+
"""What a click on each body would select: the source text its run IDs
|
|
1053
|
+
map to, per body, in body order."""
|
|
1054
|
+
script = tmp_path / name
|
|
1055
|
+
script.write_text(src)
|
|
1056
|
+
ev = Evaluator(manifold_cache=cache) if cache else Evaluator()
|
|
1057
|
+
bodies, id_to_node = ev.evaluate(str(script), {})
|
|
1058
|
+
out = []
|
|
1059
|
+
for b in bodies:
|
|
1060
|
+
ids = [int(i) for i in b.body.to_mesh().run_original_id]
|
|
1061
|
+
out.append([src[id_to_node[i].position.start_offset:id_to_node[i].position.end_offset]
|
|
1062
|
+
if i in id_to_node else None for i in ids])
|
|
1063
|
+
return out
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
def test_a_2d_shape_can_be_picked_back_to_its_source(tmp_path):
|
|
1067
|
+
"""A CrossSection carries no run IDs, so a 2D shape's preview slab used
|
|
1068
|
+
to map to no node at all and could not be selected (BelfrySCAD's
|
|
1069
|
+
extrude gizmo needs exactly that)."""
|
|
1070
|
+
picked = _picked_text(tmp_path, "square(3);\ncircle(4);\n")
|
|
1071
|
+
assert picked == [["square(3);"], ["circle(4);"]]
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
def test_a_transform_keeps_the_2d_shape_it_moved(tmp_path):
|
|
1075
|
+
picked = _picked_text(tmp_path, "translate([10, 0]) circle(4);\n")
|
|
1076
|
+
assert len(picked) == 1 and picked[0][0] is not None
|
|
1077
|
+
assert picked[0][0].startswith("circle(4)") or picked[0][0].startswith("translate")
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
def test_a_2d_union_is_its_own_shape(tmp_path):
|
|
1081
|
+
src = "union() { square(3); circle(4); }\n"
|
|
1082
|
+
assert _picked_text(tmp_path, src) == [[src.strip()]]
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
def test_a_cached_2d_shape_is_picked_as_a_solid_would_be(tmp_path):
|
|
1086
|
+
"""A cache hit restamps IDs; a 2D shape's must follow, or the second
|
|
1087
|
+
render of an unchanged script loses every 2D selection. It follows the
|
|
1088
|
+
same rule a solid's runs do: across renders the old ID is unknown, so it
|
|
1089
|
+
goes to the reused node -- here the whole translate() statement."""
|
|
1090
|
+
def two_renders(src):
|
|
1091
|
+
cache = ManifoldCache()
|
|
1092
|
+
return _picked_text(tmp_path, src, cache), _picked_text(tmp_path, src, cache)
|
|
1093
|
+
|
|
1094
|
+
flat = two_renders("square(3);\ntranslate([10, 0]) circle(4);\n")
|
|
1095
|
+
solid = two_renders("cube(3);\ntranslate([10, 0, 0]) sphere(4);\n")
|
|
1096
|
+
assert all(t is not None for render in flat for body in render for t in body)
|
|
1097
|
+
assert flat[1] == [["square(3);"], ["translate([10, 0]) circle(4);"]]
|
|
1098
|
+
assert solid[1] == [["cube(3);"], ["translate([10, 0, 0]) sphere(4);"]]
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
|
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.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.25.0 → openscad_cpp_evaluator-1.26.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
|