|
@@ -18,6 +18,7 @@
|
|
|
|
|
|
|
|
#include "collisionHandlerQueue.h"
|
|
#include "collisionHandlerQueue.h"
|
|
|
#include "config_collide.h"
|
|
#include "config_collide.h"
|
|
|
|
|
+#include "indent.h"
|
|
|
|
|
|
|
|
TypeHandle CollisionHandlerQueue::_type_handle;
|
|
TypeHandle CollisionHandlerQueue::_type_handle;
|
|
|
|
|
|
|
@@ -41,7 +42,7 @@ public:
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::Constructor
|
|
// Function: CollisionHandlerQueue::Constructor
|
|
|
-// Access: Public
|
|
|
|
|
|
|
+// Access: Published
|
|
|
// Description:
|
|
// Description:
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
CollisionHandlerQueue::
|
|
CollisionHandlerQueue::
|
|
@@ -50,7 +51,7 @@ CollisionHandlerQueue() {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::begin_group
|
|
// Function: CollisionHandlerQueue::begin_group
|
|
|
-// Access: Public, Virtual
|
|
|
|
|
|
|
+// Access: Published, Virtual
|
|
|
// Description: Will be called by the CollisionTraverser before a new
|
|
// Description: Will be called by the CollisionTraverser before a new
|
|
|
// traversal is begun. It instructs the handler to
|
|
// traversal is begun. It instructs the handler to
|
|
|
// reset itself in preparation for a number of
|
|
// reset itself in preparation for a number of
|
|
@@ -63,7 +64,7 @@ begin_group() {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::add_entry
|
|
// Function: CollisionHandlerQueue::add_entry
|
|
|
-// Access: Public, Virtual
|
|
|
|
|
|
|
+// Access: Published, Virtual
|
|
|
// Description: Called between a begin_group() .. end_group()
|
|
// Description: Called between a begin_group() .. end_group()
|
|
|
// sequence for each collision that is detected.
|
|
// sequence for each collision that is detected.
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
@@ -75,7 +76,7 @@ add_entry(CollisionEntry *entry) {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::sort_entries
|
|
// Function: CollisionHandlerQueue::sort_entries
|
|
|
-// Access: Public
|
|
|
|
|
|
|
+// Access: Published
|
|
|
// Description: Sorts all the detected collisions front-to-back by
|
|
// Description: Sorts all the detected collisions front-to-back by
|
|
|
// from_intersection_point() so that those intersection
|
|
// from_intersection_point() so that those intersection
|
|
|
// points closest to the collider's origin (e.g., the
|
|
// points closest to the collider's origin (e.g., the
|
|
@@ -113,7 +114,7 @@ sort_entries() {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::clear_entries
|
|
// Function: CollisionHandlerQueue::clear_entries
|
|
|
-// Access: Public
|
|
|
|
|
|
|
+// Access: Published
|
|
|
// Description: Removes all the entries from the queue.
|
|
// Description: Removes all the entries from the queue.
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
void CollisionHandlerQueue::
|
|
void CollisionHandlerQueue::
|
|
@@ -123,7 +124,7 @@ clear_entries() {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::get_num_entries
|
|
// Function: CollisionHandlerQueue::get_num_entries
|
|
|
-// Access: Public
|
|
|
|
|
|
|
+// Access: Published
|
|
|
// Description: Returns the number of CollisionEntries detected last
|
|
// Description: Returns the number of CollisionEntries detected last
|
|
|
// pass.
|
|
// pass.
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
@@ -134,7 +135,7 @@ get_num_entries() const {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: CollisionHandlerQueue::get_entry
|
|
// Function: CollisionHandlerQueue::get_entry
|
|
|
-// Access: Public
|
|
|
|
|
|
|
+// Access: Published
|
|
|
// Description: Returns the nth CollisionEntry detected last pass.
|
|
// Description: Returns the nth CollisionEntry detected last pass.
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
CollisionEntry *CollisionHandlerQueue::
|
|
CollisionEntry *CollisionHandlerQueue::
|
|
@@ -142,3 +143,29 @@ get_entry(int n) const {
|
|
|
nassertr(n >= 0 && n < (int)_entries.size(), NULL);
|
|
nassertr(n >= 0 && n < (int)_entries.size(), NULL);
|
|
|
return _entries[n];
|
|
return _entries[n];
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
|
|
+// Function: CollisionHandlerQueue::output
|
|
|
|
|
+// Access: Published
|
|
|
|
|
+// Description:
|
|
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
|
|
+void CollisionHandlerQueue::
|
|
|
|
|
+output(ostream &out) const {
|
|
|
|
|
+ out << "CollisionHandlerQueue, " << _entries.size() << " entries";
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
|
|
+// Function: CollisionHandlerQueue::write
|
|
|
|
|
+// Access: Published
|
|
|
|
|
+// Description:
|
|
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
|
|
+void CollisionHandlerQueue::
|
|
|
|
|
+write(ostream &out, int indent_level) const {
|
|
|
|
|
+ indent(out, indent_level)
|
|
|
|
|
+ << "CollisionHandlerQueue, " << _entries.size() << " entries:\n";
|
|
|
|
|
+
|
|
|
|
|
+ Entries::const_iterator ei;
|
|
|
|
|
+ for (ei = _entries.begin(); ei != _entries.end(); ++ei) {
|
|
|
|
|
+ (*ei)->write(out, indent_level + 2);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|