Skip to main content

An unofficial python extension for the GImpact collision library.

Reason this release was yanked:

broken build

Project description

GImpact-Python

An unofficial python extension for the GImpact collision library. This extension integrates directly with GImpact's C++ API using Cython.

Features

  • Create trimesh object from numpy array
  • Mesh decimation using Sven Forstmann's C++ mesh simplification code
  • Axis Aligned Bounding Box (AABB)
  • AABB set for box prunning
  • Collision of triangle mesh with the following
    • triangle mesh
    • sphere
    • capsule
    • plane
    • ray
  • Supports "first contact" or "all contacts" modes

Installation

Build requires numpy and cython (tested on Linux and Windows).

pip install gimpact

Example Usage

AABB

import gimpact


aabb1 = gimpact.AABB(-1, 1, -1, 1, -1, 1)
aabb2 = gimpact.AABB(-1, 1, -1, 1, 1.5, 2)

print(aabb1.intersects(aabb2))
print(aabb1.intersection(aabb2))

aabb1.merge(aabb2)
print(aabb1)

Box Prunning

import gimpact

aabb_set = gimpact.AABBSet(10)
print(len(aabb_set))
print(aabb_set.global_bounds)
for aabb in aabb_set:
    aabb.bounds = (0., 0., 0., 0., 0., 0.)

for aabb in aabb_set:
    print(aabb)

print(aabb_set.global_bounds)
pairs = aabb_set.find_intersections(aabb_set)
print(pairs)

del aabb_set
print(aabb.bounds)

Collision

import gimpact
import numpy as np

contacts = gimpact.trimesh_trimesh_collision(trimesh1, trimesh2)
contacts = gimpact.trimesh_sphere_collision(trimesh1, [0., 0., 0.], 1, True)
contacts = gimpact.trimesh_capsule_collision(trimesh1, np.array([0., 0., 0.]), np.array([1., 0., 0.]), 1, True)
contacts = gimpact.trimesh_plane_collision(trimesh1, [0., 0., 1., 0.], True)

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

gimpact-0.1.1.tar.gz (227.4 kB view details)

Uploaded Source

File details

Details for the file gimpact-0.1.1.tar.gz.

File metadata

  • Download URL: gimpact-0.1.1.tar.gz
  • Upload date:
  • Size: 227.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.8

File hashes

Hashes for gimpact-0.1.1.tar.gz
Algorithm Hash digest
SHA256 06b603cbdcbe45fca9fd96a28bc35cdb941aaddaff803dd08de83e4b6bb31195
MD5 b58f589a76f010e655c3f90ccc44d616
BLAKE2b-256 2b66249a4c8f3ae94f96a02d99a8c02dcb1a92ab4f7844e9ad6a8eb45a892a69

See more details on using hashes here.

Supported by

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