mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-06 11:51:58 -04:00
31 lines
991 B
Python
31 lines
991 B
Python
from panda3d.core import CollisionNode, NodePath
|
|
from panda3d.core import CollisionTraverser, CollisionHandlerQueue
|
|
from panda3d.core import CollisionSphere, CollisionBox, CollisionPolygon, CollisionCapsule
|
|
from panda3d.core import CollisionLine, CollisionRay, CollisionSegment, CollisionParabola
|
|
from panda3d.core import CollisionPlane
|
|
from panda3d.core import Point3, Vec3, Plane, LParabola
|
|
|
|
|
|
def make_collision(solid_from, solid_into):
|
|
node_from = CollisionNode("from")
|
|
node_from.add_solid(solid_from)
|
|
node_into = CollisionNode("into")
|
|
node_into.add_solid(solid_into)
|
|
|
|
root = NodePath("root")
|
|
trav = CollisionTraverser()
|
|
queue = CollisionHandlerQueue()
|
|
|
|
np_from = root.attach_new_node(node_from)
|
|
np_into = root.attach_new_node(node_into)
|
|
|
|
trav.add_collider(np_from, queue)
|
|
trav.traverse(root)
|
|
|
|
entry = None
|
|
for e in queue.get_entries():
|
|
if e.get_into() == solid_into:
|
|
entry = e
|
|
|
|
return (entry, np_from, np_into)
|