using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Rendering * @{ */ /// /// Specifies a location at which a pre-computed texture containing scene radiance will be generated. This texture will /// then be used by the renderer to provide specular reflections. /// [ShowInInspector] public partial class ReflectionProbe : Component { private ReflectionProbe(bool __dummy0) { } protected ReflectionProbe() { } /// Changes the type of the probe. [ShowInInspector] [NativeWrapper] public ReflectionProbeType Type { get { return Internal_getType(mCachedPtr); } set { Internal_setType(mCachedPtr, value); } } /// Sets the radius of a sphere reflection probe. [ShowInInspector] [NativeWrapper] public float Radius { get { return Internal_getRadius(mCachedPtr); } set { Internal_setRadius(mCachedPtr, value); } } /// Sets the extents of a box reflection probe. Determines range of influence. [ShowInInspector] [NativeWrapper] public Vector3 Extents { get { Vector3 temp; Internal_getExtents(mCachedPtr, out temp); return temp; } set { Internal_setExtents(mCachedPtr, ref value); } } /// /// Allows you assign a custom texture to use as a reflection map. This will disable automatic generation of reflections. /// To re-enable auto-generation call this with a null parameter. /// [ShowInInspector] [NativeWrapper] public RRef CustomTexture { get { return Internal_getCustomTexture(mCachedPtr); } set { Internal_setCustomTexture(mCachedPtr, value); } } /// /// Captures the scene at the current location and generates a filtered reflection cubemap. No action is taken if a /// custom texture is set. /// public void Capture() { Internal_capture(mCachedPtr); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern ReflectionProbeType Internal_getType(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setType(IntPtr thisPtr, ReflectionProbeType type); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getRadius(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setRadius(IntPtr thisPtr, float radius); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_getExtents(IntPtr thisPtr, out Vector3 __output); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setExtents(IntPtr thisPtr, ref Vector3 extents); [MethodImpl(MethodImplOptions.InternalCall)] private static extern RRef Internal_getCustomTexture(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setCustomTexture(IntPtr thisPtr, RRef texture); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_capture(IntPtr thisPtr); } /** @} */ }