openscad-cpp-evaluator 0.4.1__tar.gz → 0.4.3__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.4.1 → openscad_cpp_evaluator-0.4.3}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/bindings/module.cpp +30 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/python/openscad_cpp_evaluator/__init__.py +4 -1
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_python_bindings.py +40 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/README.md +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/stb_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/text/stb_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/tools/cli/main.cpp +0 -0
|
@@ -109,6 +109,20 @@ nb::object posToPy(const oscad::Position* p) {
|
|
|
109
109
|
return facadeAttr("_Position")(p->line, p->column, p->origin, p->start_offset, p->end_offset);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
// Mirrors the reference's ColoredBody.role string values exactly (minus
|
|
113
|
+
// "highlight_ghost" -- see BodyRole's own ponytail comment in
|
|
114
|
+
// colored_body.hpp for why that 5th, renderer-overlay-only state isn't
|
|
115
|
+
// modeled here yet).
|
|
116
|
+
const char* roleToString(oscadeval::BodyRole role) {
|
|
117
|
+
switch (role) {
|
|
118
|
+
case oscadeval::BodyRole::Highlight: return "highlight";
|
|
119
|
+
case oscadeval::BodyRole::Background: return "background";
|
|
120
|
+
case oscadeval::BodyRole::ShowOnly: return "show_only";
|
|
121
|
+
case oscadeval::BodyRole::Normal:
|
|
122
|
+
default: return "normal";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
112
126
|
// One evaluated body's mesh + attributes, shaped to match what the renderer
|
|
113
127
|
// already reads off a manifold3d mesh (vert_properties (nVert, numProp),
|
|
114
128
|
// tri_verts (nTri, 3), run_original_id (nRun,), run_index (nRun+1,) -- the
|
|
@@ -126,10 +140,26 @@ nb::dict bodyToDict(oscadeval::ColoredBody& cb) {
|
|
|
126
140
|
d["run_index"] = vecToNumpy(std::move(mesh.runIndex), {mesh.runIndex.size()});
|
|
127
141
|
d["num_prop"] = static_cast<int>(numProp);
|
|
128
142
|
d["flat_preview"] = cb.flatPreview;
|
|
143
|
+
d["role"] = roleToString(cb.role);
|
|
129
144
|
if (cb.color)
|
|
130
145
|
d["color"] = nb::make_tuple((*cb.color)[0], (*cb.color)[1], (*cb.color)[2], (*cb.color)[3]);
|
|
131
146
|
else
|
|
132
147
|
d["color"] = nb::none();
|
|
148
|
+
// Per-triangle RGBA, set only for a real multi-color CSG merge (see
|
|
149
|
+
// Evaluator::attachTriColors) -- None for the common single-material
|
|
150
|
+
// case, matching the reference's ColoredBody.tri_colors exactly (an
|
|
151
|
+
// (numTri, 4) float32 array or None). The renderer reads this to split
|
|
152
|
+
// one merged body's triangles across separate opaque/translucent draw
|
|
153
|
+
// buffers.
|
|
154
|
+
if (cb.triColors) {
|
|
155
|
+
const std::vector<std::array<float, 4>>& src = *cb.triColors;
|
|
156
|
+
std::vector<float> flat;
|
|
157
|
+
flat.reserve(src.size() * 4);
|
|
158
|
+
for (const auto& rgba : src) flat.insert(flat.end(), rgba.begin(), rgba.end());
|
|
159
|
+
d["tri_colors"] = vecToNumpy(std::move(flat), {src.size(), 4});
|
|
160
|
+
} else {
|
|
161
|
+
d["tri_colors"] = nb::none();
|
|
162
|
+
}
|
|
133
163
|
return d;
|
|
134
164
|
}
|
|
135
165
|
|
|
@@ -287,6 +287,8 @@ class ColoredBody:
|
|
|
287
287
|
color: Optional[tuple] # RGBA 0-1, or None to follow the theme
|
|
288
288
|
section: object = None # kept for API parity (always None here)
|
|
289
289
|
flat_preview: bool = False
|
|
290
|
+
tri_colors: Optional[object] = None # (numTri, 4) float32 ndarray, real multi-color CSG merges only
|
|
291
|
+
role: str = "normal" # "normal" | "highlight" | "background" | "show_only"
|
|
290
292
|
|
|
291
293
|
|
|
292
294
|
def bodies_from_dicts(body_dicts) -> list:
|
|
@@ -295,7 +297,8 @@ def bodies_from_dicts(body_dicts) -> list:
|
|
|
295
297
|
instances. Shared by Evaluator.evaluate() and a debug session's own live
|
|
296
298
|
partial-render (see debug_evaluate()'s `generate_partial` hook kwarg,
|
|
297
299
|
module.cpp) so both paths convert identically."""
|
|
298
|
-
return [ColoredBody(_BodyShim(d), d["color"], None, d["flat_preview"]
|
|
300
|
+
return [ColoredBody(_BodyShim(d), d["color"], None, d["flat_preview"], d.get("tri_colors"),
|
|
301
|
+
d.get("role", "normal")) for d in body_dicts]
|
|
299
302
|
|
|
300
303
|
|
|
301
304
|
class Evaluator:
|
|
@@ -192,6 +192,46 @@ def test_dyn_explicit_distinguishes_seeded_from_script_assigned():
|
|
|
192
192
|
assert "$fa" not in ev.dyn_explicit
|
|
193
193
|
|
|
194
194
|
|
|
195
|
+
def test_tri_colors_populated_for_a_real_multicolor_csg_merge():
|
|
196
|
+
# Found via BelfrySCAD's own renderer crashing on ColoredBody.tri_colors
|
|
197
|
+
# missing entirely -- the C++ core (Evaluator::attachTriColors,
|
|
198
|
+
# booleans.cpp) already computes this, bodyToDict() just never exposed
|
|
199
|
+
# it. union()-ing an opaque cube with a translucent sphere forces a real
|
|
200
|
+
# merge with two distinct triangle colors.
|
|
201
|
+
path = _write("union() { color([1,0,0,1]) cube(10); "
|
|
202
|
+
"color([0,1,0,0.5]) translate([5,5,5]) sphere(8); }")
|
|
203
|
+
ev = Evaluator()
|
|
204
|
+
bodies, _ = ev.evaluate(path)
|
|
205
|
+
assert len(bodies) == 1
|
|
206
|
+
tri_colors = bodies[0].tri_colors
|
|
207
|
+
assert tri_colors is not None
|
|
208
|
+
num_tris = bodies[0].body.to_mesh().tri_verts.shape[0]
|
|
209
|
+
assert tri_colors.shape == (num_tris, 4)
|
|
210
|
+
# Two distinct colors actually present, not e.g. all-default filler.
|
|
211
|
+
assert len({tuple(row) for row in tri_colors}) >= 2
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def test_tri_colors_is_none_for_an_ordinary_single_color_body():
|
|
215
|
+
path = _write("cube(1);")
|
|
216
|
+
ev = Evaluator()
|
|
217
|
+
bodies, _ = ev.evaluate(path)
|
|
218
|
+
assert len(bodies) == 1
|
|
219
|
+
assert bodies[0].tri_colors is None
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def test_role_defaults_to_normal_and_reflects_modifiers():
|
|
223
|
+
# Found in the same pass as tri_colors: bodyToDict() never exposed
|
|
224
|
+
# ColoredBody.role either, crashing the renderer on any real render
|
|
225
|
+
# (it reads cb.role for every body, not just modified ones).
|
|
226
|
+
path = _write("cube(1);\n#sphere(1);\n%cylinder(h=1,r=1);\n!cube(2);\n")
|
|
227
|
+
ev = Evaluator()
|
|
228
|
+
bodies, _ = ev.evaluate(path)
|
|
229
|
+
roles = sorted(b.role for b in bodies)
|
|
230
|
+
# show_only (!) present anywhere -> only show_only + highlight bodies
|
|
231
|
+
# survive evaluate()'s own filter (see anyShowOnly in csg_resolve.cpp).
|
|
232
|
+
assert roles == ["highlight", "show_only"]
|
|
233
|
+
|
|
234
|
+
|
|
195
235
|
def main():
|
|
196
236
|
tests = [v for k, v in sorted(globals().items()) if k.startswith("test_") and callable(v)]
|
|
197
237
|
failures = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.4.1 → openscad_cpp_evaluator-0.4.3}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/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
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/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
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/src/text/stb_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.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_bytecode_compiler.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-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.1 → openscad_cpp_evaluator-0.4.3}/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-0.4.1 → openscad_cpp_evaluator-0.4.3}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|