using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /// Settings that control the depth-of-field effect. public partial class DepthOfFieldSettings : ScriptObject { private DepthOfFieldSettings(bool __dummy0) { } public DepthOfFieldSettings() { Internal_DepthOfFieldSettings(this); } /// Enables or disables the depth of field effect. public bool Enabled { get { return Internal_getenabled(mCachedPtr); } set { Internal_setenabled(mCachedPtr, value); } } /// /// Distance from the camera at which the focal plane is located in. Objects at this distance will be fully in focus. /// public float FocalDistance { get { return Internal_getfocalDistance(mCachedPtr); } set { Internal_setfocalDistance(mCachedPtr, value); } } /// /// Range within which the objects remain fully in focus. This range is applied relative to the focal distance. Only /// relevant if Gaussian depth of field is used as other methods don't use a constant in-focus range. /// public float FocalRange { get { return Internal_getfocalRange(mCachedPtr); } set { Internal_setfocalRange(mCachedPtr, value); } } /// /// Determines the size of the range within which objects transition from focused to fully unfocused, at the near plane. /// Only relevant for Gaussian depth of field. /// public float NearTransitionRange { get { return Internal_getnearTransitionRange(mCachedPtr); } set { Internal_setnearTransitionRange(mCachedPtr, value); } } /// /// Determines the size of the range within which objects transition from focused to fully unfocused, at the far plane. /// Only relevant for Gaussian depth of field. /// public float FarTransitionRange { get { return Internal_getfarTransitionRange(mCachedPtr); } set { Internal_setfarTransitionRange(mCachedPtr, value); } } /// /// Determines the amount of blur to apply to fully unfocused objects that are closer to camera than the in-focus zone. /// Set to zero to disable near-field blur. Only relevant for Gaussian depth of field. /// public float NearBlurAmount { get { return Internal_getnearBlurAmount(mCachedPtr); } set { Internal_setnearBlurAmount(mCachedPtr, value); } } /// /// Determines the amount of blur to apply to fully unfocused objects that are farther away from camera than the in-focus /// zone. Set to zero to disable far-field blur. Only relevant for Gaussian depth of field. /// public float FarBlurAmount { get { return Internal_getfarBlurAmount(mCachedPtr); } set { Internal_setfarBlurAmount(mCachedPtr, value); } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_DepthOfFieldSettings(DepthOfFieldSettings managedInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool Internal_getenabled(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setenabled(IntPtr thisPtr, bool value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getfocalDistance(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setfocalDistance(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getfocalRange(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setfocalRange(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getnearTransitionRange(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setnearTransitionRange(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getfarTransitionRange(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setfarTransitionRange(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getnearBlurAmount(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setnearBlurAmount(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getfarBlurAmount(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setfarBlurAmount(IntPtr thisPtr, float value); } }