public void InterpolateBetween(VariableState firstState, VariableState secondState, float interpolationValue) { #if DEBUG if (float.IsNaN(interpolationValue)) { throw new System.Exception("interpolationValue cannot be NaN"); } #endif bool setColoredFrameInstanceCurrentColorCategoryStateFirstValue = false; bool setColoredFrameInstanceCurrentColorCategoryStateSecondValue = false; Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory ColoredFrameInstanceCurrentColorCategoryStateFirstValue = Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory.Gray; Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory ColoredFrameInstanceCurrentColorCategoryStateSecondValue = Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory.Gray; bool setColoredFrameInstanceHeightFirstValue = false; bool setColoredFrameInstanceHeightSecondValue = false; float ColoredFrameInstanceHeightFirstValue = 0; float ColoredFrameInstanceHeightSecondValue = 0; bool setColoredFrameInstanceWidthFirstValue = false; bool setColoredFrameInstanceWidthSecondValue = false; float ColoredFrameInstanceWidthFirstValue = 0; float ColoredFrameInstanceWidthSecondValue = 0; bool setColoredFrameInstanceXFirstValue = false; bool setColoredFrameInstanceXSecondValue = false; float ColoredFrameInstanceXFirstValue = 0; float ColoredFrameInstanceXSecondValue = 0; bool setColoredFrameInstanceYFirstValue = false; bool setColoredFrameInstanceYSecondValue = false; float ColoredFrameInstanceYFirstValue = 0; float ColoredFrameInstanceYSecondValue = 0; bool setHeightFirstValue = false; bool setHeightSecondValue = false; float HeightFirstValue = 0; float HeightSecondValue = 0; bool setWidthFirstValue = false; bool setWidthSecondValue = false; float WidthFirstValue = 0; float WidthSecondValue = 0; switch (firstState) { case VariableState.Default: setColoredFrameInstanceCurrentColorCategoryStateFirstValue = true; ColoredFrameInstanceCurrentColorCategoryStateFirstValue = Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory.TransparentBlack; setColoredFrameInstanceHeightFirstValue = true; ColoredFrameInstanceHeightFirstValue = 0f; if (interpolationValue < 1) { this.ColoredFrameInstance.HeightUnits = Gum.DataTypes.DimensionUnitType.RelativeToContainer; } setColoredFrameInstanceWidthFirstValue = true; ColoredFrameInstanceWidthFirstValue = 0f; if (interpolationValue < 1) { this.ColoredFrameInstance.WidthUnits = Gum.DataTypes.DimensionUnitType.RelativeToContainer; } setColoredFrameInstanceXFirstValue = true; ColoredFrameInstanceXFirstValue = 0f; if (interpolationValue < 1) { this.ColoredFrameInstance.XOrigin = RenderingLibrary.Graphics.HorizontalAlignment.Center; } if (interpolationValue < 1) { this.ColoredFrameInstance.XUnits = Gum.Converters.GeneralUnitType.PixelsFromMiddle; } setColoredFrameInstanceYFirstValue = true; ColoredFrameInstanceYFirstValue = 0f; if (interpolationValue < 1) { this.ColoredFrameInstance.YOrigin = RenderingLibrary.Graphics.VerticalAlignment.Center; } if (interpolationValue < 1) { this.ColoredFrameInstance.YUnits = Gum.Converters.GeneralUnitType.PixelsFromMiddle; } setHeightFirstValue = true; HeightFirstValue = 300f; setWidthFirstValue = true; WidthFirstValue = 300f; break; } switch (secondState) { case VariableState.Default: setColoredFrameInstanceCurrentColorCategoryStateSecondValue = true; ColoredFrameInstanceCurrentColorCategoryStateSecondValue = Pirates.GumRuntimes.DefaultForms.ColoredFrameRuntime.ColorCategory.TransparentBlack; setColoredFrameInstanceHeightSecondValue = true; ColoredFrameInstanceHeightSecondValue = 0f; if (interpolationValue >= 1) { this.ColoredFrameInstance.HeightUnits = Gum.DataTypes.DimensionUnitType.RelativeToContainer; } setColoredFrameInstanceWidthSecondValue = true; ColoredFrameInstanceWidthSecondValue = 0f; if (interpolationValue >= 1) { this.ColoredFrameInstance.WidthUnits = Gum.DataTypes.DimensionUnitType.RelativeToContainer; } setColoredFrameInstanceXSecondValue = true; ColoredFrameInstanceXSecondValue = 0f; if (interpolationValue >= 1) { this.ColoredFrameInstance.XOrigin = RenderingLibrary.Graphics.HorizontalAlignment.Center; } if (interpolationValue >= 1) { this.ColoredFrameInstance.XUnits = Gum.Converters.GeneralUnitType.PixelsFromMiddle; } setColoredFrameInstanceYSecondValue = true; ColoredFrameInstanceYSecondValue = 0f; if (interpolationValue >= 1) { this.ColoredFrameInstance.YOrigin = RenderingLibrary.Graphics.VerticalAlignment.Center; } if (interpolationValue >= 1) { this.ColoredFrameInstance.YUnits = Gum.Converters.GeneralUnitType.PixelsFromMiddle; } setHeightSecondValue = true; HeightSecondValue = 300f; setWidthSecondValue = true; WidthSecondValue = 300f; break; } if (setColoredFrameInstanceCurrentColorCategoryStateFirstValue && setColoredFrameInstanceCurrentColorCategoryStateSecondValue) { ColoredFrameInstance.InterpolateBetween(ColoredFrameInstanceCurrentColorCategoryStateFirstValue, ColoredFrameInstanceCurrentColorCategoryStateSecondValue, interpolationValue); } if (setColoredFrameInstanceHeightFirstValue && setColoredFrameInstanceHeightSecondValue) { ColoredFrameInstance.Height = ColoredFrameInstanceHeightFirstValue * (1 - interpolationValue) + ColoredFrameInstanceHeightSecondValue * interpolationValue; } if (setColoredFrameInstanceWidthFirstValue && setColoredFrameInstanceWidthSecondValue) { ColoredFrameInstance.Width = ColoredFrameInstanceWidthFirstValue * (1 - interpolationValue) + ColoredFrameInstanceWidthSecondValue * interpolationValue; } if (setColoredFrameInstanceXFirstValue && setColoredFrameInstanceXSecondValue) { ColoredFrameInstance.X = ColoredFrameInstanceXFirstValue * (1 - interpolationValue) + ColoredFrameInstanceXSecondValue * interpolationValue; } if (setColoredFrameInstanceYFirstValue && setColoredFrameInstanceYSecondValue) { ColoredFrameInstance.Y = ColoredFrameInstanceYFirstValue * (1 - interpolationValue) + ColoredFrameInstanceYSecondValue * interpolationValue; } if (setHeightFirstValue && setHeightSecondValue) { Height = HeightFirstValue * (1 - interpolationValue) + HeightSecondValue * interpolationValue; } if (setWidthFirstValue && setWidthSecondValue) { Width = WidthFirstValue * (1 - interpolationValue) + WidthSecondValue * interpolationValue; } if (interpolationValue < 1) { mCurrentVariableState = firstState; } else { mCurrentVariableState = secondState; } }
public override void StopAnimations() { base.StopAnimations(); ColoredFrameInstance.StopAnimations(); }