private DualQuaternion GetObjectCenteredRotationTransform(ChannelOutputs outputs, ScalingTransform parentScale) { DualQuaternion localSpaceTransform = GetJointCenteredRotationTransform(outputs, parentScale.Scale); Vector3 centerPoint = CenterPoint.GetValue(outputs); centerPoint = parentScale.Transform(centerPoint); return(DualQuaternion.FromTranslation(-centerPoint).Chain(localSpaceTransform).Chain(DualQuaternion.FromTranslation(+centerPoint))); }