mirror of
https://github.com/bulletphysics/bullet3
synced 2025-01-05 23:31:06 +00:00
d3fe21ef17
Pass all argc/argc from options to InProcessPhysicsClientSharedMemoryMainThread
30 lines
903 B
Python
30 lines
903 B
Python
import functools
|
|
import inspect
|
|
import pybullet
|
|
|
|
|
|
class BulletClient(object):
|
|
"""A wrapper for pybullet to manage different clients."""
|
|
|
|
def __init__(self, connection_mode=pybullet.DIRECT, options=""):
|
|
"""Create a simulation and connect to it."""
|
|
self._client = pybullet.connect(pybullet.SHARED_MEMORY)
|
|
if(self._client<0):
|
|
print("options=",options)
|
|
self._client = pybullet.connect(connection_mode,options=options)
|
|
self._shapes = {}
|
|
|
|
def __del__(self):
|
|
"""Clean up connection if not already done."""
|
|
try:
|
|
pybullet.disconnect(physicsClientId=self._client)
|
|
except pybullet.error:
|
|
pass
|
|
|
|
def __getattr__(self, name):
|
|
"""Inject the client id into Bullet functions."""
|
|
attribute = getattr(pybullet, name)
|
|
if inspect.isbuiltin(attribute):
|
|
attribute = functools.partial(attribute, physicsClientId=self._client)
|
|
return attribute
|