61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|