From 4a1f1084686a19a856502787458d06e425e7aa40 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 30 Sep 2003 23:07:41 +0000 Subject: [PATCH] improve CollisionNode interface --- panda/src/collide/collisionNode.I | 23 +++++++++++++++++++++++ panda/src/collide/collisionNode.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/panda/src/collide/collisionNode.I b/panda/src/collide/collisionNode.I index bc8959f3c0..66b28ab3ed 100644 --- a/panda/src/collide/collisionNode.I +++ b/panda/src/collide/collisionNode.I @@ -125,6 +125,17 @@ get_collide_geom() const { return (_flags & F_collide_geom) != 0; } +//////////////////////////////////////////////////////////////////// +// Function: CollisionNode::clear_solids +// Access: Published +// Description: Removes all solids from the node. +//////////////////////////////////////////////////////////////////// +INLINE void CollisionNode:: +clear_solids() { + _solids.clear(); + mark_bound_stale(); +} + //////////////////////////////////////////////////////////////////// // Function: CollisionNode::get_num_solids // Access: Published @@ -146,6 +157,18 @@ get_solid(int n) const { return _solids[n]; } +//////////////////////////////////////////////////////////////////// +// Function: CollisionNode::set_solid +// Access: Published +// Description: Replaces the solid with the indicated index. +//////////////////////////////////////////////////////////////////// +INLINE void CollisionNode:: +set_solid(int n, CollisionSolid *solid) { + nassertv(n >= 0 && n < get_num_solids()); + _solids[n] = solid; + mark_bound_stale(); +} + //////////////////////////////////////////////////////////////////// // Function: CollisionNode::remove_solid // Access: Published diff --git a/panda/src/collide/collisionNode.h b/panda/src/collide/collisionNode.h index 3958576c66..1954d4a5e3 100644 --- a/panda/src/collide/collisionNode.h +++ b/panda/src/collide/collisionNode.h @@ -63,8 +63,10 @@ PUBLISHED: INLINE void set_collide_geom(bool flag); INLINE bool get_collide_geom() const; + INLINE void clear_solids(); INLINE int get_num_solids() const; INLINE CollisionSolid *get_solid(int n) const; + INLINE void set_solid(int n, CollisionSolid *solid); INLINE void remove_solid(int n); INLINE int add_solid(CollisionSolid *solid);