from panda3d.bullet import BulletWorld
class BulletWorld


Bases: TypedReferenceCount

Inheritance diagram

Inheritance diagram of BulletWorld

enum BroadphaseAlgorithm


enumerator BA_sweep_and_prune = 0
enumerator BA_dynamic_aabb_tree = 1
enum FilterAlgorithm
enumerator FA_mask = 0
enumerator FA_groups_mask = 1
enumerator FA_callback = 2
__get_manifold(idx: int) BulletPersistentManifold
attach(object: panda3d.core.TypedObject)


attachCharacter(node: BulletBaseCharacterControllerNode)

Deprecated: Please use BulletWorld.attach

attachConstraint(constraint: BulletConstraint, linked_collision: bool)

Attaches a single constraint to a world. Collision checks between the linked objects will be disabled if the second parameter is set to TRUE.

attachGhost(node: BulletGhostNode)

Deprecated: Please use BulletWorld.attach

attachRigidBody(node: BulletRigidBodyNode)

Deprecated: Please use BulletWorld.attach

attachSoftBody(node: BulletSoftBodyNode)

Deprecated: Please use BulletWorld.attach

attachVehicle(vehicle: BulletVehicle)

Deprecated: Please use BulletWorld.attach

property characters Sequence[BulletBaseCharacterControllerNode]

Removes a debug node that has been assigned to this BulletWorld.

property constraints Sequence[BulletConstraint]
contactTest(node: panda3d.core.PandaNode, use_filter: bool) BulletContactResult

Performas a test for all bodies which are currently in contact with the given body. The test returns a BulletContactResult object which may contain zero, one or more contacts.

If the optional parameter use_filter is set to TRUE this test will consider filter settings. Otherwise all objects in contact are reported, no matter if they would collide or not.

contactTestPair(node0: panda3d.core.PandaNode, node1: panda3d.core.PandaNode) BulletContactResult

Performas a test if the two bodies given as parameters are in contact or not. The test returns a BulletContactResult object which may contain zero or one contacts.

property debug_node BulletDebugNode

Getter Setter



doPhysics(dt: float, max_substeps: int, stepsize: float) int
filterTest(node0: panda3d.core.PandaNode, node1: panda3d.core.PandaNode) bool

Performs a test if two bodies should collide or not, based on the collision filter setting.

property force_update_all_aabbs bool
getCharacter(idx: int) BulletBaseCharacterControllerNode
getCharacters() list
static getClassType() panda3d.core.TypeHandle
getConstraint(idx: int) BulletConstraint
getConstraints() list
getDebugNode() BulletDebugNode
getForceUpdateAllAabbs() bool
getGhost(idx: int) BulletGhostNode
getGhosts() list
getGravity() panda3d.core.LVector3
getGroupCollisionFlag(group1: int, group2: int) bool
getManifold(idx: int) BulletPersistentManifold
getManifolds() list
getNumCharacters() int

Character controller

getNumConstraints() int


getNumGhosts() int

Ghost object

getNumManifolds() int


getNumRigidBodies() int

Rigid body

getNumSoftBodies() int

Soft body

getNumVehicles() int
getRigidBodies() list
getRigidBody(idx: int) BulletRigidBodyNode
getSoftBodies() list
getSoftBody(idx: int) BulletSoftBodyNode
getVehicle(idx: int) BulletVehicle
getVehicles() list
getWorldInfo() BulletSoftBodyWorldInfo
property ghosts Sequence[BulletGhostNode]
property gravity LVector3

Getter Setter

hasDebugNode() bool
property manifolds Sequence[BulletPersistentManifold]
rayTestAll(from_pos: panda3d.core.LPoint3, to_pos: panda3d.core.LPoint3, mask: panda3d.core.CollideMask) BulletAllHitsRayResult
rayTestClosest(from_pos: panda3d.core.LPoint3, to_pos: panda3d.core.LPoint3, mask: panda3d.core.CollideMask) BulletClosestHitRayResult

Raycast and other queries

remove(object: panda3d.core.TypedObject)
removeCharacter(node: BulletBaseCharacterControllerNode)

Deprecated: Please use BulletWorld.remove

removeConstraint(constraint: BulletConstraint)

Deprecated: Please use BulletWorld.remove

removeGhost(node: BulletGhostNode)

Deprecated: Please use BulletWorld.remove

removeRigidBody(node: BulletRigidBodyNode)

Deprecated: Please use BulletWorld.remove

removeSoftBody(node: BulletSoftBodyNode)

Deprecated: Please use BulletWorld.remove

removeVehicle(vehicle: BulletVehicle)

Deprecated: Please use BulletWorld.remove

property rigid_bodies Sequence[BulletRigidBodyNode]
setContactAddedCallback(obj: panda3d.core.CallbackObject)


setDebugNode(node: BulletDebugNode)
setFilterCallback(obj: panda3d.core.CallbackObject)
setForceUpdateAllAabbs(force: bool)
setGravity(gravity: panda3d.core.LVector3)
setGravity(gx: float, gy: float, gz: float)
setGroupCollisionFlag(group1: int, group2: int, enable: bool)

Collision filtering

setTickCallback(obj: panda3d.core.CallbackObject, is_pretick: bool)
property soft_bodies Sequence[BulletSoftBodyNode]
sweepTestClosest(shape: BulletShape, from_ts: panda3d.core.TransformState, to_ts: panda3d.core.TransformState, mask: panda3d.core.CollideMask, penetration: float) BulletClosestHitSweepResult

Performs a sweep test against all other shapes that match the given group mask. The provided shape must be a convex shape; it is an error to invoke this method using a non-convex shape.

property vehicles Sequence[BulletVehicle]
property world_info BulletSoftBodyWorldInfo