16   return dMassCheck(&_mass);
    25 set_parameters(dReal themass,
    26                dReal cgx, dReal cgy, dReal cgz,
    27                dReal I11, dReal I22, dReal I33,
    28                dReal I12, dReal I13, dReal I23) {
    29   _mass.setParameters(themass,
    36 set_parameters(dReal themass,
    37                const LVecBase3f ¢er,
    39   set_parameters(themass,
    40                  center[0], center[1], center[2],
    41                  i(0, 0), i(1, 1), i(2, 2),
    42                  i(0, 1), i(0, 2), i(1, 2));
    46 set_sphere(dReal density, dReal radius) {
    47   _mass.setSphere(density, radius);
    51 set_sphere_total(dReal total_mass, dReal radius) {
    52   dMassSetSphereTotal(&_mass, total_mass, radius);
    56 set_capsule(dReal density, 
int direction,
    57             dReal radius, dReal length) {
    58   _mass.setCapsule(density, direction,
    63 set_capsule_total(dReal total_mass, 
int direction,
    64                   dReal radius, dReal length) {
    65   dMassSetCapsuleTotal(&_mass,
    66                        total_mass, direction,
    71 set_cylinder(dReal density, 
int direction,
    72              dReal radius, dReal length) {
    73   dMassSetCylinder(&_mass,
    79 set_cylinder_total(dReal total_mass, 
int direction,
    80                    dReal radius, dReal length) {
    81   dMassSetCylinderTotal(&_mass, total_mass, direction,
    86 set_box(dReal density,
    87         dReal lx, dReal ly, dReal lz) {
    93 set_box(dReal density,
    94         const LVecBase3f &size) {
    96                size[0], size[1], size[2]);
   100 set_box_total(dReal total_mass,
   101               const LVecBase3f &size) {
   102   dMassSetBoxTotal(&_mass,
   104                    size[0], size[1], size[2]);
   107 INLINE 
void OdeMass::
   108 set_box_total(dReal total_mass,
   109               dReal lx, dReal ly, dReal lz) {
   110   dMassSetBoxTotal(&_mass,
   115 INLINE 
void OdeMass::
   116 adjust(dReal newmass) {
   117   _mass.adjust(newmass);
   120 INLINE 
void OdeMass::
   121 translate(dReal x, dReal y, dReal z) {
   122   _mass.translate(x, y, z);
   125 INLINE 
void OdeMass::
   126 translate(
const LVecBase3f &pos) {
   127   translate(pos[0], pos[1], pos[2]);
   130 INLINE 
void OdeMass::
   131 rotate(
const LMatrix3f &r) {
   132   dMatrix3 rot = { r(0, 0), r(0, 1), r(0, 2), 0,
   133                    r(1, 0), r(1, 1), r(1, 2), 0,
   134                    r(2, 0), r(2, 1), r(2, 2), 0 };
   138 INLINE 
void OdeMass::
   140   _mass.add(other.get_mass_ptr());
   143 INLINE dReal OdeMass::
   144 get_magnitude()
 const {
   148 INLINE LPoint3f OdeMass::
   150   return LPoint3f(_mass.c[0], _mass.c[1], _mass.c[2]);
   153 INLINE LMatrix3f OdeMass::
   154 get_inertial_tensor()
 const {
   155   return LMatrix3f(_mass.I[0], _mass.I[1], _mass.I[2] ,
   156                    _mass.I[4], _mass.I[5], _mass.I[6] ,
   157                    _mass.I[8], _mass.I[9], _mass.I[10]);