Metadata-Version: 2.1
Name: pyacvd
Version: 0.3.3
Summary: Uniformly remeshes surface meshes
Keywords: vtk,uniform,meshing,remeshing,acvd
Author-Email: Alex Kaszynski <akascap@gmail.com>
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Requires-Dist: numpy
Requires-Dist: pyvista>=0.37.0
Requires-Dist: pykdtree
Requires-Dist: vtk~=9.5; sys_platform == "linux" and platform_machine == "aarch64"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Description-Content-Type: text/x-rst

########
 pyacvd
########

.. image:: https://img.shields.io/pypi/v/pyacvd.svg
   :target: https://pypi.org/project/pyacvd/

This module takes a surface mesh and returns a uniformly meshed surface
using voronoi clustering. This approach is loosely based on research by
S. Valette, and J. M. Chassery in `ACVD
<https://github.com/valette/ACVD>`_.

**************
 Installation
**************

Installation is straightforward using pip:

.. code::

   $ pip install pyacvd

*********
 Example
*********

This example remeshes a non-uniform quad mesh into a uniform triangular
mesh.

.. code:: python

   from pyvista import examples
   import pyacvd

   # download cow mesh
   cow = examples.download_cow()

   # plot original mesh
   cow.plot(show_edges=True, color='w')

.. image:: https://github.com/pyvista/pyacvd/raw/main/docs/images/cow.png
   :alt: original cow mesh

.. image:: https://github.com/pyvista/pyacvd/raw/main/docs/images/cow_zoom.png
   :alt: zoomed cow mesh

.. code:: python

   clus = pyacvd.Clustering(cow)
   # mesh is not dense enough for uniform remeshing
   clus.subdivide(3)
   clus.cluster(20000)

   # plot clustered cow mesh
   clus.plot()

.. image:: https://github.com/pyvista/pyacvd/raw/main/docs/images/cow_clus.png
   :alt: zoomed cow mesh

.. code:: python

   # remesh
   remesh = clus.create_mesh()

   # plot uniformly remeshed cow
   remesh.plot(color='w', show_edges=True)

.. image:: https://github.com/pyvista/pyacvd/raw/main/docs/images/cow_remesh.png
   :alt: zoomed cow mesh
