mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
add show_collisions
This commit is contained in:
parent
ca04158482
commit
9f577fdc28
@ -21,6 +21,7 @@
|
||||
#include "collisionEntry.h"
|
||||
#include "collisionPolygon.h"
|
||||
#include "collisionRecorder.h"
|
||||
#include "collisionVisualizer.h"
|
||||
#include "config_collide.h"
|
||||
|
||||
#include "transformState.h"
|
||||
@ -358,6 +359,40 @@ set_recorder(CollisionRecorder *recorder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: CollisionTraverser::show_collisions
|
||||
// Access: Published
|
||||
// Description: This is a high-level function to create a
|
||||
// CollisionVisualizer object to render the collision
|
||||
// tests performed by this traverser. The supplied root
|
||||
// should be any node in the scene graph; typically, the
|
||||
// top node (e.g. render). The CollisionVisualizer will
|
||||
// be attached to this node.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
CollisionVisualizer *CollisionTraverser::
|
||||
show_collisions(const NodePath &root) {
|
||||
hide_collisions();
|
||||
CollisionVisualizer *viz = new CollisionVisualizer("show_collisions");
|
||||
_collision_visualizer_np = root.attach_new_node(viz);
|
||||
set_recorder(viz);
|
||||
return viz;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: CollisionTraverser::hide_collisions
|
||||
// Access: Published
|
||||
// Description: Undoes the effect of a previous call to
|
||||
// show_collisions().
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void CollisionTraverser::
|
||||
hide_collisions() {
|
||||
if (!_collision_visualizer_np.is_empty()) {
|
||||
_collision_visualizer_np.remove_node();
|
||||
}
|
||||
clear_recorder();
|
||||
}
|
||||
|
||||
#endif // DO_COLLISION_RECORDING
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
class CollisionNode;
|
||||
class CollisionRecorder;
|
||||
class CollisionVisualizer;
|
||||
class Geom;
|
||||
class NodePath;
|
||||
class CollisionEntry;
|
||||
@ -77,6 +78,9 @@ PUBLISHED:
|
||||
INLINE bool has_recorder() const;
|
||||
INLINE CollisionRecorder *get_recorder() const;
|
||||
INLINE void clear_recorder();
|
||||
|
||||
CollisionVisualizer *show_collisions(const NodePath &root);
|
||||
void hide_collisions();
|
||||
#endif // DO_COLLISION_RECORDING
|
||||
|
||||
void output(ostream &out) const;
|
||||
@ -127,6 +131,7 @@ private:
|
||||
bool _respect_prev_transform;
|
||||
#ifdef DO_COLLISION_RECORDING
|
||||
CollisionRecorder *_recorder;
|
||||
NodePath _collision_visualizer_np;
|
||||
#endif // DO_COLLISION_RECORDING
|
||||
|
||||
// Statistics
|
||||
|
Loading…
x
Reference in New Issue
Block a user