void IKGoal::RemoveRotationAxis(const Vector3& p,const Vector3& axis) { switch(rotConstraint) { case 0: //done break; case 1: //single-axis rotation FatalError("TODO - set dual-axis rotation"); break; case 2: //dual-axis rotation //if one of the axes are parallel to the normal, all is well FatalError("TODO - dual-axis rotation isn't implemented"); break; case 3: //fixed rotation //allow it to rotate about the cp normal { Vector3 locAxis; Vector3 locPos; RigidTransform T; GetFixedGoalTransform(T); T.R.mulTranspose(axis,locAxis); T.mulInverse(p,locPos); SetAxisRotation(locAxis,axis); localPosition = locPos; endPosition = p; } break; } }