|
|
@@ -0,0 +1,134 @@
|
|
|
+// Filename: bulletBaseCharacterControllerNode.cxx
|
|
|
+// Created by: enn0x (21Nov10)
|
|
|
+//
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+//
|
|
|
+// 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."
|
|
|
+//
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+#include "bulletBaseCharacterControllerNode.h"
|
|
|
+
|
|
|
+TypeHandle BulletBaseCharacterControllerNode::_type_handle;
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::Constructor
|
|
|
+// Access: Published
|
|
|
+// Description:
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+BulletBaseCharacterControllerNode::
|
|
|
+BulletBaseCharacterControllerNode(const char *name) : PandaNode(name) {
|
|
|
+
|
|
|
+ // Default collide mask
|
|
|
+ set_into_collide_mask(CollideMask::all_on());
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::get_legal_collide_mask
|
|
|
+// Access: Public, virtual
|
|
|
+// Description: Returns the subset of CollideMask bits that may be
|
|
|
+// set for this particular type of PandaNode. For
|
|
|
+// CharacterControllerNodes this returns all bits on.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+CollideMask BulletBaseCharacterControllerNode::
|
|
|
+get_legal_collide_mask() const {
|
|
|
+
|
|
|
+ return CollideMask::all_on();
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_flatten
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if it is generally safe to flatten out
|
|
|
+// this particular kind of Node by duplicating
|
|
|
+// instances, false otherwise (for instance, a Camera
|
|
|
+// cannot be safely flattened, because the Camera
|
|
|
+// pointer itself is meaningful).
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_flatten() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_modify_transform
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if it is safe to automatically adjust
|
|
|
+// the transform on this kind of node. Usually, this is
|
|
|
+// only a bad idea if the user expects to find a
|
|
|
+// particular transform on the node.
|
|
|
+//
|
|
|
+// ModelNodes with the preserve_transform flag set are
|
|
|
+// presently the only kinds of nodes that should not
|
|
|
+// have their transform even adjusted.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_modify_transform() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_combine
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if it is generally safe to combine this
|
|
|
+// particular kind of PandaNode with other kinds of
|
|
|
+// PandaNodes of compatible type, adding children or
|
|
|
+// whatever. For instance, an LODNode should not be
|
|
|
+// combined with any other PandaNode, because its set of
|
|
|
+// children is meaningful.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_combine() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_combine_children
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if it is generally safe to combine the
|
|
|
+// children of this PandaNode with each other. For
|
|
|
+// instance, an LODNode's children should not be
|
|
|
+// combined with each other, because the set of children
|
|
|
+// is meaningful.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_combine_children() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_flatten_below
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if a flatten operation may safely
|
|
|
+// continue past this node, or false if nodes below this
|
|
|
+// node may not be molested.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_flatten_below() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: BulletBaseCharacterControllerNode::safe_to_transform
|
|
|
+// Access: Public, Virtual
|
|
|
+// Description: Returns true if it is generally safe to transform
|
|
|
+// this particular kind of Node by calling the xform()
|
|
|
+// method, false otherwise. For instance, it's usually
|
|
|
+// a bad idea to attempt to xform a Character.
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+bool BulletBaseCharacterControllerNode::
|
|
|
+safe_to_transform() const {
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|