public static QuaternionPatch GeneratePatch(MWQuaternion _old, Quaternion _new) { if (_old == null && _new != null) { return(new QuaternionPatch(_new)); } else if (_new == null) { return(null); } var patch = new QuaternionPatch() { X = _old.X != _new.x ? (float?)_new.x : null, Y = _old.Y != _new.y ? (float?)_new.y : null, Z = _old.Z != _new.z ? (float?)_new.z : null, W = _old.W != _new.w ? (float?)_new.w : null }; if (patch.IsPatched()) { return(patch); } else { return(null); } }
public static MWQuaternion ApplyPatch(this MWQuaternion _this, QuaternionPatch quaternion) { if (quaternion == null) { return(_this); } if (quaternion.W != null) { _this.W = quaternion.W.Value; } if (quaternion.X != null) { _this.X = quaternion.X.Value; } if (quaternion.Y != null) { _this.Y = quaternion.Y.Value; } if (quaternion.Z != null) { _this.Z = quaternion.Z.Value; } return(_this); }