private void Rotate(int vectorIndex, bool inverse) { Vector3 eulerAngles = new Vector3(0, 0, 0); eulerAngles[vectorIndex] = inverse ? -deltaRotation : deltaRotation; if (part.isCompund) { CompoundPartTransform.Rotate((CompoundPart)part, eulerAngles, referenceSpace, compoundTargetSelected); } else { PartTransform.Rotate(part, eulerAngles, referenceSpace); } }
private string SetRotation(int vectorIndex, string value) { float fValue = float.Parse(value, CultureInfo.InvariantCulture.NumberFormat); Quaternion rotation = PartUtil.GetRotation(part, referenceSpace, compoundTargetSelected); Vector3 partEulerAngles = rotation.eulerAngles; Vector3 eulerAngles = new Vector3(0, 0, 0); eulerAngles[vectorIndex] = fValue - partEulerAngles[vectorIndex]; if (part.isCompund) { CompoundPartTransform.Rotate((CompoundPart)part, eulerAngles, referenceSpace, compoundTargetSelected); } else { PartTransform.Rotate(part, eulerAngles, referenceSpace); } return(value); }