openscad-cpp-evaluator 1.28.2__tar.gz → 1.28.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-1.28.2 → openscad_cpp_evaluator-1.28.3}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/text_metrics.hpp +5 -1
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/function_builtins.cpp +4 -3
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/text.cpp +2 -1
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/text/text_metrics.cpp +19 -4
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_text.cpp +27 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/uv.lock +1 -1
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/README.md +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tools/cli/main.cpp +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include "openscad_cpp_evaluator/font_provider.hpp"
|
|
4
4
|
|
|
5
|
+
#include <functional>
|
|
5
6
|
#include <string>
|
|
6
7
|
#include <utility>
|
|
7
8
|
#include <vector>
|
|
@@ -44,7 +45,10 @@ TextMeasurement measureText(FontProvider& fp, FontHandle handle, const std::stri
|
|
|
44
45
|
// center/top for a vertical one, as in OpenSCAD; text with no ink is not
|
|
45
46
|
// moved at all. Shared by textmetrics() (reports it) and text()
|
|
46
47
|
// (applies it).
|
|
48
|
+
// `warn`, when given, receives OpenSCAD's own warning for an unknown
|
|
49
|
+
// halign/valign, and for valign="baseline" on a vertical run.
|
|
47
50
|
std::pair<double, double> textAlignOffset(const std::string& halign, const std::string& valign,
|
|
48
|
-
const TextMeasurement& m
|
|
51
|
+
const TextMeasurement& m,
|
|
52
|
+
const std::function<void(const std::string&)>& warn = {});
|
|
49
53
|
|
|
50
54
|
} // namespace oscadeval
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/function_builtins.cpp
RENAMED
|
@@ -782,7 +782,7 @@ Value objectOf(std::vector<std::pair<std::string, Value>> items) {
|
|
|
782
782
|
// descent/offset/advance in real OpenSCAD's key order. Going through the
|
|
783
783
|
// same measureText() the geometry goes through is the point: the numbers
|
|
784
784
|
// a script positions against cannot disagree with what it draws.
|
|
785
|
-
Value builtinTextmetrics(Evaluator& ev, const CallArgs& args) {
|
|
785
|
+
Value builtinTextmetrics(Evaluator& ev, const CallArgs& args, const oscad::Position* pos) {
|
|
786
786
|
const std::string text = asStringOr(getArg(args, 0, "text", Value{std::string("")}), "");
|
|
787
787
|
const double size = toDoubleLenient(getArg(args, 1, "size", Value{10.0}));
|
|
788
788
|
// Positional indices, all of them: OpenSCAD's own signature is
|
|
@@ -804,7 +804,8 @@ Value builtinTextmetrics(Evaluator& ev, const CallArgs& args) {
|
|
|
804
804
|
FontProvider& fp = ev.fontProvider();
|
|
805
805
|
const FontHandle handle = fp.resolveFont(fontSpec);
|
|
806
806
|
const TextMeasurement m = measureText(fp, handle, text, size, spacing, shape);
|
|
807
|
-
const auto [offsetX, offsetY] = textAlignOffset(
|
|
807
|
+
const auto [offsetX, offsetY] = textAlignOffset(
|
|
808
|
+
halign, valign, m, [&](const std::string& w) { ev.warn(w, pos); });
|
|
808
809
|
|
|
809
810
|
return objectOf({
|
|
810
811
|
{"position", numList({offsetX + m.left, offsetY + m.bottom})},
|
|
@@ -1251,7 +1252,7 @@ Value evalBuiltinFunctionResolved(Evaluator& ev, BuiltinFnId id, const std::vect
|
|
|
1251
1252
|
|
|
1252
1253
|
switch (id) {
|
|
1253
1254
|
case BuiltinFnId::None: return Value{}; // unreachable: handled above
|
|
1254
|
-
case BuiltinFnId::TextMetrics: return builtinTextmetrics(ev, args);
|
|
1255
|
+
case BuiltinFnId::TextMetrics: return builtinTextmetrics(ev, args, &node.position());
|
|
1255
1256
|
case BuiltinFnId::FontMetrics: return builtinFontmetrics(ev, args);
|
|
1256
1257
|
case BuiltinFnId::Abs: return Value{std::fabs(toDoubleLenient(getArg(args, 0, "x", Value{})))};
|
|
1257
1258
|
case BuiltinFnId::Sign: {
|
|
@@ -60,7 +60,8 @@ CSGParams resolveText(Evaluator& ev, const oscad::ModularCall& node, EvalContext
|
|
|
60
60
|
const double scale = size * (100.0 / 72.0) / fm.unitsPerEm;
|
|
61
61
|
const int segs = std::max(2, fnSegmentsFromCtx(effCtx) / 2);
|
|
62
62
|
const TextMeasurement m = measureText(fp, handle, text, size, spacing, shape);
|
|
63
|
-
const auto [offsetX, offsetY] = textAlignOffset(
|
|
63
|
+
const auto [offsetX, offsetY] = textAlignOffset(
|
|
64
|
+
halign, valign, m, [&](const std::string& w) { ev.warn(w, &node.position()); });
|
|
64
65
|
|
|
65
66
|
std::vector<Value> glyphs;
|
|
66
67
|
glyphs.reserve(m.glyphs.size());
|
|
@@ -55,24 +55,39 @@ TextMeasurement measureText(FontProvider& fp, FontHandle handle, const std::stri
|
|
|
55
55
|
return m;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
// OpenSCAD's ShapeResults::calc_offsets_horiz/_vert. An
|
|
59
|
-
//
|
|
60
|
-
//
|
|
58
|
+
// OpenSCAD's ShapeResults::calc_offsets_horiz/_vert, warnings included. An
|
|
59
|
+
// unknown value, or valign="baseline" on a vertical run, leaves that axis
|
|
60
|
+
// where it is. Text with no ink never gets this far there, so it never
|
|
61
|
+
// warns either.
|
|
61
62
|
std::pair<double, double> textAlignOffset(const std::string& halign, const std::string& valign,
|
|
62
|
-
const TextMeasurement& m
|
|
63
|
+
const TextMeasurement& m,
|
|
64
|
+
const std::function<void(const std::string&)>& warn) {
|
|
63
65
|
if (!m.hasInk) return {0.0, 0.0};
|
|
66
|
+
auto unknown = [&](const char* param, const char* choices, const std::string& value) {
|
|
67
|
+
if (warn) {
|
|
68
|
+
warn(std::string("Unknown value for the ") + param + " parameter (use " + choices + "): '" + value + "'");
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const char* hChoices = "\"left\", \"right\" or \"center\"";
|
|
72
|
+
const char* vChoices = "\"baseline\", \"bottom\", \"top\" or \"center\"";
|
|
64
73
|
double offsetX = 0.0, offsetY = 0.0;
|
|
65
74
|
if (m.vertical) {
|
|
66
75
|
if (halign == "right") offsetX = -m.right;
|
|
67
76
|
else if (halign == "left") offsetX = -m.left;
|
|
77
|
+
else if (halign != "center" && halign != "default") unknown("halign", hChoices, halign);
|
|
68
78
|
if (valign == "center") offsetY = -m.advanceY / 2;
|
|
69
79
|
else if (valign == "bottom") offsetY = -m.advanceY;
|
|
80
|
+
else if (valign == "baseline") {
|
|
81
|
+
if (warn) warn("Don't use valign=\"baseline\" with vertical layouts");
|
|
82
|
+
} else if (valign != "top" && valign != "default") unknown("valign", vChoices, valign);
|
|
70
83
|
} else {
|
|
71
84
|
if (halign == "center") offsetX = -0.5 * m.advanceX;
|
|
72
85
|
else if (halign == "right") offsetX = -m.advanceX;
|
|
86
|
+
else if (halign != "left" && halign != "default") unknown("halign", hChoices, halign);
|
|
73
87
|
if (valign == "top") offsetY = -m.ascent;
|
|
74
88
|
else if (valign == "center") offsetY = -(m.ascent + m.descent) / 2;
|
|
75
89
|
else if (valign == "bottom") offsetY = -m.descent;
|
|
90
|
+
else if (valign != "baseline" && valign != "default") unknown("valign", vChoices, valign);
|
|
76
91
|
}
|
|
77
92
|
return {offsetX, offsetY};
|
|
78
93
|
}
|
|
@@ -126,6 +126,33 @@ TEST(Textmetrics, VerticalRunAlignsByItsOwnRules) {
|
|
|
126
126
|
EXPECT_NEAR(vec(rb, "offset", 1), 39.1032, 1e-3);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
// OpenSCAD 2026.02.01's warnings, verbatim. Inkless text never reaches
|
|
130
|
+
// its alignment code there, so it does not warn.
|
|
131
|
+
TEST(Text, UnknownAlignmentWarnsAsOpenscadDoes) {
|
|
132
|
+
const std::pair<const char*, std::vector<std::string>> cases[] = {
|
|
133
|
+
{"m = textmetrics(\"ab\", halign=\"middle\");",
|
|
134
|
+
{"Unknown value for the halign parameter (use \"left\", \"right\" or \"center\"): 'middle'"}},
|
|
135
|
+
{"m = textmetrics(\"ab\", valign=\"mid\");",
|
|
136
|
+
{"Unknown value for the valign parameter (use \"baseline\", \"bottom\", \"top\" or \"center\"): 'mid'"}},
|
|
137
|
+
{"m = textmetrics(\"ab\", direction=\"ttb\", valign=\"baseline\");",
|
|
138
|
+
{"Don't use valign=\"baseline\" with vertical layouts"}},
|
|
139
|
+
{"text(\"ab\", direction=\"ttb\", halign=\"x\", valign=\"y\");",
|
|
140
|
+
{"Unknown value for the halign parameter (use \"left\", \"right\" or \"center\"): 'x'",
|
|
141
|
+
"Unknown value for the valign parameter (use \"baseline\", \"bottom\", \"top\" or \"center\"): 'y'"}},
|
|
142
|
+
{"m = textmetrics(\" \", halign=\"bogus\");", {}},
|
|
143
|
+
{"m = textmetrics(\"ab\", halign=\"default\", valign=\"default\");", {}},
|
|
144
|
+
{"m = textmetrics(\"ab\", direction=\"ttb\", valign=\"top\");", {}},
|
|
145
|
+
};
|
|
146
|
+
for (const auto& [src, want] : cases) {
|
|
147
|
+
std::vector<std::string> log;
|
|
148
|
+
evalSrc(src, [&](const std::string& m) { log.push_back(m); });
|
|
149
|
+
ASSERT_EQ(log.size(), want.size()) << src;
|
|
150
|
+
for (size_t i = 0; i < want.size(); ++i) {
|
|
151
|
+
EXPECT_EQ(log[i], "WARNING: " + want[i] + " in file <string>, line 1") << src;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
129
156
|
TEST(Textmetrics, InklessTextIsNotAligned) {
|
|
130
157
|
Evaluator ev;
|
|
131
158
|
Value v = asExpr("textmetrics(\" \", size=10, halign=\"right\")", ev);
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/.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.28.2 → openscad_cpp_evaluator-1.28.3}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/src/text/freetype_font_provider.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/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.28.2 → openscad_cpp_evaluator-1.28.3}/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.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_python_bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.3}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.2 → openscad_cpp_evaluator-1.28.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
|