ezdxf 1.2.1a0__zip → 1.3.0b0__zip
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.
- {ezdxf-1.2.1a0/src/ezdxf.egg-info → ezdxf-1.3.0b0}/PKG-INFO +1 -1
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/construct.pyx +73 -2
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/frontend.py +97 -53
- ezdxf-1.3.0b0/src/ezdxf/addons/drawing/json.py +590 -0
- ezdxf-1.2.1a0/src/ezdxf/addons/drawing/designer.py → ezdxf-1.3.0b0/src/ezdxf/addons/drawing/pipeline.py +391 -227
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/properties.py +39 -27
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dxf2code.py +3 -1
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/geo.py +10 -40
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/document.py +14 -5
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/lwpolyline.py +4 -4
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mesh.py +2 -2
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/spline.py +2 -3
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/packedtags.py +75 -97
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/tagger.py +19 -35
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/tagwriter.py +32 -43
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_construct.py +87 -1
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_ctypes.py +7 -0
- ezdxf-1.3.0b0/src/ezdxf/revcloud.py +115 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/headervars.py +18 -1
- ezdxf-1.3.0b0/src/ezdxf/select.py +342 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/version.py +2 -2
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0/src/ezdxf.egg-info}/PKG-INFO +1 -1
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/SOURCES.txt +9 -1
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_005_packed_tags.py +28 -28
- ezdxf-1.3.0b0/tests/test_00_dxf_low_level_structs/test_058_json_tags.py +73 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_2.py +26 -27
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_226_spline.py +11 -9
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_228_mesh.py +1 -1
- ezdxf-1.3.0b0/tests/test_05_tools/test_543_select.py +322 -0
- ezdxf-1.3.0b0/tests/test_05_tools/test_544_revcloud.py +43 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_613_is_point_in_polygon_2d.py +7 -5
- ezdxf-1.3.0b0/tests/test_06_math/test_666_wgs84_transform.py +43 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708b_path_tools.py +2 -2
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_803_entities_to_code.py +8 -5
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_810_drawing_properties.py +18 -14
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_811a_drawing_frontend.py +57 -26
- ezdxf-1.3.0b0/tests/test_08_addons/test_826_custom_json_backend.py +98 -0
- ezdxf-1.3.0b0/tests/test_08_addons/test_827_geojson_backend.py +98 -0
- ezdxf-1.2.1a0/tests/test_00_dxf_low_level_structs/test_058_json_tags.py +0 -43
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/LICENSE +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/MANIFEST.in +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/README.md +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/check_disable_c_ext_by_config_file.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/check_disable_c_ext_by_env_var.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/conftest.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/AC1003_LINE_Example.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/ASCII_R12.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/Leica_Disto_S910.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/MODEL.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/PLOTFILE.plt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/POLI-ALL210_12.DXF +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/R12_with_trash_beyond_EOF.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/XRECORD_0.bin +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/XRECORD_1.bin +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/XRECORD_2.bin +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/acad_table_with_blk_ref.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/bin_dxf_r12.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/bin_dxf_r13.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/bin_dxf_r14.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/bin_dxf_r2000.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/cc_dxflib.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/custom_blocks.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/duplicate_handles.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/dxf_unicode.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/dynblks.zip +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/empty_handles.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/groups.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/layout_broken_links.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/layout_broken_links_2.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/layout_missing_block_definition.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/layout_missing_block_record.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/mtext_columns_R2007.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/mtext_columns_R2018.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/mtext_framed_columns.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/mtext_text_frame.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/no_layouts.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/recover01.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/recover02.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/small_r13.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/data/small_r14.dxf +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_acad_table.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_all_dimline_styles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_all_ellipse_transformations.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_anonymous_blocks.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_appsettings.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_audit_critical_dxf_files.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_audit_layouts.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_complex_line_type_2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_create_basic_graphics.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_document_guid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_document_page_setup.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_dxf_info_scanning.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_dynblkhelper.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_entities_iterator.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_fix_dulicate_handles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_geo.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_groups.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_hpgl2_addon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_ignore_junk_beyond_EOF.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_launcher.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_leica_disto_r12.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_load_dxf_unicode_notation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_mapbox_earcut.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_mtext_columns.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_mtext_explode_addon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_mtext_text_frame.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_new_table_entries.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_none_ascii_read_write.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_odafc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_open_R13_R14.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_open_binary_DXF_files.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_open_coord_order_issue.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_open_exotic_dxf_files.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_polyline_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_preserve_binary_data_in_xrecords.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_r12export.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_r12strict.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_r12writer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_read_file_without_handles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_read_write_modern_entites.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_recover.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_redraw_order.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_rotated_block_attributes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_surface_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_write_fixed_meta_data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_write_without_handles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/integration_tests/test_xref_detach.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/pyproject.toml +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/requirements.txt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/setup.cfg +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/setup.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/__main__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/_options.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/bezier3p.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/bezier4p.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/bspline.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/constants.h +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/linetypes.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/mapbox_earcut.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/matrix44.pxd +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/matrix44.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/np_support.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/vector.pxd +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acc/vector.pyx +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/abstract.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/api.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/const.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/dbg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/dxf.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/hdr.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/mesh.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/sab.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/acis/sat.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/acadctb.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/acisbrowser/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/acisbrowser/browser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/acisbrowser/data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/binpacking.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/bookmarks.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/browser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/find_dialog.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/loader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/model.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/reflinks.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/browser/views.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dimlines.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/backend.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/config.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/debug_backend.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/debug_utils.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/dxf.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/file_output.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/gfxproxy.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/hpgl2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/matplotlib.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/mtext_complex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/pymupdf.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/pyqt.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/qtviewer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/recorder.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/svg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/text_renderer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/type_hints.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/drawing/unified_text_renderer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/classes_section.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/const.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/crc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/fileheader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/header_section.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/dwg/loader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/genetic_algorithm.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/gerber_D6673.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/api.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/backend.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/deps.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/interpreter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/page.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/plotter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/polygon_buffer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/properties.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/tokenizer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/hpgl2/viewer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/importer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/iterdxf.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/menger_sponge.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/meshex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/mixins.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/mtextsurrogate.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/mtxpl.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/odafc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/openscad.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/pycsg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/r12export.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/r12writer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/sierpinski_pyramid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/tablepainter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/text2path.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/xplayer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/addons/xqt.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/appsettings.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/audit.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/bbox.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/blkrefs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/colors.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/commands.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/comments.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/disassemble.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/dwginfo.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/dynblkhelper.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/acad_proxy_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/acad_table.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/acad_xrec_roundtrip.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/acis.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/appdata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/appid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/arc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/attrib.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/block.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/blockrecord.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/boundary_paths.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/circle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/copy.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dictionary.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dimstyle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dimstyleoverride.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfclass.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfentity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfgfx.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfgroups.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfns.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/dxfobj.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/ellipse.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/factory.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/geodata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/gradient.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/hatch.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/helix.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/idbuffer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/image.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/insert.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/layer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/leader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/light.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/line.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/ltype.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/material.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mleader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mpolygon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mtext.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/mtext_columns.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/objectcollection.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/oleframe.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/pattern.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/point.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/polygon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/polyline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/shape.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/solid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/spatial_filter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/subentity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/sun.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/table.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/textstyle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/tolerance.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/ucs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/underlay.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/view.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/viewport.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/visualstyle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/vport.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/xdata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/xdict.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entities/xline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/entitydb.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/enums.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/explode.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/eztypes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/filemanagement.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/font_face.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/font_manager.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/font_measurements.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/font_synonyms.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/fonts.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/glyphs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/lff.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/shapefile.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/fonts/ttfonts.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/gfxattribs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/graphicsfactory.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/groupby.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/layouts/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/layouts/base.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/layouts/blocklayout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/layouts/layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/layouts/layouts.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/attributes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/const.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/encoding.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/extendedtags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/fileindex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/hdrvars.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/loader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/repair.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/types.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/lldxf/validator.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_bezier3p.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_bezier4p.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_bspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_mapbox_earcut.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_matrix44.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/_vector.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/arc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/bbox.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/bezier.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/bezier_interpolation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/box.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/bspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/bulge.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/circle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/clipping.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/clustering.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/construct2d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/construct3d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/cspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/curvetools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/ellipse.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/eulerspiral.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/legacy.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/linalg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/line.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/offset2d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/parametrize.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/perlin.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/polyline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/rtree.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/shape.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/transformtools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/triangulation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/math/ucs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/npshapes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/commands.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/converter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/nesting.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/path.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/shapes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/path/tools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/protocols.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/proxygraphic.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/py.typed +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/query.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/queryparser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/r12strict.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/recover.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/_linetypes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/abstract_mtext_renderer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/arrows.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/curves.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_base.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_curved.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_diameter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_linear.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_ordinate.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dim_radius.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/forms.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/hatching.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/leader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/linetypes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/mesh.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/mleader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/mline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/point.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/polyline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/r12spline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/render/trace.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/reorder.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/16x16.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/24x24.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/256x256.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/32x32.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/48x48.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/64x64.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-copy-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-find-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-goto-bookmark-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-goto-handle-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-goto-line-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-left-arrow-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-next-entity-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-prev-entity-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-right-arrow-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-show-in-tree-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/resources/icon-store-bookmark-64px.png +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/acdsdata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/blocks.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/classes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/header.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/objects.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/table.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/sections/tables.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/__init__.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/_iso_pattern.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/analyze.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/binarydata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/clipping_portal.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/codepage.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/complex_ltype.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/crypt.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/debug.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/difftags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/handle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/indexing.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/juliandate.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/pattern.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/rawloader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/standards.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/strip.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/test.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/text_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/text_size.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/tools/zipmanager.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/transform.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/units.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/upright.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/urecord.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/xclip.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/xref.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf/zoom.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/dependency_links.txt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/entry_points.txt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/not-zip-safe +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/requires.txt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/src/ezdxf.egg-info/top_level.txt +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/conftest.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_001_dxf_types.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_004_dxf_value.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_010_binary_data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_011_codepage.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_012_crypt.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_013_juliandate.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_016_encoding.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_018_handle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_024_render_tag.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_040_tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_041_group_tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_042_tags_loader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_050_extended_tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_052_tag_writer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_054_dxfattr.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_055_recover_loader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_101_dxfnamespace.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_102_appdata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_103_reactors.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_104_extension_dict.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_105_xdata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_110_dxfentity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_112a_dxfgfx.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_112b_dxfobj.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_113_dxfclass.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_114_factory.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_115_new_empty_drawing.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_116_dictionary.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_117_layer_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_118_appid_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_119_ucs_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_120_style_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_121_ltype_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_122_vport_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_123_view_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_125_image_def.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_126_image_def_reactor.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_127_raster_variables.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_128_pdf_definition.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_129_xrecord.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_130_id_buffer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_131_field_list.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_132_layer_filter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_133_sun.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_134_material.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_135_geo_data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_136_vba_project.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_137_sortentstable.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_138_setup_visual_styles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_139_user_record.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_140_block_record.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_141_layer_vp_override.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_142_copy_strategy.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_143_spatial_filter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/conftest.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_200_line.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_201_point.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_202_circle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_203_arc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_204_shape.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_205_solid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_206_text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_207_attdef.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_208_attrib.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_209_vertex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_210_polyline_1.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_210_polyline_2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_210_polyline_explode.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_211_viewport.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_212_insert.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_213_minsert.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_214_block.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_215_dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_216_dimlines_R12.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_217_dimlines_R2000.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_1.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_3.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_221_ellipse.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_222_xline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_223_ray.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_224_group.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_225_mtext.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_227_mesh_packed_data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_229b_hatch_extended.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_229c_hatch_transformations.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_231_underlay.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_231_underlay_2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_232_acis.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_232_acis_2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_232_surface.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_233_helix.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_234_light.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_235_leader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_236_multileader.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_237_mline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_238_tolerance.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_239_proxy_graphic.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_240_arc_dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_241_hyperlink.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_242_random_transform.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_243_replace_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_244_large_radial_dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_245_wipeout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_246_spline_audit.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_248_mpolygon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_249_boundary_paths.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_251_upright.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_253_ole2frame.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_02_dxf_graphics/test_254_get_font_name.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_300_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_302_block_references.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_303_auto_block_references.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_304_new_entity_space.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_306_copy_linked_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_307_groupby.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_308_query.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_309_query_parser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_311_add_foreign_entity.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_312_virtual_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_03_dxf_layouts/test_313_redraw_order.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_401_headersection.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_402_classessection.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_403_entity_database.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_404a_tables.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_404b_object_collections.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_405_classes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_406_blocks_section.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_407_entity_section.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_408_objects_section.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_409_create_objects.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_410_table.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_411_acds_data.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_412_rename_layer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_415_layout_management.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_416a_disassemble.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_417_bbox.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_418_copy_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_421_new_drawings.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_422_drawing_object.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_424_audit.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_427_appsettings.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_04_dxf_high_level_structs/test_429_xclip.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/conftest.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_500_units.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_501_truecolor.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_502_raw_color.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_503_indexing.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_504_suppress_zeros.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_506_version.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_508_read_zip.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_509_comments.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_510_byte_stream.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_511_bit_stream.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_512_pattern.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_513_reorder_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_514_text.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_515a_fonts_truetype.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_515b_fonts_shapefiles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_515c_fonts_lff.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_516_zoom.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_517_text_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_518_header_guid.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_519_mtext_editor.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_520_mtext_context.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_521_mtext_parser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_522_text_scanner.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_523_text_size.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_524_block_reference_manager.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_525_transparency.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_526_explode.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_527_gfxattribs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_528_difftags.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_529_acis_sat.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_530_acis_sab.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_531_acis_entities.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_532_acis_mesh.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_533_shapefiles.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_534_dwg_info.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_535_xref_basic.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_536_xref_conflict.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_537_transform.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_538_scale_mtext_inline_commands.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_539_npshapes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_540_lff_parser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_541_clipping_portal.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_05_tools/test_542_itertools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/conftest.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_600_base.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_601_bulge.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_602_vec3.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_603_vec2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_604_banded_matrix.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_604_linalg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_605_matrix44.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_606_convexhull.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_607_perlin_noise.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_608_intersection_line_line_2d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_609_point_on_line.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_610_ocs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_611_ucs.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_612_ucs_pass_trough.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_614_construct_3d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_615_rytz_axis.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_616_plane.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_617_clockwise_orientation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_618_clipping.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_619_greiner_hormann.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_620_knot.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_621_bspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_622_bsplineu.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_623_rbspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_624_global_bspline_interpolation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_626_local_bspline_interpolation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_627_bspline_basis.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_629_bezier.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_630a_bezier4p_base.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_630b_bezier4p_functions.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_631_euler_spiral.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_632_bezier3p.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_640_bbox.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_641_construction_ray.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_642_construction_line.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_643_construction_box.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_644_construction_circle.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_645_construction_arc.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_646_offset_vertices_2d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_647_transform_tools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_648_construction_ellipse.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_650_elliptic_arc_span.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_651_construction_polyline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_652_approx_param_t.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_653_polyline_intersection.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_654_rtree.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_655_dbscan.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_656_k_means.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_657_mapbox_earcut.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_658_bevel_tools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_659_intersection_line_polygon_3d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_660_intersection_ray_polygon_3d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_661_is_face_normal_pointing_outwards.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_662_is_convex_polygon_2d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_663_is_axes_aligned_rectange.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_664_concave_clipping_polygon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_06_math/test_665_inverted_clipping_polygon.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_701_arrows.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_702_render_forms.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_703_mesh_builder.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_704_render_linear_dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_705_shape.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_706_random_path.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_707_trace.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708a_path.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708c_matplotlib_path_tools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708d_qpainter_path_tools.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708e_path_shapes.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_708f_path_nesting.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_709_linetype_renderer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_711_points.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_712_render_curved_dimension.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_713_mleader_builder.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_714_mleader_render_engine.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_715_hatching.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_07_render/test_715_issue_747_explode_3d_dim.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_800_mtext_surrogate.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_801_r12spline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_802_table_painter.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_804_importer.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_805_pycsg.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_806_acadctb.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_807_dwg_loader_basics.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_811b_drawing_recorder.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_811c_viewport_processing.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_812_drawing_graphic_proxy.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_813_geo_interface.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_814_text2path.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_815_dxf_browser.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_816_bin_packing.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_817_genetic_algorithm.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_818_meshex.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_819_menger_sponge.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_820_openscad.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_821_hpgl2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_821_hpgl2_polygon_encoded.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_823_drawing_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_824_svg_drawing_backend.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_08_addons/test_825_hpgl2_drawing_backend.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_901_acc_vec2.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_902_acc_vec3.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_903_acc_matrix44.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_904_acc_bezier4p.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_905_acc_bezier3p.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_09_cython_acceleration/test_906_acc_bspline.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_414_bbox_calculation.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_557_reload_dimension_text_style.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_574_flattening_error.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_749_text_layout.py +0 -0
- {ezdxf-1.2.1a0 → ezdxf-1.3.0b0}/tests/test_10_issues/test_issue_873_circle_inverted_normal.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Copyright (c) 2020-2024, Manfred Moitzi
|
|
3
3
|
# License: MIT License
|
|
4
4
|
from typing import Iterable, TYPE_CHECKING, Sequence, Optional
|
|
5
|
-
from libc.math cimport fabs
|
|
5
|
+
from libc.math cimport fabs, M_PI, M_PI_2, M_PI_4, M_E, sin, tan, pow, atan, log
|
|
6
6
|
from .vector cimport (
|
|
7
7
|
isclose,
|
|
8
8
|
Vec2,
|
|
@@ -285,4 +285,75 @@ def is_point_in_polygon_2d(
|
|
|
285
285
|
return 1 # inside polygon
|
|
286
286
|
else:
|
|
287
287
|
return -1 # outside polygon
|
|
288
|
-
|
|
288
|
+
|
|
289
|
+
cdef double WGS84_SEMI_MAJOR_AXIS = 6378137
|
|
290
|
+
cdef double WGS84_SEMI_MINOR_AXIS = 6356752.3142
|
|
291
|
+
cdef double WGS84_ELLIPSOID_ECCENTRIC = 0.08181919092890624
|
|
292
|
+
cdef double RADIANS = M_PI / 180.0
|
|
293
|
+
cdef double DEGREES = 180.0 / M_PI
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
def gps_to_world_mercator(double longitude, double latitude) -> tuple[float, float]:
|
|
297
|
+
"""Transform GPS (long/lat) to World Mercator.
|
|
298
|
+
|
|
299
|
+
Transform WGS84 `EPSG:4326 <https://epsg.io/4326>`_ location given as
|
|
300
|
+
latitude and longitude in decimal degrees as used by GPS into World Mercator
|
|
301
|
+
cartesian 2D coordinates in meters `EPSG:3395 <https://epsg.io/3395>`_.
|
|
302
|
+
|
|
303
|
+
Args:
|
|
304
|
+
longitude: represents the longitude value (East-West) in decimal degrees
|
|
305
|
+
latitude: represents the latitude value (North-South) in decimal degrees.
|
|
306
|
+
|
|
307
|
+
"""
|
|
308
|
+
# From: https://epsg.io/4326
|
|
309
|
+
# EPSG:4326 WGS84 - World Geodetic System 1984, used in GPS
|
|
310
|
+
# To: https://epsg.io/3395
|
|
311
|
+
# EPSG:3395 - World Mercator
|
|
312
|
+
# Source: https://gis.stackexchange.com/questions/259121/transformation-functions-for-epsg3395-projection-vs-epsg3857
|
|
313
|
+
longitude = longitude * RADIANS # east
|
|
314
|
+
latitude = latitude * RADIANS # north
|
|
315
|
+
cdef double e_sin_lat = sin(latitude) * WGS84_ELLIPSOID_ECCENTRIC
|
|
316
|
+
cdef double c = pow(
|
|
317
|
+
(1.0 - e_sin_lat) / (1.0 + e_sin_lat), WGS84_ELLIPSOID_ECCENTRIC / 2.0
|
|
318
|
+
) # 7-7 p.44
|
|
319
|
+
y = WGS84_SEMI_MAJOR_AXIS * log(tan(M_PI_4 + latitude / 2.0) * c) # 7-7 p.44
|
|
320
|
+
x = WGS84_SEMI_MAJOR_AXIS * longitude
|
|
321
|
+
return x, y
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
def world_mercator_to_gps(double x, double y, double tol = 1e-6) -> tuple[float, float]:
|
|
325
|
+
"""Transform World Mercator to GPS.
|
|
326
|
+
|
|
327
|
+
Transform WGS84 World Mercator `EPSG:3395 <https://epsg.io/3395>`_
|
|
328
|
+
location given as cartesian 2D coordinates x, y in meters into WGS84 decimal
|
|
329
|
+
degrees as longitude and latitude `EPSG:4326 <https://epsg.io/4326>`_ as
|
|
330
|
+
used by GPS.
|
|
331
|
+
|
|
332
|
+
Args:
|
|
333
|
+
x: coordinate WGS84 World Mercator
|
|
334
|
+
y: coordinate WGS84 World Mercator
|
|
335
|
+
tol: accuracy for latitude calculation
|
|
336
|
+
|
|
337
|
+
"""
|
|
338
|
+
# From: https://epsg.io/3395
|
|
339
|
+
# EPSG:3395 - World Mercator
|
|
340
|
+
# To: https://epsg.io/4326
|
|
341
|
+
# EPSG:4326 WGS84 - World Geodetic System 1984, used in GPS
|
|
342
|
+
# Source: Map Projections - A Working Manual
|
|
343
|
+
# https://pubs.usgs.gov/pp/1395/report.pdf
|
|
344
|
+
cdef double eccentric_2 = WGS84_ELLIPSOID_ECCENTRIC / 2.0
|
|
345
|
+
cdef double t = pow(M_E, (-y / WGS84_SEMI_MAJOR_AXIS)) # 7-10 p.44
|
|
346
|
+
cdef double e_sin_lat, latitude, latitude_prev
|
|
347
|
+
|
|
348
|
+
latitude_prev = M_PI_2 - 2.0 * atan(t) # 7-11 p.45
|
|
349
|
+
while True:
|
|
350
|
+
e_sin_lat = sin(latitude_prev) * WGS84_ELLIPSOID_ECCENTRIC
|
|
351
|
+
latitude = M_PI_2 - 2.0 * atan(
|
|
352
|
+
t * pow(((1.0 - e_sin_lat) / (1.0 + e_sin_lat)), eccentric_2)
|
|
353
|
+
) # 7-9 p.44
|
|
354
|
+
if fabs(latitude - latitude_prev) < tol:
|
|
355
|
+
break
|
|
356
|
+
latitude_prev = latitude
|
|
357
|
+
|
|
358
|
+
longitude = x / WGS84_SEMI_MAJOR_AXIS # 7-12 p.45
|
|
359
|
+
return longitude * DEGREES, latitude * DEGREES
|
|
@@ -91,12 +91,13 @@ from ezdxf import xclip
|
|
|
91
91
|
from .type_hints import Color
|
|
92
92
|
|
|
93
93
|
if TYPE_CHECKING:
|
|
94
|
-
from .
|
|
94
|
+
from .pipeline import AbstractPipeline
|
|
95
95
|
|
|
96
96
|
__all__ = ["Frontend", "UniversalFrontend"]
|
|
97
97
|
|
|
98
|
+
TEntityFunc: TypeAlias = Callable[[DXFGraphic, Properties], None]
|
|
99
|
+
TDispatchTable: TypeAlias = Dict[str, TEntityFunc]
|
|
98
100
|
|
|
99
|
-
TDispatchTable: TypeAlias = Dict[str, Callable[[DXFGraphic, Properties], None]]
|
|
100
101
|
POST_ISSUE_MSG = (
|
|
101
102
|
"Please post sample DXF file at https://github.com/mozman/ezdxf/issues."
|
|
102
103
|
)
|
|
@@ -125,7 +126,7 @@ class UniversalFrontend:
|
|
|
125
126
|
def __init__(
|
|
126
127
|
self,
|
|
127
128
|
ctx: RenderContext,
|
|
128
|
-
|
|
129
|
+
pipeline: AbstractPipeline,
|
|
129
130
|
config: Configuration = Configuration(),
|
|
130
131
|
bbox_cache: Optional[ezdxf.bbox.Cache] = None,
|
|
131
132
|
):
|
|
@@ -133,10 +134,10 @@ class UniversalFrontend:
|
|
|
133
134
|
# specific DXF document.
|
|
134
135
|
self.ctx = ctx
|
|
135
136
|
# the designer is the connection between frontend and backend
|
|
136
|
-
self.
|
|
137
|
-
|
|
137
|
+
self.pipeline = pipeline
|
|
138
|
+
pipeline.set_draw_entities_callback(self.draw_entities_callback)
|
|
138
139
|
self.config = ctx.update_configuration(config)
|
|
139
|
-
|
|
140
|
+
pipeline.set_config(self.config)
|
|
140
141
|
|
|
141
142
|
if self.config.pdsize is None or self.config.pdsize <= 0:
|
|
142
143
|
self.log_message("relative point size is not supported")
|
|
@@ -164,9 +165,13 @@ class UniversalFrontend:
|
|
|
164
165
|
# time.
|
|
165
166
|
self._bbox_cache = bbox_cache
|
|
166
167
|
|
|
168
|
+
# Entity property override function stack:
|
|
169
|
+
self._property_override_functions: list[TEntityFunc] = []
|
|
170
|
+
self.push_property_override_function(self.override_properties)
|
|
171
|
+
|
|
167
172
|
@property
|
|
168
173
|
def text_engine(self):
|
|
169
|
-
return self.
|
|
174
|
+
return self.pipeline.text_engine
|
|
170
175
|
|
|
171
176
|
def _build_dispatch_table(self) -> TDispatchTable:
|
|
172
177
|
dispatch_table: TDispatchTable = {
|
|
@@ -201,15 +206,55 @@ class UniversalFrontend:
|
|
|
201
206
|
"""Called for skipped entities - override to alter behavior."""
|
|
202
207
|
self.log_message(f'skipped entity {str(entity)}. Reason: "{msg}"')
|
|
203
208
|
|
|
209
|
+
def exec_property_override(
|
|
210
|
+
self, entity: DXFGraphic, properties: Properties
|
|
211
|
+
) -> None:
|
|
212
|
+
"""Execute entity property override functions. (internal API)"""
|
|
213
|
+
for override_fn in self._property_override_functions:
|
|
214
|
+
override_fn(entity, properties)
|
|
215
|
+
|
|
204
216
|
def override_properties(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
205
|
-
"""
|
|
206
|
-
|
|
217
|
+
"""This method can change the resolved properties of an DXF entity.
|
|
218
|
+
|
|
219
|
+
The method has access to the DXF entity attributes, the current render context
|
|
220
|
+
and the resolved properties. It is recommended to modify only the resolved
|
|
221
|
+
`properties` in this method, because the DXF entities are not copies - except
|
|
222
|
+
for virtual entities.
|
|
223
|
+
|
|
224
|
+
.. versionchanged:: 1.3.0
|
|
225
|
+
|
|
226
|
+
This method is the first function in the stack of new property override
|
|
227
|
+
functions. It is possible to push additional override functions onto this
|
|
228
|
+
stack, see also :meth:`push_property_override_function`.
|
|
229
|
+
|
|
230
|
+
"""
|
|
231
|
+
|
|
232
|
+
def push_property_override_function(self, override_fn: TEntityFunc) -> None:
|
|
233
|
+
"""The override function can change the resolved properties of an DXF entity.
|
|
234
|
+
|
|
235
|
+
The override function has access to the DXF entity attributes and the resolved
|
|
236
|
+
properties. It is recommended to modify only the resolved `properties` in this
|
|
237
|
+
function, because the DXF entities are not copies - except for virtual entities.
|
|
238
|
+
|
|
239
|
+
The override functions are called after resolving the DXF attributes of an entity
|
|
240
|
+
and before the :meth:`Frontend.draw_entity` method in the order from first to
|
|
241
|
+
last.
|
|
242
|
+
|
|
243
|
+
.. versionadded:: 1.3.0
|
|
244
|
+
|
|
245
|
+
"""
|
|
246
|
+
self._property_override_functions.append(override_fn)
|
|
247
|
+
|
|
248
|
+
def pop_property_override_function(self) -> None:
|
|
249
|
+
"""Remove the last function from the property override stack.
|
|
250
|
+
|
|
251
|
+
Does not raise an exception if the override stack is empty.
|
|
252
|
+
|
|
253
|
+
.. versionadded:: 1.3.0
|
|
207
254
|
|
|
208
|
-
This filter has access to the DXF attributes by the `entity` object,
|
|
209
|
-
the current render context, and the resolved properties by the
|
|
210
|
-
`properties` object. It is recommended to modify only the `properties`
|
|
211
|
-
object in this filter.
|
|
212
255
|
"""
|
|
256
|
+
if self._property_override_functions:
|
|
257
|
+
self._property_override_functions.pop()
|
|
213
258
|
|
|
214
259
|
def draw_layout(
|
|
215
260
|
self,
|
|
@@ -239,7 +284,6 @@ class UniversalFrontend:
|
|
|
239
284
|
|
|
240
285
|
"""
|
|
241
286
|
if layout_properties is not None:
|
|
242
|
-
# TODO: this does not work, layer properties have to be re-evaluated!
|
|
243
287
|
self.ctx.current_layout_properties = layout_properties
|
|
244
288
|
else:
|
|
245
289
|
self.ctx.set_current_layout(layout)
|
|
@@ -258,7 +302,7 @@ class UniversalFrontend:
|
|
|
258
302
|
filter_func=filter_func,
|
|
259
303
|
)
|
|
260
304
|
if finalize:
|
|
261
|
-
self.
|
|
305
|
+
self.pipeline.finalize()
|
|
262
306
|
|
|
263
307
|
def set_background(self, color: Color) -> None:
|
|
264
308
|
policy = self.config.background_policy
|
|
@@ -279,7 +323,7 @@ class UniversalFrontend:
|
|
|
279
323
|
color = self.config.custom_bg_color
|
|
280
324
|
if override:
|
|
281
325
|
self.ctx.current_layout_properties.set_colors(color)
|
|
282
|
-
self.
|
|
326
|
+
self.pipeline.set_background(color)
|
|
283
327
|
|
|
284
328
|
def draw_entities(
|
|
285
329
|
self,
|
|
@@ -306,10 +350,10 @@ class UniversalFrontend:
|
|
|
306
350
|
properties: resolved entity properties
|
|
307
351
|
|
|
308
352
|
"""
|
|
309
|
-
self.
|
|
353
|
+
self.pipeline.enter_entity(entity, properties)
|
|
310
354
|
if not entity.is_virtual:
|
|
311
355
|
# top level entity
|
|
312
|
-
self.
|
|
356
|
+
self.pipeline.set_current_entity_handle(entity.dxf.handle)
|
|
313
357
|
if (
|
|
314
358
|
entity.proxy_graphic
|
|
315
359
|
and self.config.proxy_graphic_policy == ProxyGraphicPolicy.PREFER
|
|
@@ -340,22 +384,22 @@ class UniversalFrontend:
|
|
|
340
384
|
else:
|
|
341
385
|
self.skip_entity(entity, "unsupported")
|
|
342
386
|
|
|
343
|
-
self.
|
|
387
|
+
self.pipeline.exit_entity(entity)
|
|
344
388
|
|
|
345
389
|
def draw_line_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
346
390
|
d, dxftype = entity.dxf, entity.dxftype()
|
|
347
391
|
if dxftype == "LINE":
|
|
348
|
-
self.
|
|
392
|
+
self.pipeline.draw_line(d.start, d.end, properties)
|
|
349
393
|
|
|
350
394
|
elif dxftype in ("XLINE", "RAY"):
|
|
351
395
|
start = d.start
|
|
352
396
|
delta = d.unit_vector * self.config.infinite_line_length
|
|
353
397
|
if dxftype == "XLINE":
|
|
354
|
-
self.
|
|
398
|
+
self.pipeline.draw_line(
|
|
355
399
|
start - delta / 2, start + delta / 2, properties
|
|
356
400
|
)
|
|
357
401
|
elif dxftype == "RAY":
|
|
358
|
-
self.
|
|
402
|
+
self.pipeline.draw_line(start, start + delta, properties)
|
|
359
403
|
else:
|
|
360
404
|
raise TypeError(dxftype)
|
|
361
405
|
|
|
@@ -373,7 +417,7 @@ class UniversalFrontend:
|
|
|
373
417
|
def get_font_face(self, properties: Properties) -> fonts.FontFace:
|
|
374
418
|
font_face = properties.font
|
|
375
419
|
if font_face is None:
|
|
376
|
-
return self.
|
|
420
|
+
return self.pipeline.default_font_face
|
|
377
421
|
return font_face
|
|
378
422
|
|
|
379
423
|
def draw_text_entity_2d(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
@@ -381,7 +425,7 @@ class UniversalFrontend:
|
|
|
381
425
|
for line, transform, cap_height in simplified_text_chunks(
|
|
382
426
|
entity, self.text_engine, font_face=self.get_font_face(properties)
|
|
383
427
|
):
|
|
384
|
-
self.
|
|
428
|
+
self.pipeline.draw_text(
|
|
385
429
|
line, transform, properties, cap_height, entity.dxftype()
|
|
386
430
|
)
|
|
387
431
|
else:
|
|
@@ -410,20 +454,20 @@ class UniversalFrontend:
|
|
|
410
454
|
for line, transform, cap_height in simplified_text_chunks(
|
|
411
455
|
mtext, self.text_engine, font_face=self.get_font_face(properties)
|
|
412
456
|
):
|
|
413
|
-
self.
|
|
457
|
+
self.pipeline.draw_text(
|
|
414
458
|
line, transform, properties, cap_height, mtext.dxftype()
|
|
415
459
|
)
|
|
416
460
|
|
|
417
461
|
def draw_complex_mtext(self, mtext: MText, properties: Properties) -> None:
|
|
418
462
|
"""Draw the content of a MTEXT entity including inline formatting codes."""
|
|
419
|
-
complex_mtext_renderer(self.ctx, self.
|
|
463
|
+
complex_mtext_renderer(self.ctx, self.pipeline, mtext, properties)
|
|
420
464
|
|
|
421
465
|
def draw_curve_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
422
466
|
try:
|
|
423
467
|
path = make_path(entity)
|
|
424
468
|
except AttributeError: # API usage error
|
|
425
469
|
raise TypeError(f"Unsupported DXF type {entity.dxftype()}")
|
|
426
|
-
self.
|
|
470
|
+
self.pipeline.draw_path(path, properties)
|
|
427
471
|
|
|
428
472
|
def draw_point_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
429
473
|
point = cast(Point, entity)
|
|
@@ -440,7 +484,7 @@ class UniversalFrontend:
|
|
|
440
484
|
pdmode = 0
|
|
441
485
|
|
|
442
486
|
if pdmode == 0:
|
|
443
|
-
self.
|
|
487
|
+
self.pipeline.draw_point(entity.dxf.location, properties)
|
|
444
488
|
else:
|
|
445
489
|
for entity in point.virtual_entities(pdsize, pdmode):
|
|
446
490
|
dxftype = entity.dxftype()
|
|
@@ -448,9 +492,9 @@ class UniversalFrontend:
|
|
|
448
492
|
start = entity.dxf.start
|
|
449
493
|
end = entity.dxf.end
|
|
450
494
|
if start.isclose(end):
|
|
451
|
-
self.
|
|
495
|
+
self.pipeline.draw_point(start, properties)
|
|
452
496
|
else: # direct draw by backend is OK!
|
|
453
|
-
self.
|
|
497
|
+
self.pipeline.draw_line(start, end, properties)
|
|
454
498
|
pass
|
|
455
499
|
elif dxftype == "CIRCLE":
|
|
456
500
|
self.draw_curve_entity(entity, properties)
|
|
@@ -473,16 +517,16 @@ class UniversalFrontend:
|
|
|
473
517
|
return
|
|
474
518
|
edge_visibility = entity.get_edges_visibility()
|
|
475
519
|
if all(edge_visibility):
|
|
476
|
-
self.
|
|
520
|
+
self.pipeline.draw_path(from_vertices(points), properties)
|
|
477
521
|
else:
|
|
478
522
|
for a, b, visible in zip(points, points[1:], edge_visibility):
|
|
479
523
|
if visible:
|
|
480
|
-
self.
|
|
524
|
+
self.pipeline.draw_line(a, b, properties)
|
|
481
525
|
|
|
482
526
|
elif isinstance(entity, Solid):
|
|
483
527
|
# set solid fill type for SOLID and TRACE
|
|
484
528
|
properties.filling = Filling()
|
|
485
|
-
self.
|
|
529
|
+
self.pipeline.draw_filled_polygon(
|
|
486
530
|
entity.wcs_vertices(close=False), properties
|
|
487
531
|
)
|
|
488
532
|
else:
|
|
@@ -522,7 +566,7 @@ class UniversalFrontend:
|
|
|
522
566
|
(e.x, e.y, elevation)
|
|
523
567
|
)
|
|
524
568
|
lines.append((s, e))
|
|
525
|
-
self.
|
|
569
|
+
self.pipeline.draw_solid_lines(lines, properties)
|
|
526
570
|
|
|
527
571
|
def draw_hatch_entity(
|
|
528
572
|
self,
|
|
@@ -572,10 +616,10 @@ class UniversalFrontend:
|
|
|
572
616
|
paths = closed_loops(boundary_paths, ocs, elevation)
|
|
573
617
|
if show_only_outline:
|
|
574
618
|
for p in ignore_text_boxes(paths):
|
|
575
|
-
self.
|
|
619
|
+
self.pipeline.draw_path(p, properties)
|
|
576
620
|
return
|
|
577
621
|
if paths:
|
|
578
|
-
self.
|
|
622
|
+
self.pipeline.draw_filled_paths(ignore_text_boxes(paths), properties)
|
|
579
623
|
|
|
580
624
|
def draw_mpolygon_entity(self, entity: DXFGraphic, properties: Properties):
|
|
581
625
|
def resolve_fill_color() -> str:
|
|
@@ -610,14 +654,14 @@ class UniversalFrontend:
|
|
|
610
654
|
properties.color = line_color
|
|
611
655
|
# draw boundary paths as lines
|
|
612
656
|
for loop in loops:
|
|
613
|
-
self.
|
|
657
|
+
self.pipeline.draw_path(loop, properties)
|
|
614
658
|
|
|
615
659
|
def draw_wipeout_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
616
660
|
wipeout = cast(Wipeout, entity)
|
|
617
661
|
properties.filling = Filling()
|
|
618
662
|
properties.color = self.ctx.current_layout_properties.background_color
|
|
619
663
|
clipping_polygon = wipeout.boundary_path_wcs()
|
|
620
|
-
self.
|
|
664
|
+
self.pipeline.draw_filled_polygon(clipping_polygon, properties)
|
|
621
665
|
|
|
622
666
|
def draw_viewport(self, vp: Viewport) -> None:
|
|
623
667
|
# the "active" viewport and invisible viewports should be filtered at this
|
|
@@ -628,7 +672,7 @@ class UniversalFrontend:
|
|
|
628
672
|
if not vp.is_top_view:
|
|
629
673
|
self.log_message("Cannot render non top-view viewports")
|
|
630
674
|
return
|
|
631
|
-
self.
|
|
675
|
+
self.pipeline.draw_viewport(vp, self.ctx, self._bbox_cache)
|
|
632
676
|
|
|
633
677
|
def draw_ole2frame_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
634
678
|
ole2frame = cast(OLE2Frame, entity)
|
|
@@ -712,12 +756,12 @@ class UniversalFrontend:
|
|
|
712
756
|
use_clipping_boundary=image.dxf.flags & Image.USE_CLIPPING_BOUNDARY,
|
|
713
757
|
remove_outside=image.dxf.clip_mode == 0,
|
|
714
758
|
)
|
|
715
|
-
self.
|
|
759
|
+
self.pipeline.draw_image(image_data, properties)
|
|
716
760
|
|
|
717
761
|
elif show_filename_if_missing:
|
|
718
762
|
default_cap_height = 20
|
|
719
763
|
text = image_def.dxf.filename
|
|
720
|
-
font = self.
|
|
764
|
+
font = self.pipeline.text_engine.get_font(
|
|
721
765
|
self.get_font_face(properties)
|
|
722
766
|
)
|
|
723
767
|
text_width = font.text_width_ex(text, default_cap_height)
|
|
@@ -732,7 +776,7 @@ class UniversalFrontend:
|
|
|
732
776
|
transform = (
|
|
733
777
|
Matrix44.scale(scale) @ translate @ image.get_wcs_transform()
|
|
734
778
|
)
|
|
735
|
-
self.
|
|
779
|
+
self.pipeline.draw_text(
|
|
736
780
|
text,
|
|
737
781
|
transform,
|
|
738
782
|
properties,
|
|
@@ -740,7 +784,7 @@ class UniversalFrontend:
|
|
|
740
784
|
)
|
|
741
785
|
|
|
742
786
|
points = [v.vec2 for v in image.boundary_path_wcs()]
|
|
743
|
-
self.
|
|
787
|
+
self.pipeline.draw_solid_lines(list(zip(points, points[1:])), properties)
|
|
744
788
|
|
|
745
789
|
elif self.config.image_policy == ImagePolicy.PROXY:
|
|
746
790
|
self.draw_proxy_graphic(entity.proxy_graphic, entity.doc)
|
|
@@ -760,7 +804,7 @@ class UniversalFrontend:
|
|
|
760
804
|
props.color = color
|
|
761
805
|
# default SOLID filling
|
|
762
806
|
props.filling = Filling()
|
|
763
|
-
self.
|
|
807
|
+
self.pipeline.draw_filled_polygon(points, props)
|
|
764
808
|
|
|
765
809
|
def draw_mesh_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
766
810
|
builder = MeshBuilder.from_mesh(entity) # type: ignore
|
|
@@ -770,7 +814,7 @@ class UniversalFrontend:
|
|
|
770
814
|
self, builder: MeshBuilder, properties: Properties
|
|
771
815
|
) -> None:
|
|
772
816
|
for face in builder.faces_as_vertices():
|
|
773
|
-
self.
|
|
817
|
+
self.pipeline.draw_path(
|
|
774
818
|
from_vertices(face, close=True), properties=properties
|
|
775
819
|
)
|
|
776
820
|
|
|
@@ -811,10 +855,10 @@ class UniversalFrontend:
|
|
|
811
855
|
points = polygon # type: ignore
|
|
812
856
|
# Set default SOLID filling for LWPOLYLINE
|
|
813
857
|
properties.filling = Filling()
|
|
814
|
-
self.
|
|
858
|
+
self.pipeline.draw_filled_polygon(points, properties)
|
|
815
859
|
return
|
|
816
860
|
|
|
817
|
-
self.
|
|
861
|
+
self.pipeline.draw_path(make_path(entity), properties)
|
|
818
862
|
|
|
819
863
|
def draw_composite_entity(self, entity: DXFGraphic, properties: Properties) -> None:
|
|
820
864
|
def draw_insert(insert: Insert):
|
|
@@ -834,7 +878,7 @@ class UniversalFrontend:
|
|
|
834
878
|
boundary_path.inner_polygon(),
|
|
835
879
|
outer_bounds=boundary_path.outer_bounds(),
|
|
836
880
|
)
|
|
837
|
-
self.
|
|
881
|
+
self.pipeline.push_clipping_shape(clipping_shape, None)
|
|
838
882
|
|
|
839
883
|
# draw_entities() includes the visibility check:
|
|
840
884
|
self.draw_entities(
|
|
@@ -845,11 +889,11 @@ class UniversalFrontend:
|
|
|
845
889
|
)
|
|
846
890
|
|
|
847
891
|
if is_clipping_active and clip.get_xclip_frame_policy():
|
|
848
|
-
self.
|
|
892
|
+
self.pipeline.draw_path(
|
|
849
893
|
path=from_vertices(boundary_path.inner_polygon(), close=True),
|
|
850
894
|
properties=properties,
|
|
851
895
|
)
|
|
852
|
-
self.
|
|
896
|
+
self.pipeline.pop_clipping_shape()
|
|
853
897
|
|
|
854
898
|
if isinstance(entity, Insert):
|
|
855
899
|
self.ctx.push_state(properties)
|
|
@@ -905,9 +949,9 @@ class Frontend(UniversalFrontend):
|
|
|
905
949
|
config: Configuration = Configuration(),
|
|
906
950
|
bbox_cache: Optional[ezdxf.bbox.Cache] = None,
|
|
907
951
|
):
|
|
908
|
-
from .
|
|
952
|
+
from .pipeline import RenderPipeline2d
|
|
909
953
|
|
|
910
|
-
super().__init__(ctx,
|
|
954
|
+
super().__init__(ctx, RenderPipeline2d(out), config, bbox_cache)
|
|
911
955
|
|
|
912
956
|
|
|
913
957
|
def is_spatial_text(extrusion: Vec3) -> bool:
|
|
@@ -968,7 +1012,7 @@ def _draw_entities(
|
|
|
968
1012
|
frontend.skip_entity(entity, "Cannot parse DXF entity")
|
|
969
1013
|
continue
|
|
970
1014
|
properties = ctx.resolve_all(entity)
|
|
971
|
-
frontend.
|
|
1015
|
+
frontend.exec_property_override(entity, properties)
|
|
972
1016
|
if properties.is_visible:
|
|
973
1017
|
frontend.draw_entity(entity, properties)
|
|
974
1018
|
else:
|