historical/toontown-classic.git/panda/include/odeCollisionEntry.I
2024-01-16 11:20:27 -06:00

103 lines
2.1 KiB
Text

/**
* 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 odeCollisionEntry.I
* @author rdb
* @date 2009-03-13
*/
/**
*
*/
INLINE OdeCollisionEntry::
OdeCollisionEntry() {
}
/**
* Returns the first geom in the collision.
*/
INLINE OdeGeom OdeCollisionEntry::
get_geom1() const {
return OdeGeom(_geom1);
}
/**
* Returns the second geom in the collision.
*/
INLINE OdeGeom OdeCollisionEntry::
get_geom2() const {
return OdeGeom(_geom2);
}
/**
* Returns the first body in the collision.
*/
INLINE OdeBody OdeCollisionEntry::
get_body1() const {
return OdeBody(_body1);
}
/**
* Returns the second body in the collision.
*/
INLINE OdeBody OdeCollisionEntry::
get_body2() const {
return OdeBody(_body2);
}
/**
* Returns the number of contacts in the collision.
*/
INLINE size_t OdeCollisionEntry::
get_num_contacts() const {
return _num_contacts;
}
/**
* Returns the nth contact geom in the collision.
*/
INLINE OdeContactGeom OdeCollisionEntry::
get_contact_geom(size_t n) const {
nassertr(n >= 0 && n < _num_contacts, OdeContactGeom());
return _contact_geoms[n];
}
/**
* Returns the nth contact geom in the collision.
*/
INLINE OdeContactGeom OdeCollisionEntry::
operator [] (size_t n) const {
nassertr(n >= 0 && n < _num_contacts, OdeContactGeom());
return _contact_geoms[n];
}
/**
* Returns the nth contact point in the collision. This does exactly the same
* as get_contact_geom(n).get_pos().
*/
INLINE LPoint3f OdeCollisionEntry::
get_contact_point(size_t n) const {
nassertr(n >= 0 && n < _num_contacts, LPoint3f::zero());
return _contact_geoms[n].get_pos();
}
/**
* An OdeCollisionEntry evaluates to False if it holds no contacts.
*/
INLINE OdeCollisionEntry::
operator bool () const {
return (_num_contacts != 0);
}
/**
* Returns true if the entry holds no contacts.
*/
INLINE bool OdeCollisionEntry::
is_empty() const {
return (_num_contacts == 0);
}