using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using UnityEngine.Scripting; namespace UnityEngine.Experimental.Rendering { // Token: 0x020004E3 RID: 1251 [UsedByNativeCode] public struct ShadowSplitData { // Token: 0x06003C10 RID: 15376 RVA: 0x00069BF8 File Offset: 0x00067DF8 public unsafe Plane GetCullingPlane(int index) { if (index < 0 || index >= this.cullingPlaneCount || index >= 10) { throw new IndexOutOfRangeException("Invalid plane index"); } fixed (float* ptr = &this._cullingPlanes.FixedElementField) { return new Plane(new Vector3(ptr[(IntPtr)(index * 4) * 4], ptr[(IntPtr)(index * 4 + 1) * 4], ptr[(IntPtr)(index * 4 + 2) * 4]), ptr[(IntPtr)(index * 4 + 3) * 4]); } } // Token: 0x06003C11 RID: 15377 RVA: 0x00069C74 File Offset: 0x00067E74 public unsafe void SetCullingPlane(int index, Plane plane) { if (index < 0 || index >= this.cullingPlaneCount || index >= 10) { throw new IndexOutOfRangeException("Invalid plane index"); } fixed (float* ptr = &this._cullingPlanes.FixedElementField) { ptr[(IntPtr)(index * 4) * 4] = plane.normal.x; ptr[(IntPtr)(index * 4 + 1) * 4] = plane.normal.y; ptr[(IntPtr)(index * 4 + 2) * 4] = plane.normal.z; ptr[(IntPtr)(index * 4 + 3) * 4] = plane.distance; } } // Token: 0x04001239 RID: 4665 public int cullingPlaneCount; // Token: 0x0400123A RID: 4666 private ShadowSplitData.<_cullingPlanes>__FixedBuffer2 _cullingPlanes; // Token: 0x0400123B RID: 4667 public Vector4 cullingSphere; // Token: 0x020004E4 RID: 1252 [UnsafeValueType] [CompilerGenerated] [StructLayout(LayoutKind.Sequential, Size = 160)] public struct <_cullingPlanes>__FixedBuffer2 { // Token: 0x0400123C RID: 4668 public float FixedElementField; } } }