Example #1
0
void UniversalJoint::computeValue(double& value, int portId)
{
  if(portId == AXIS1_JOINT)
  {
    value = (dJointGetUniversalAngle1(physicalJoint) * 180.0 / M_PI);
  }
  else if(portId == AXIS1_MOTOR)
  {
    if(axis1->motor->getMotorType() == VELOCITY)
      value = (dJointGetUniversalParam(physicalJoint, dParamVel));
    else
      value = (dJointGetUniversalAngle1(physicalJoint) * 180.0 / M_PI);
  }
  else if(portId == AXIS2_JOINT)
  {
    value = (dJointGetUniversalAngle2(physicalJoint) * 180.0 / M_PI);
  }
  else if(portId == AXIS2_MOTOR)
  {
    if(axis2->motor->getMotorType() == VELOCITY)
      value = (dJointGetUniversalParam(physicalJoint, dParamVel2));
    else
      value = (dJointGetUniversalAngle2(physicalJoint) * 180.0 / M_PI);
  }
}
Example #2
0
static float get_phys_joint_attr(dJointID j, int p)
{
    switch (dJointGetType(j))
    {
    case dJointTypeHinge:     return (float) dJointGetHingeParam    (j, p);
    case dJointTypeSlider:    return (float) dJointGetSliderParam   (j, p);
    case dJointTypeHinge2:    return (float) dJointGetHinge2Param   (j, p);
    case dJointTypeUniversal: return (float) dJointGetUniversalParam(j, p);
    default:                  return 0.0f;
    }
}