45 #if !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) && !defined(BUILDING_PANDA_COLLIDE) 46 #error Buildsystem error: BUILDING_PANDA_COLLIDE not defined 49 Configure(config_collide);
50 NotifyCategoryDef(collide,
"");
52 ConfigureFn(config_collide) {
57 (
"respect-prev-transform",
false,
58 PRC_DESC(
"Set this true to have all CollisionTraversers in the world respect " 59 "the previous frame's transform (position) for a given object when " 60 "determining motion for collision tests. If this is false, you must " 61 "explicitly enable motion detection for a particular traverser. It " 62 "is false by default to force programmers to decide on a " 63 "case-by-case basis whether they really need this feature."));
66 (
"respect-effective-normal",
true,
67 PRC_DESC(
"This should be true to support the effective_normal interface of " 68 "polygons. Set it false to disable this feature, so that all " 69 "collision solids (including polygons and planes) use their actual " 70 "normal for intersection and physics tests."));
73 (
"allow-collider-multiple",
false,
74 PRC_DESC(
"Set this true to enable the use of a DoubleBitMask or QuadBitMask " 76 "colliders added to a single traverser in one pass. If this is " 77 "false, a one-word BitMask is always used instead, which is faster " 78 "per pass, but may require more passes."));
81 (
"flatten-collision-nodes",
false,
82 PRC_DESC(
"Set this true to allow NodePath::flatten_medium() and " 83 "flatten_strong() to combine multiple CollisionNodes " 84 "into a single CollisionNode--but only if they share the " 85 "same name and collide masks. When false, CollisionNodes " 86 "are never combined. This is false by default, since " 87 "collision tests rely heavily on bounding volume tests " 88 "to be efficient, and combining CollisionNodes is likely " 89 "to merge bounding volumes inappropriately."));
92 (
"collision-parabola-bounds-threshold", 10.0,
93 PRC_DESC(
"This is the threshold size for a CollisionParabola to " 94 "make a bounding box (BoundingHexahedron). If the parabola " 95 "is smaller than this, it will make a BoundingSphere instead, " 96 "which is much easier to make and will be good enough for " 100 (
"collision-parabola-bounds-sample", 10,
101 PRC_DESC(
"This is the number of points along a CollisionParabola to " 102 "sample in order to determine an accurate bounding box."));
105 (
"fluid-cap-amount", 100,
106 PRC_DESC(
"ensures that fluid pos doesn't check beyond X feet"));
109 (
"pushers-horizontal",
false,
110 PRC_DESC(
"Set this true to make all CollisionHandlerPushers have the " 111 "set_horizontal() flag by default, false to let the move " 112 "in three dimensions by default."));
122 static bool initialized =
false;
128 CollisionBox::init_type();
129 CollisionCapsule::init_type();
130 CollisionEntry::init_type();
131 CollisionHandler::init_type();
132 CollisionHandlerEvent::init_type();
133 CollisionHandlerHighestEvent::init_type();
134 CollisionHandlerFloor::init_type();
135 CollisionHandlerGravity::init_type();
136 CollisionHandlerPhysical::init_type();
137 CollisionHandlerPusher::init_type();
138 CollisionHandlerFluidPusher::init_type();
139 CollisionHandlerQueue::init_type();
140 CollisionInvSphere::init_type();
141 CollisionLine::init_type();
142 CollisionLevelStateBase::init_type();
143 CollisionGeom::init_type();
144 CollisionNode::init_type();
145 CollisionParabola::init_type();
146 CollisionPlane::init_type();
147 CollisionPolygon::init_type();
148 CollisionFloorMesh::init_type();
149 CollisionRay::init_type();
150 CollisionSegment::init_type();
151 CollisionSolid::init_type();
152 CollisionSphere::init_type();
153 CollisionTraverser::init_type();
155 #ifdef DO_COLLISION_RECORDING 156 CollisionRecorder::init_type();
157 CollisionVisualizer::init_type();
162 "CollisionTube", 6, 44);
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Factory method to generate a CollisionPolygon object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Factory method to generate a CollisionSphere object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is a convenience class to specialize ConfigVariable as a boolean type.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is a convenience class to specialize ConfigVariable as a floating- point type.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CollisionCapsule.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Factory method to generate a CollisionBox object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CollisionSegment.
static void record_obsolete_type_name(TypeHandle type, std::string name, int before_major, int before_minor)
Registers the given type as having an older name in .bam files *before* the indicated version.
void init_libcollide()
Initializes the library.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Factory method to generate a CollisionInvSphere object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CollisionRay.
static void register_with_read_factory()
Factory method to generate a CollisionPolygon object.
static void register_with_read_factory()
Factory method to generate a CollisionPlane object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is a convenience class to specialize ConfigVariable as an integer type.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CollisionNode.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Factory method to generate a CollisionParabola object.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static void register_with_read_factory()
Tells the BamReader how to create objects of type CollisionLine.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.