Skip to main content

A python wrapper around a subset of the ncollide rust library

Project description

========= ncollpyde

.. image:: https://img.shields.io/pypi/pyversions/ncollpyde.svg :target: https://pypi.python.org/pypi/ncollpyde

.. image:: https://img.shields.io/pypi/v/ncollpyde.svg :target: https://pypi.python.org/pypi/ncollpyde

.. image:: https://img.shields.io/travis/clbarnes/ncollpyde.svg :target: https://travis-ci.org/clbarnes/ncollpyde

.. image:: https://readthedocs.org/projects/ncollpyde/badge/?version=latest :target: https://ncollpyde.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/ambv/black

A python wrapper around a subset of the ncollide rust library

Features

  • Checking whether points are inside a volume defined by a triangular mesh

Usage

.. code-block:: python

# get an array of vertices and triangles which refer to those points
import meshio
mesh = meshio.read("tests/teapot.stl")
vertices = mesh.points
triangles = mesh.cells["triangle"]

# use this library
from ncollpyde import Volume

volume = Volume(vertices, triangles)

Containment checks:

.. code-block:: python

# individual points (as 3-length array-likes) can be checked with `in`
assert [-2.3051376, -4.1556454,  1.9047838] in volume
assert [-0.35222054, -0.513299, 7.6191354] not in volume

# many points (as an Nx3 array-like) can be checked with the `contains` method
bools = volume.contains(np.array([
    [-2.3051376, -4.1556454,  1.9047838],
    [-0.35222054, -0.513299, 7.6191354],
]))
assert np.array_equal(bools, [True, False])

# checks can be parallelised
volume.contains(np.random.random((1000, 3)), threads=4)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ncollpyde-0.4.1.tar.gz (217.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ncollpyde-0.4.1-cp38-cp38-manylinux1_x86_64.whl (201.2 kB view details)

Uploaded CPython 3.8

ncollpyde-0.4.1-cp37-cp37m-manylinux1_x86_64.whl (201.2 kB view details)

Uploaded CPython 3.7m

File details

Details for the file ncollpyde-0.4.1.tar.gz.

File metadata

  • Download URL: ncollpyde-0.4.1.tar.gz
  • Upload date:
  • Size: 217.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.7.7

File hashes

Hashes for ncollpyde-0.4.1.tar.gz
Algorithm Hash digest
SHA256 7ed9901f7e71b2c001bd1311af8bad4a3c3713e883bbab571c8e72257f5b1a46
MD5 18e682813853bed499bf505a70c3529d
BLAKE2b-256 45410ebf7ff4a83cc875903c63bb4dda83b606158dc5c4f2be5b398bc294ac5b

See more details on using hashes here.

File details

Details for the file ncollpyde-0.4.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ncollpyde-0.4.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ea90a13e53b573855830bf12f373dd02b93488fbc70c78da300f5cebc8b9ef0a
MD5 3c3d6de3da2e895134bb4e9973b137a3
BLAKE2b-256 18eaa22c94fe3ca1e0631a18f0dc09b9d55844a58aabb44025b51c041f4a0042

See more details on using hashes here.

File details

Details for the file ncollpyde-0.4.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ncollpyde-0.4.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 af8ca77a625fff28f8d4d057484239c3f9fedcb76d52c4ca8acb5ab0acc1c6e3
MD5 6eb9f2165305d396654730b4a66d4eff
BLAKE2b-256 6a8fc89016f456938a3653c510103f6c4823076f9aa6e7f8e5d91a54a155660d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page