CollisionNode

from panda3d.core import CollisionNode
class CollisionNode

Bases: PandaNode

A node in the scene graph that can hold any number of CollisionSolids. This may either represent a bit of static geometry in the scene that things will collide with, or an animated object twirling around in the world and running into things.

Inheritance diagram

Inheritance diagram of CollisionNode

__init__(*args, **kwargs)
addSolid()

C++ Interface: add_solid(const CollisionNode self, const CollisionSolid solid)

/**
  • Adds the indicated solid to the node. Returns the index of the new solid

  • within the node’s list of solids.

*/

add_solid()

C++ Interface: add_solid(const CollisionNode self, const CollisionSolid solid)

/**
  • Adds the indicated solid to the node. Returns the index of the new solid

  • within the node’s list of solids.

*/

clearSolids()

C++ Interface: clear_solids(const CollisionNode self)

/**
  • Removes all solids from the node.

*/

clear_solids()

C++ Interface: clear_solids(const CollisionNode self)

/**
  • Removes all solids from the node.

*/

collider_sort
default_collide_mask = 0000 0000 0000 1111 1111 1111 1111 1111
from_collide_mask
getClassType()

C++ Interface: get_class_type()

getColliderSort()

C++ Interface: get_collider_sort(CollisionNode self)

/**
  • Returns the collider_sort value that has been set for this particular node.

  • See set_collider_sort().

*/

getDefaultCollideMask()

C++ Interface: get_default_collide_mask()

/**
  • Returns the default into_collide_mask assigned to new CollisionNodes.

*/

getFromCollideMask()

C++ Interface: get_from_collide_mask(CollisionNode self)

/**
  • Returns the current “from” CollideMask. In order for a collision to be

  • detected from this object into another object, the intersection of this

  • object’s “from” mask and the other object’s “into” mask must be nonzero.

*/

getIntoCollideMask()

C++ Interface: get_into_collide_mask(CollisionNode self)

/**
  • Returns the current “into” CollideMask. In order for a collision to be

  • detected from another object into this object, the intersection of the

  • other object’s “from” mask and this object’s “into” mask must be nonzero.

*/

getNumSolids()

C++ Interface: get_num_solids(CollisionNode self)

/**

*/

getSolid()

C++ Interface: get_solid(CollisionNode self, int n)

/**

*/

getSolids()
get_class_type()

C++ Interface: get_class_type()

get_collider_sort()

C++ Interface: get_collider_sort(CollisionNode self)

/**
  • Returns the collider_sort value that has been set for this particular node.

  • See set_collider_sort().

*/

get_default_collide_mask()

C++ Interface: get_default_collide_mask()

/**
  • Returns the default into_collide_mask assigned to new CollisionNodes.

*/

get_from_collide_mask()

C++ Interface: get_from_collide_mask(CollisionNode self)

/**
  • Returns the current “from” CollideMask. In order for a collision to be

  • detected from this object into another object, the intersection of this

  • object’s “from” mask and the other object’s “into” mask must be nonzero.

*/

get_into_collide_mask()

C++ Interface: get_into_collide_mask(CollisionNode self)

/**
  • Returns the current “into” CollideMask. In order for a collision to be

  • detected from another object into this object, the intersection of the

  • other object’s “from” mask and this object’s “into” mask must be nonzero.

*/

get_num_solids()

C++ Interface: get_num_solids(CollisionNode self)

/**

*/

get_solid()

C++ Interface: get_solid(CollisionNode self, int n)

/**

*/

get_solids()
insertSolid()

C++ Interface: insert_solid(const CollisionNode self, int n, const CollisionSolid solid)

/**
  • Inserts the indicated solid to the node at the indicated position.

*/

insert_solid()

C++ Interface: insert_solid(const CollisionNode self, int n, const CollisionSolid solid)

/**
  • Inserts the indicated solid to the node at the indicated position.

*/

into_collide_mask
modifySolid()

C++ Interface: modify_solid(const CollisionNode self, int n)

/**

*/

modify_solid()

C++ Interface: modify_solid(const CollisionNode self, int n)

/**

*/

owner
removeSolid()

C++ Interface: remove_solid(const CollisionNode self, int n)

/**
  • Removes the solid with the indicated index. This will shift all subsequent

  • indices down by one.

*/

remove_solid()

C++ Interface: remove_solid(const CollisionNode self, int n)

/**
  • Removes the solid with the indicated index. This will shift all subsequent

  • indices down by one.

*/

setCollideMask()

C++ Interface: set_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Simultaneously sets both the “from” and “into” CollideMask values to the

  • same thing.

*/

setColliderSort()

C++ Interface: set_collider_sort(const CollisionNode self, int sort)

/**
  • Sets a particular collider_sort value on this node. This controls the

  • order in which colliders (that is, “from nodes”) are grouped together for

  • the collision traversal.

  • If there are 32 or fewer colliders added to any particular

  • CollisionTraverser, then this value has no meaning. It is only useful if

  • there are many colliders, which may force the CollisionTraverser to make

  • multiple passes through the data; in that case, it may be a useful

  • optimization to group colliders that have similar bounding volumes together

  • (by giving them similar sort values).

*/

setFromCollideMask()

C++ Interface: set_from_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Sets the “from” CollideMask. In order for a collision to be detected from

  • this object into another object, the intersection of this object’s “from”

  • mask and the other object’s “into” mask must be nonzero.

*/

setIntoCollideMask()

C++ Interface: set_into_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Sets the “into” CollideMask. In order for a collision to be detected from

  • another object into this object, the intersection of the other object’s

  • “from” mask and this object’s “into” mask must be nonzero.

*/

setSolid()

C++ Interface: set_solid(const CollisionNode self, int n, CollisionSolid solid)

/**
  • Replaces the solid with the indicated index.

*/

set_collide_mask()

C++ Interface: set_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Simultaneously sets both the “from” and “into” CollideMask values to the

  • same thing.

*/

set_collider_sort()

C++ Interface: set_collider_sort(const CollisionNode self, int sort)

/**
  • Sets a particular collider_sort value on this node. This controls the

  • order in which colliders (that is, “from nodes”) are grouped together for

  • the collision traversal.

  • If there are 32 or fewer colliders added to any particular

  • CollisionTraverser, then this value has no meaning. It is only useful if

  • there are many colliders, which may force the CollisionTraverser to make

  • multiple passes through the data; in that case, it may be a useful

  • optimization to group colliders that have similar bounding volumes together

  • (by giving them similar sort values).

*/

set_from_collide_mask()

C++ Interface: set_from_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Sets the “from” CollideMask. In order for a collision to be detected from

  • this object into another object, the intersection of this object’s “from”

  • mask and the other object’s “into” mask must be nonzero.

*/

set_into_collide_mask()

C++ Interface: set_into_collide_mask(const CollisionNode self, BitMask mask)

/**
  • Sets the “into” CollideMask. In order for a collision to be detected from

  • another object into this object, the intersection of the other object’s

  • “from” mask and this object’s “into” mask must be nonzero.

*/

set_solid()

C++ Interface: set_solid(const CollisionNode self, int n, CollisionSolid solid)

/**
  • Replaces the solid with the indicated index.

*/

solids