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
attach(object: panda3d.core.TypedObject)


attach_character(node: BulletBaseCharacterControllerNode)

Deprecated: Please use BulletWorld.attach

attach_constraint(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.

attach_ghost(node: BulletGhostNode)

Deprecated: Please use BulletWorld.attach

attach_rigid_body(node: BulletRigidBodyNode)

Deprecated: Please use BulletWorld.attach

attach_soft_body(node: BulletSoftBodyNode)

Deprecated: Please use BulletWorld.attach

attach_vehicle(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]
contact_test(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.

contact_test_pair(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



do_physics(dt: float, max_substeps: int, stepsize: float) int
filter_test(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
get_character(idx: int) BulletBaseCharacterControllerNode
get_characters() list
static get_class_type() panda3d.core.TypeHandle
get_constraint(idx: int) BulletConstraint
get_constraints() list
get_debug_node() BulletDebugNode
get_force_update_all_aabbs() bool
get_ghost(idx: int) BulletGhostNode
get_ghosts() list
get_gravity() panda3d.core.LVector3
get_group_collision_flag(group1: int, group2: int) bool
get_manifold(idx: int) BulletPersistentManifold
get_manifolds() list
get_num_characters() int

Character controller

get_num_constraints() int


get_num_ghosts() int

Ghost object

get_num_manifolds() int


get_num_rigid_bodies() int

Rigid body

get_num_soft_bodies() int

Soft body

get_num_vehicles() int
get_rigid_bodies() list
get_rigid_body(idx: int) BulletRigidBodyNode
get_soft_bodies() list
get_soft_body(idx: int) BulletSoftBodyNode
get_vehicle(idx: int) BulletVehicle
get_vehicles() list
get_world_info() BulletSoftBodyWorldInfo
property ghosts Sequence[BulletGhostNode]
property gravity LVector3

Getter Setter

has_debug_node() bool
property manifolds Sequence[BulletPersistentManifold]
ray_test_all(from_pos: panda3d.core.LPoint3, to_pos: panda3d.core.LPoint3, mask: panda3d.core.CollideMask) BulletAllHitsRayResult
ray_test_closest(from_pos: panda3d.core.LPoint3, to_pos: panda3d.core.LPoint3, mask: panda3d.core.CollideMask) BulletClosestHitRayResult

Raycast and other queries

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

Deprecated: Please use BulletWorld.remove

remove_constraint(constraint: BulletConstraint)

Deprecated: Please use BulletWorld.remove

remove_ghost(node: BulletGhostNode)

Deprecated: Please use BulletWorld.remove

remove_rigid_body(node: BulletRigidBodyNode)

Deprecated: Please use BulletWorld.remove

remove_soft_body(node: BulletSoftBodyNode)

Deprecated: Please use BulletWorld.remove

remove_vehicle(vehicle: BulletVehicle)

Deprecated: Please use BulletWorld.remove

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


set_debug_node(node: BulletDebugNode)
set_filter_callback(obj: panda3d.core.CallbackObject)
set_force_update_all_aabbs(force: bool)
set_gravity(gravity: panda3d.core.LVector3)
set_gravity(gx: float, gy: float, gz: float)
set_group_collision_flag(group1: int, group2: int, enable: bool)

Collision filtering

set_tick_callback(obj: panda3d.core.CallbackObject, is_pretick: bool)
property soft_bodies Sequence[BulletSoftBodyNode]
sweep_test_closest(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