private KeyFramePivotScaledValues GetKeyFrameValues(Key timelineKey, ObjectInfo box, KeyObjectRef objectRef) { var pivotValue = new KeyFrameValues { RelativePosition = new Vector3(timelineKey.Object.X, timelineKey.Object.Y, 0.0f), RelativeRotation = new Vector3 { Z = timelineKey.Object.Angle }, Spin = timelineKey.Spin }; var width = (int)box.Width; var height = (int)box.Height; float pivotX = timelineKey.Object.PivotX.HasValue ? timelineKey.Object.PivotX.Value : box.PivotX; float pivotY = timelineKey.Object.PivotY.HasValue ? timelineKey.Object.PivotY.Value : box.PivotY; var scaledPolygonValue = new KeyFrameValues { RelativeScaleX = timelineKey.Object.ScaleX, RelativeScaleY = timelineKey.Object.ScaleY, RelativePosition = GetPivotedRelativePosition(width, height, pivotX, pivotY, objectRef.ZIndex) }; return new KeyFramePivotScaledValues { Pivot = pivotValue, ScaledPolygon = scaledPolygonValue }; }
private KeyFrameValues GetKeyFrameValuesForPoint(Key timelineKey, KeyObjectRef objectRef) { return new KeyFrameValues { RelativePosition = new Vector3(timelineKey.Object.X, timelineKey.Object.Y, 0.0f), RelativeRotation = new Vector3 { Z = timelineKey.Object.Angle }, Spin = timelineKey.Spin }; }
private static KeyFramePivotScaledValues GetKeyFrameValues(Key timelineKey, SpriterDataFolderFile file, IDictionary<string, Texture2D> textures, string folderFileId, KeyObjectRef objectRef) { var pivotValue = new KeyFrameValues { RelativePosition = new Vector3(timelineKey.Object.X, timelineKey.Object.Y, 0.0f), RelativeRotation = new Vector3 { Z = timelineKey.Object.Angle }, Spin = timelineKey.Spin }; int width = file.Width; int height = file.Height; var pivotY = 1.0f; var pivotX = 0.0f; if (timelineKey.Object.PivotX.HasValue) { pivotX = timelineKey.Object.PivotX.Value; } else if (file.PivotX.HasValue) { pivotX = file.PivotX.Value; } if (timelineKey.Object.PivotY.HasValue) { pivotY = timelineKey.Object.PivotY.Value; } else if (file.PivotY.HasValue) { pivotY = file.PivotY.Value; } var ScaledSpriteValue = new KeyFrameValues { Texture = textures[folderFileId], RelativeScaleX = timelineKey.Object.ScaleX, RelativeScaleY = timelineKey.Object.ScaleY, RelativePosition = GetPivotedRelativePosition(width, height, pivotX, pivotY, objectRef.ZIndex), Alpha = timelineKey.Object.Alpha }; return new KeyFramePivotScaledValues { Pivot = pivotValue, ScaledSprite = ScaledSpriteValue }; }