using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Image * @{ */ /// /// Represents a range of color values over some parameters, similar to a curve. Internally represented as a set of keys /// that get interpolated between. /// public partial class ColorGradient : ScriptObject { private ColorGradient(bool __dummy0) { } public ColorGradient() { Internal_ColorGradient(this); } public ColorGradient(Color color) { Internal_ColorGradient0(this, ref color); } public ColorGradient(ColorGradientKey[] keys) { Internal_ColorGradient1(this, keys); } /// Set of keys that control the gradient, sorted by time from first to last. public void SetKeys(ColorGradientKey[] keys) { Internal_setKeys(mCachedPtr, keys); } /// Specify a "gradient" that represents a single color value. public void SetConstant(Color color) { Internal_setConstant(mCachedPtr, ref color); } /// Evaluates a color at the specified . public Color Evaluate(float t) { Color temp; Internal_evaluate(mCachedPtr, t, out temp); return temp; } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_ColorGradient(ColorGradient managedInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_ColorGradient0(ColorGradient managedInstance, ref Color color); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_ColorGradient1(ColorGradient managedInstance, ColorGradientKey[] keys); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setKeys(IntPtr thisPtr, ColorGradientKey[] keys); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setConstant(IntPtr thisPtr, ref Color color); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_evaluate(IntPtr thisPtr, float t, out Color __output); } /** @} */ }