historical/toontown-classic.git/panda/include/collideMask.h

53 lines
2 KiB
C
Raw Normal View History

2024-01-16 11:20:27 -06:00
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file collideMask.h
* @author drose
* @date 2000-07-03
*/
#ifndef COLLIDEMASK_H
#define COLLIDEMASK_H
#include "pandabase.h"
#include "bitMask.h"
// This is the data type of the collision mask: the set of bits that every
// CollisionNode has, and that any two nodes must have some in common in order
// to be tested for a mutual intersection.
// This file used to live in the collide directory, but since it's such a
// trivial definition that a few other directories (like egg) need without
// necessarily having to pull in all of collide, it seemed better to move it
// to putil.
typedef BitMask32 CollideMask;
// We need some conventions for initial bits for GeomNodes and CollideNodes.
// These are primarily advisory, since the application programmer is free to
// define each bit as he or she chooses, but they also control the initial
// default values that are assigned to new nodes.
// By established convention, the lower 20 bits are reserved for
// CollisionNodes. Each CollisionNode has all these bits set on by default
// (and no others). You can (and probably should) change this on a per-node
// basis to specialize CollisionNodes for different purposes.
static const CollideMask default_collision_node_collide_mask = CollideMask::lower_on(20);
// The next bit is reserved for generic GeomNodes. Each GeomNode has this bit
// on by default (and no others). You can, of course, set any mask you want
// on a particular GeomNode; this is just the default bit if you choose not to
// do anything.
static const CollideMask default_geom_node_collide_mask = CollideMask::bit(20);
// The remaining 11 bits are presently unassigned. No nodes will have these
// bits on by default.
#endif