130 lines
4.7 KiB
Plaintext
130 lines
4.7 KiB
Plaintext
// Filename: odeCollisionEntry.cxx
|
|
// Created by: pro-rsoft (13Mar09)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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."
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::Constructor
|
|
// Access: Private
|
|
// Description:
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE OdeCollisionEntry::
|
|
OdeCollisionEntry() {
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_geom1
|
|
// Access: Published
|
|
// Description: Returns the first geom in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeGeom OdeCollisionEntry::
|
|
get_geom1() const {
|
|
return OdeGeom(_geom1);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_geom2
|
|
// Access: Published
|
|
// Description: Returns the second geom in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeGeom OdeCollisionEntry::
|
|
get_geom2() const {
|
|
return OdeGeom(_geom2);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_body1
|
|
// Access: Published
|
|
// Description: Returns the first body in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeBody OdeCollisionEntry::
|
|
get_body1() const {
|
|
return OdeBody(_body1);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_body2
|
|
// Access: Published
|
|
// Description: Returns the second body in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeBody OdeCollisionEntry::
|
|
get_body2() const {
|
|
return OdeBody(_body2);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_num_contacts
|
|
// Access: Published
|
|
// Description: Returns the number of contacts in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const size_t OdeCollisionEntry::
|
|
get_num_contacts() const {
|
|
return _num_contacts;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_contact_geom
|
|
// Access: Published
|
|
// Description: Returns the nth contact geom in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeContactGeom OdeCollisionEntry::
|
|
get_contact_geom(size_t n) const {
|
|
nassertr(n >= 0 && n < _num_contacts, OdeContactGeom());
|
|
return _contact_geoms[n];
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::operator []
|
|
// Access: Published
|
|
// Description: Returns the nth contact geom in the collision.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const OdeContactGeom OdeCollisionEntry::
|
|
operator [] (size_t n) const {
|
|
nassertr(n >= 0 && n < _num_contacts, OdeContactGeom());
|
|
return _contact_geoms[n];
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::get_contact_point
|
|
// Access: Published
|
|
// Description: Returns the nth contact point in the collision.
|
|
// This does exactly the same as
|
|
// get_contact_geom(n).get_pos().
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const LPoint3f OdeCollisionEntry::
|
|
get_contact_point(size_t n) const {
|
|
nassertr(n >= 0 && n < _num_contacts, LPoint3f::zero());
|
|
return _contact_geoms[n].get_pos();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::operator bool
|
|
// Access: Published
|
|
// Description: An OdeCollisionEntry evaluates to False if it
|
|
// holds no contacts.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE OdeCollisionEntry::
|
|
operator bool () const {
|
|
return (_num_contacts != 0);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: OdeCollisionEntry::is_empty
|
|
// Access: Published
|
|
// Description: Returns true if the entry holds no contacts.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool OdeCollisionEntry::
|
|
is_empty() const {
|
|
return (_num_contacts == 0);
|
|
}
|
|
|