Compress mesh data. Args: mesh (:class:`Mesh`): Input mesh. engine_name (``string``): Valid engines are: * ``draco``: `Google's Draco engine `_ [#]_ Returns: A binary string representing the compressed mes
(mesh, engine_name="draco")
| 4 | from .Mesh import Mesh |
| 5 | |
| 6 | def compress(mesh, engine_name="draco"): |
| 7 | """ Compress mesh data. |
| 8 | |
| 9 | Args: |
| 10 | mesh (:class:`Mesh`): Input mesh. |
| 11 | engine_name (``string``): Valid engines are: |
| 12 | |
| 13 | * ``draco``: `Google's Draco engine <https://google.github.io/draco/>`_ |
| 14 | [#]_ |
| 15 | |
| 16 | Returns: |
| 17 | A binary string representing the compressed mesh data. |
| 18 | |
| 19 | A simple usage example: |
| 20 | |
| 21 | >>> mesh = pymesh.generate_icosphere(1.0, [0, 0, 0]) |
| 22 | >>> data = pymesh.compress(mesh) |
| 23 | >>> with open("out.drc", 'wb') as fout: |
| 24 | ... fout.write(data) |
| 25 | |
| 26 | .. [#] Draco uses lossy compression. Both accuarcy and |
| 27 | vertices/face order will be lost due to compression. Draco only works |
| 28 | with triangular mesh or point cloud. |
| 29 | |
| 30 | """ |
| 31 | engine = PyMesh.CompressionEngine.create(engine_name) |
| 32 | data = engine.compress(mesh.raw_mesh) |
| 33 | return data |
| 34 | |
| 35 | def decompress(data, engine_name="draco"): |
| 36 | """ Decompress mesh data. |