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.