summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-mapbox-earcut.spec220
-rw-r--r--sources1
3 files changed, 222 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8ef9610 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/mapbox_earcut-1.0.1.tar.gz
diff --git a/python-mapbox-earcut.spec b/python-mapbox-earcut.spec
new file mode 100644
index 0000000..b3e8a7f
--- /dev/null
+++ b/python-mapbox-earcut.spec
@@ -0,0 +1,220 @@
+%global _empty_manifest_terminate_build 0
+Name: python-mapbox-earcut
+Version: 1.0.1
+Release: 1
+Summary: Python bindings for the mapbox earcut C++ polygon triangulation library.
+License: ISC
+URL: https://github.com/skogler/mapbox_earcut_python
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/97/f9/38f72877be0a5bf35c04a75c8ceb261589f2807eeaffaa22055079f53839/mapbox_earcut-1.0.1.tar.gz
+
+Requires: python3-numpy
+Requires: python3-pytest
+
+%description
+# mapbox_earcut
+
+Python bindings for the C++ implementation of the Mapbox Earcut library, which
+provides very fast and quite robust triangulation of 2D polygons.
+
+Original code: [earcut.hpp](https://github.com/mapbox/earcut.hpp)
+
+Original description:
+
+> The library implements a modified ear slicing algorithm, optimized by
+> [z-order curve](http://en.wikipedia.org/wiki/Z-order_curve) hashing and
+> extended to handle holes, twisted polygons, degeneracies and self-intersections
+> in a way that doesn't _guarantee_ correctness of triangulation, but attempts to
+> always produce acceptable results for practical data like geographical shapes.
+
+Provided functions (depending on dtype of vertex data):
+```python
+triangulate_float32
+triangulate_float64
+triangulate_int32
+triangulate_int64
+```
+
+Example:
+```python
+
+import mapbox_earcut as earcut
+import numpy as np
+
+# A Nx2 array of vertices. Must be 2D.
+verts = np.array([[0, 0], [1, 0], [1, 1]]).reshape(-1, 2)
+
+# An array of end-indices for each ring.
+# The first ring is the outer contour of the polygon.
+# Subsequent ones are holes.
+# This implies that the last index must always be equal to the size of verts!
+rings = np.array([3])
+
+result = earcut.triangulate_float32(verts, rings)
+
+# Result is an np.ndarray with dtype np.uint32 and shape (3,)
+# containing indices into the verts array.
+
+print(verts[result])
+# [[1 0]
+# [1 1]
+# [0 0]]
+```
+
+
+%package -n python3-mapbox-earcut
+Summary: Python bindings for the mapbox earcut C++ polygon triangulation library.
+Provides: python-mapbox-earcut
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+BuildRequires: python3-cffi
+BuildRequires: gcc
+BuildRequires: gdb
+%description -n python3-mapbox-earcut
+# mapbox_earcut
+
+Python bindings for the C++ implementation of the Mapbox Earcut library, which
+provides very fast and quite robust triangulation of 2D polygons.
+
+Original code: [earcut.hpp](https://github.com/mapbox/earcut.hpp)
+
+Original description:
+
+> The library implements a modified ear slicing algorithm, optimized by
+> [z-order curve](http://en.wikipedia.org/wiki/Z-order_curve) hashing and
+> extended to handle holes, twisted polygons, degeneracies and self-intersections
+> in a way that doesn't _guarantee_ correctness of triangulation, but attempts to
+> always produce acceptable results for practical data like geographical shapes.
+
+Provided functions (depending on dtype of vertex data):
+```python
+triangulate_float32
+triangulate_float64
+triangulate_int32
+triangulate_int64
+```
+
+Example:
+```python
+
+import mapbox_earcut as earcut
+import numpy as np
+
+# A Nx2 array of vertices. Must be 2D.
+verts = np.array([[0, 0], [1, 0], [1, 1]]).reshape(-1, 2)
+
+# An array of end-indices for each ring.
+# The first ring is the outer contour of the polygon.
+# Subsequent ones are holes.
+# This implies that the last index must always be equal to the size of verts!
+rings = np.array([3])
+
+result = earcut.triangulate_float32(verts, rings)
+
+# Result is an np.ndarray with dtype np.uint32 and shape (3,)
+# containing indices into the verts array.
+
+print(verts[result])
+# [[1 0]
+# [1 1]
+# [0 0]]
+```
+
+
+%package help
+Summary: Development documents and examples for mapbox-earcut
+Provides: python3-mapbox-earcut-doc
+%description help
+# mapbox_earcut
+
+Python bindings for the C++ implementation of the Mapbox Earcut library, which
+provides very fast and quite robust triangulation of 2D polygons.
+
+Original code: [earcut.hpp](https://github.com/mapbox/earcut.hpp)
+
+Original description:
+
+> The library implements a modified ear slicing algorithm, optimized by
+> [z-order curve](http://en.wikipedia.org/wiki/Z-order_curve) hashing and
+> extended to handle holes, twisted polygons, degeneracies and self-intersections
+> in a way that doesn't _guarantee_ correctness of triangulation, but attempts to
+> always produce acceptable results for practical data like geographical shapes.
+
+Provided functions (depending on dtype of vertex data):
+```python
+triangulate_float32
+triangulate_float64
+triangulate_int32
+triangulate_int64
+```
+
+Example:
+```python
+
+import mapbox_earcut as earcut
+import numpy as np
+
+# A Nx2 array of vertices. Must be 2D.
+verts = np.array([[0, 0], [1, 0], [1, 1]]).reshape(-1, 2)
+
+# An array of end-indices for each ring.
+# The first ring is the outer contour of the polygon.
+# Subsequent ones are holes.
+# This implies that the last index must always be equal to the size of verts!
+rings = np.array([3])
+
+result = earcut.triangulate_float32(verts, rings)
+
+# Result is an np.ndarray with dtype np.uint32 and shape (3,)
+# containing indices into the verts array.
+
+print(verts[result])
+# [[1 0]
+# [1 1]
+# [0 0]]
+```
+
+
+%prep
+%autosetup -n mapbox-earcut-1.0.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-mapbox-earcut -f filelist.lst
+%dir %{python3_sitearch}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..5b7de2e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e0647ff7941fc5dfdd6de88a830b636d mapbox_earcut-1.0.1.tar.gz