panda3d.core.CollisionHandlerPhysical

from panda3d.core import CollisionHandlerPhysical
class CollisionHandlerPhysical

Bases: CollisionHandlerEvent

The abstract base class for a number of CollisionHandlers that have some physical effect on their moving bodies: they need to update the nodes’ positions based on the effects of the collision.

Inheritance diagram

Inheritance diagram of CollisionHandlerPhysical

addCollider(collider: NodePath, target: NodePath) → None

Adds a new collider to the list with a NodePath that will be updated with the collider’s new position, or updates the existing collider with a new NodePath object.

addCollider(collider: NodePath, target: NodePath, drive_interface: DriveInterface) → None

Adds a new collider to the list with a NodePath that will be updated with the collider’s new position, or updates the existing collider with a new NodePath object.

The indicated DriveInterface will also be updated with the target’s new transform each frame. This method should be used when the target is directly controlled by a DriveInterface.

property center
Getter

Returns the NodePath specified with set_center, or the empty NodePath if nothing has been specified.

Setter

Specifies an arbitrary NodePath that the handler is always considered to be facing. It does not detect collisions with surfaces that appear to be facing away from this NodePath. This works best when the collision surfaces in question are polygons.

Return type

NodePath

clearCenter() → None

Clears the center NodePath specified with set_center.

clearColliders() → None

Completely empties the list of colliders this handler knows about.

getCenter() → NodePath

Returns the NodePath specified with set_center, or the empty NodePath if nothing has been specified.

Return type

NodePath

static getClassType() → TypeHandle
Return type

TypeHandle

hasCenter() → bool

Returns true if a NodePath has been specified with setCenter(), false otherwise.

hasCollider(collider: NodePath) → bool

Returns true if the handler knows about the indicated collider, false otherwise.

hasContact() → bool

Did the handler make any contacts with anything on the last collision pass? Depending on how your world is setup, this can be used to tell if the handler is out of the world (i.e. out of bounds). That is the original use of this call.

removeCollider(collider: NodePath) → bool

Removes the collider from the list of colliders that this handler knows about.

setCenter(center: NodePath) → None

Specifies an arbitrary NodePath that the handler is always considered to be facing. It does not detect collisions with surfaces that appear to be facing away from this NodePath. This works best when the collision surfaces in question are polygons.