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.5.0.tar.gz (218.8 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.5.0-cp38-cp38-manylinux1_x86_64.whl (203.0 kB view details)

Uploaded CPython 3.8

ncollpyde-0.5.0-cp37-cp37m-manylinux1_x86_64.whl (203.0 kB view details)

Uploaded CPython 3.7m

File details

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

File metadata

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

File hashes

Hashes for ncollpyde-0.5.0.tar.gz
Algorithm Hash digest
SHA256 b72edf0f9fa04ab27567a86c18781ea08d1759c10396e64c7c2110687527b6ba
MD5 f8f33d9860aa48a22beef722982dd66d
BLAKE2b-256 ce040cbe4a565236e24b76b652353f1f4abc621f8386421927ad3379efee2834

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ncollpyde-0.5.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2aa27494179db30dcd6ca06b843fb7c77a41832dc41c6709fb0149f0d71b9be9
MD5 ad9c9a942de981c73b7f25e37c341633
BLAKE2b-256 778c190a889e124d78d6203a9acecb42ba788194958c86cc2089e862911ef2f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ncollpyde-0.5.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cfea5335bb68656f9857ac7f689eb3617c37d648a8bafa51c255ec301650f73f
MD5 80010db91bfaf9dd85bccd4400e7cd05
BLAKE2b-256 b92becc4a8d7a940dd42a88aeadf8977af9569df1cb811d2aa3105b62b6602ab

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