openscad-cpp-evaluator 1.49.6__tar.gz → 1.49.8__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.49.6 → openscad_cpp_evaluator-1.49.8}/CMakeLists.txt +4 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/colored_body.hpp +10 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/booleans.cpp +3 -3
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/csg_generate.cpp +1 -1
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/export.cpp +12 -2
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_multi_color_merge.cpp +16 -1
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_profile_time.cpp +2 -2
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_python_bindings.py +7 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/README.md +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/cmake/patch_manifold.cmake +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/LICENSE +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/.DS_Store +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_concurrent_parse.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_profile_time.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/reassign.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/profile_time.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/import/scene_import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/xkcd_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/xkcd_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_discretizer.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_openscad_parity.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_undef_args.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/uv.lock +0 -0
|
@@ -79,6 +79,10 @@ if(MSVC)
|
|
|
79
79
|
# unconditionally (a POSIX extension our code already relies on), so no
|
|
80
80
|
# equivalent is needed there.
|
|
81
81
|
add_compile_definitions(_USE_MATH_DEFINES)
|
|
82
|
+
# Narrow string literals as UTF-8, as every other compiler writes them.
|
|
83
|
+
# Without it MSVC encodes "\u00b5" in the ANSI code page, a lone 0xB5 byte,
|
|
84
|
+
# and profile_time()'s "4.7 µs" failed to decode on reaching Python.
|
|
85
|
+
add_compile_options(/utf-8)
|
|
82
86
|
# /MP: compile a target's source files in parallel. MSBuild's own /m (what
|
|
83
87
|
# `cmake --build -j` passes) runs PROJECTS in parallel but each project's
|
|
84
88
|
# files one at a time, and nearly everything here is one big library, so a
|
|
@@ -45,6 +45,16 @@ inline constexpr std::array<float, 4> kDefaultGeometryColor{0.9f, 0.85f, 0.1f, 1
|
|
|
45
45
|
// geometry colour so a cut reads as a cut.
|
|
46
46
|
inline constexpr std::array<float, 4> kCutFaceColor{157.0f / 255.0f, 203.0f / 255.0f, 81.0f / 255.0f, 1.0f};
|
|
47
47
|
|
|
48
|
+
// What a per-triangle colour array holds for the two colours above, so a
|
|
49
|
+
// renderer can still draw them in its live theme: baking the real values
|
|
50
|
+
// painted every uncoloured difference() yellow and green whatever the
|
|
51
|
+
// theme (BelfrySCAD #884's follow-up). Negative RGB is no colour a script
|
|
52
|
+
// can make; alpha 1 keeps them opaque for a renderer's alpha split.
|
|
53
|
+
// Export writes the real colours in their place (resolveThemeColors), so
|
|
54
|
+
// files are unchanged.
|
|
55
|
+
inline constexpr std::array<float, 4> kThemeBodyColor{-1.0f, -1.0f, -1.0f, 1.0f};
|
|
56
|
+
inline constexpr std::array<float, 4> kThemeCutColor{-2.0f, -2.0f, -2.0f, 1.0f};
|
|
57
|
+
|
|
48
58
|
struct ColoredBody {
|
|
49
59
|
std::optional<manifold::Manifold> body;
|
|
50
60
|
std::optional<std::array<float, 4>> color; // RGBA; nullopt = "no explicit color() -- follow the live theme"
|
|
@@ -214,12 +214,12 @@ void attachTriColors(Evaluator& ev, ColoredBody& cb) {
|
|
|
214
214
|
std::all_of(perRunColor.begin(), perRunColor.end(), [&](const auto& c) { return c == perRunColor.front(); });
|
|
215
215
|
if (allSame) return;
|
|
216
216
|
|
|
217
|
-
std::vector<std::array<float, 4>> triColors(numTris,
|
|
217
|
+
std::vector<std::array<float, 4>> triColors(numTris, kThemeBodyColor);
|
|
218
218
|
for (size_t i = 0; i + 1 < runIdx.size(); ++i) {
|
|
219
219
|
const size_t start = runIdx[i] / 3;
|
|
220
220
|
const size_t end = std::min<size_t>(runIdx[i + 1] / 3, numTris);
|
|
221
221
|
if (start >= numTris) continue;
|
|
222
|
-
const std::array<float, 4> color = perRunColor[i].value_or(
|
|
222
|
+
const std::array<float, 4> color = perRunColor[i].value_or(kThemeBodyColor);
|
|
223
223
|
for (size_t t = start; t < end; ++t) triColors[t] = color;
|
|
224
224
|
}
|
|
225
225
|
cb.triColors = std::move(triColors);
|
|
@@ -458,7 +458,7 @@ std::vector<ColoredBody> generateCsg(Evaluator& ev, const CSGParams& params, con
|
|
|
458
458
|
if (op == "difference" && res3d && !ev.measuring()) {
|
|
459
459
|
for (ColoredBody& c : bodies3d) {
|
|
460
460
|
if (c.color || c.triColors) continue;
|
|
461
|
-
ev.recordRunColors(c,
|
|
461
|
+
ev.recordRunColors(c, kThemeCutColor);
|
|
462
462
|
mixedColors = true;
|
|
463
463
|
}
|
|
464
464
|
}
|
|
@@ -517,7 +517,7 @@ void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::
|
|
|
517
517
|
if (cb.triColors && cb.body) {
|
|
518
518
|
const manifold::MeshGL rebuilt = cb.body->GetMeshGL();
|
|
519
519
|
const size_t numTris = rebuilt.triVerts.size() / 3;
|
|
520
|
-
std::vector<std::array<float, 4>> triColors(numTris, cb.color.value_or(
|
|
520
|
+
std::vector<std::array<float, 4>> triColors(numTris, cb.color.value_or(kThemeBodyColor));
|
|
521
521
|
for (size_t i = 0; i + 1 < rebuilt.runIndex.size() && i < rebuilt.runOriginalID.size(); ++i) {
|
|
522
522
|
auto it = runColor.find(rebuilt.runOriginalID[i]);
|
|
523
523
|
if (it == runColor.end()) continue;
|
|
@@ -459,6 +459,16 @@ std::vector<std::string> mixedDimensionWarnings(const std::vector<ColoredBody>&
|
|
|
459
459
|
return out;
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
+
// A file has no theme: the stand-ins a renderer draws in its theme's colours
|
|
463
|
+
// are written as the colours they stand in for (colored_body.hpp).
|
|
464
|
+
static std::vector<std::array<float, 4>> resolveThemeColors(std::vector<std::array<float, 4>> colors) {
|
|
465
|
+
for (auto& c : colors) {
|
|
466
|
+
if (c == kThemeBodyColor) c = kDefaultGeometryColor;
|
|
467
|
+
else if (c == kThemeCutColor) c = kCutFaceColor;
|
|
468
|
+
}
|
|
469
|
+
return colors;
|
|
470
|
+
}
|
|
471
|
+
|
|
462
472
|
std::vector<ExportObject> splitBodiesForExport(const std::vector<ColoredBody>& bodies, std::vector<int>* openParts,
|
|
463
473
|
bool splitComponents, bool splitColors) {
|
|
464
474
|
struct Solid {
|
|
@@ -492,7 +502,7 @@ std::vector<ExportObject> splitBodiesForExport(const std::vector<ColoredBody>& b
|
|
|
492
502
|
meshToArrays(*cb.rawMesh, obj.verts, obj.tris);
|
|
493
503
|
if (obj.tris.empty()) continue;
|
|
494
504
|
obj.color = cb.color.value_or(kDefaultExportColor);
|
|
495
|
-
if (cb.triColors) obj.triColors = *cb.triColors;
|
|
505
|
+
if (cb.triColors) obj.triColors = resolveThemeColors(*cb.triColors);
|
|
496
506
|
loose.push_back(std::move(obj));
|
|
497
507
|
if (openParts) openParts->push_back(index);
|
|
498
508
|
continue;
|
|
@@ -501,7 +511,7 @@ std::vector<ExportObject> splitBodiesForExport(const std::vector<ColoredBody>& b
|
|
|
501
511
|
Solid s;
|
|
502
512
|
s.man = *cb.body;
|
|
503
513
|
s.color = cb.color;
|
|
504
|
-
if (cb.triColors) s.triColors = *cb.triColors;
|
|
514
|
+
if (cb.triColors) s.triColors = resolveThemeColors(*cb.triColors);
|
|
505
515
|
s.tris = s.man.GetMeshGL().triVerts;
|
|
506
516
|
if (s.tris.empty()) continue;
|
|
507
517
|
solids.push_back(std::move(s));
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_multi_color_merge.cpp
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#include "openscad_cpp_evaluator/evaluator.hpp"
|
|
2
|
+
#include "openscad_cpp_evaluator/export.hpp"
|
|
2
3
|
#include "openscad_cpp_evaluator/manifold_cache.hpp"
|
|
3
4
|
|
|
4
5
|
#include "test_helpers.hpp"
|
|
@@ -73,7 +74,7 @@ TEST(MultiColorCsgMerge, DifferenceCutFaceGetsTheCutGreen) {
|
|
|
73
74
|
const auto distinct = distinctColors(*e.bodies[0].triColors);
|
|
74
75
|
EXPECT_EQ(distinct.size(), 3u);
|
|
75
76
|
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, {0.0f, 1.0f, 1.0f, 0.5f}); }));
|
|
76
|
-
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c,
|
|
77
|
+
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, kThemeCutColor); }));
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
TEST(MultiColorCsgMerge, UncolouredMinuendCutByUncolouredToolStillShowsTheCut) {
|
|
@@ -84,6 +85,20 @@ TEST(MultiColorCsgMerge, UncolouredMinuendCutByUncolouredToolStillShowsTheCut) {
|
|
|
84
85
|
ASSERT_TRUE(e.bodies[0].triColors.has_value());
|
|
85
86
|
const auto distinct = distinctColors(*e.bodies[0].triColors);
|
|
86
87
|
EXPECT_EQ(distinct.size(), 2u);
|
|
88
|
+
// Both are the theme stand-ins, not baked colours, so a renderer can
|
|
89
|
+
// draw them in its live theme rather than always yellow and green.
|
|
90
|
+
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, kThemeCutColor); }));
|
|
91
|
+
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, kThemeBodyColor); }));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
TEST(MultiColorCsgMerge, ExportWritesRealColoursForTheThemeStandIns) {
|
|
95
|
+
// A file has no theme: the stand-ins are written as the colours they
|
|
96
|
+
// replaced, so exports are unchanged.
|
|
97
|
+
Evaluated e = evalSrc("difference() { cube(10); translate([5,5,-1]) cylinder(h=12, d=6, $fn=16); }");
|
|
98
|
+
const std::vector<ExportObject> objs = splitBodiesForExport(e.bodies, nullptr, false, true);
|
|
99
|
+
ASSERT_EQ(objs.size(), 1u);
|
|
100
|
+
const auto distinct = distinctColors(objs[0].triColors);
|
|
101
|
+
EXPECT_EQ(distinct.size(), 2u);
|
|
87
102
|
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, kCutFaceColor); }));
|
|
88
103
|
EXPECT_TRUE(std::any_of(distinct.begin(), distinct.end(), [](const auto& c) { return approxEqual(c, kDefaultGeometryColor); }));
|
|
89
104
|
}
|
|
@@ -133,7 +133,7 @@ TEST(ProfileTime, ExpressionFormRunsUnderTheBytecodeVm) {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
TEST(ProfileTime, UnderAMillisecondIsInMicroseconds) {
|
|
136
|
-
EXPECT_EQ(fmtMs(0.0047), "4.7 \
|
|
137
|
-
EXPECT_EQ(fmtMs(0.5), "500.0 \
|
|
136
|
+
EXPECT_EQ(fmtMs(0.0047), "4.7 \xC2\xB5s"); // UTF-8 bytes, not the literal: MSVC once wrote 0xB5
|
|
137
|
+
EXPECT_EQ(fmtMs(0.5), "500.0 \xC2\xB5s");
|
|
138
138
|
EXPECT_EQ(fmtMs(12.4), "12.40 ms");
|
|
139
139
|
}
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_python_bindings.py
RENAMED
|
@@ -1319,3 +1319,10 @@ def test_export_of_an_empty_model_uses_openscads_words(tmp_path):
|
|
|
1319
1319
|
export_model(str(tmp_path / "empty.stl"), ev.geometry)
|
|
1320
1320
|
with pytest.raises(EvalError, match=r"Current top level object is not a 2D object\."):
|
|
1321
1321
|
export_model(str(tmp_path / "empty.svg"), ev.geometry)
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
def test_profile_time_microseconds_reach_python_as_utf8(tmp_path):
|
|
1325
|
+
"""MSVC without /utf-8 wrote the µ as a lone cp1252 byte, and the echo
|
|
1326
|
+
failed to decode, aborting the script (BelfrySCAD #883's CI)."""
|
|
1327
|
+
out = _echoes(tmp_path, 'x = profile_time("t") 1;\n')
|
|
1328
|
+
assert any("µs" in e or " ms" in e for e in out), out
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/.github/workflows/wheels.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/examples/minimal_debugger.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/external/openscad_cpp_parser/LICENSE
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.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/primitives_3d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/src/builtins/profile_time.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
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/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
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/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
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/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.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_openscad_parity.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.49.6 → openscad_cpp_evaluator-1.49.8}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.49.6 → openscad_cpp_evaluator-1.49.8}/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
|