Files
2026-06-04 11:42:34 +02:00

221 lines
5.9 KiB
C#

using System;
namespace UnityEngine
{
// Token: 0x02000181 RID: 385
[Serializable]
public struct ContactFilter2D
{
// Token: 0x06001D23 RID: 7459 RVA: 0x000242C4 File Offset: 0x000224C4
public ContactFilter2D NoFilter()
{
this.useTriggers = true;
this.useLayerMask = false;
this.layerMask = -1;
this.useDepth = false;
this.useOutsideDepth = false;
this.minDepth = float.NegativeInfinity;
this.maxDepth = float.PositiveInfinity;
this.useNormalAngle = false;
this.useOutsideNormalAngle = false;
this.minNormalAngle = 0f;
this.maxNormalAngle = 359.9999f;
return this;
}
// Token: 0x06001D24 RID: 7460 RVA: 0x00024344 File Offset: 0x00022544
private void CheckConsistency()
{
this.minDepth = ((this.minDepth != float.NegativeInfinity && this.minDepth != float.PositiveInfinity && !float.IsNaN(this.minDepth)) ? this.minDepth : float.MinValue);
this.maxDepth = ((this.maxDepth != float.NegativeInfinity && this.maxDepth != float.PositiveInfinity && !float.IsNaN(this.maxDepth)) ? this.maxDepth : float.MaxValue);
if (this.minDepth > this.maxDepth)
{
float num = this.minDepth;
this.minDepth = this.maxDepth;
this.maxDepth = num;
}
this.minNormalAngle = ((!float.IsNaN(this.minNormalAngle)) ? Mathf.Clamp(this.minNormalAngle, 0f, 359.9999f) : 0f);
this.maxNormalAngle = ((!float.IsNaN(this.maxNormalAngle)) ? Mathf.Clamp(this.maxNormalAngle, 0f, 359.9999f) : 359.9999f);
if (this.minNormalAngle > this.maxNormalAngle)
{
float num2 = this.minNormalAngle;
this.minNormalAngle = this.maxNormalAngle;
this.maxNormalAngle = num2;
}
}
// Token: 0x06001D25 RID: 7461 RVA: 0x000244A4 File Offset: 0x000226A4
public void ClearLayerMask()
{
this.useLayerMask = false;
}
// Token: 0x06001D26 RID: 7462 RVA: 0x000244B0 File Offset: 0x000226B0
public void SetLayerMask(LayerMask layerMask)
{
this.layerMask = layerMask;
this.useLayerMask = true;
}
// Token: 0x06001D27 RID: 7463 RVA: 0x000244C4 File Offset: 0x000226C4
public void ClearDepth()
{
this.useDepth = false;
}
// Token: 0x06001D28 RID: 7464 RVA: 0x000244D0 File Offset: 0x000226D0
public void SetDepth(float minDepth, float maxDepth)
{
this.minDepth = minDepth;
this.maxDepth = maxDepth;
this.useDepth = true;
this.CheckConsistency();
}
// Token: 0x06001D29 RID: 7465 RVA: 0x000244F0 File Offset: 0x000226F0
public void ClearNormalAngle()
{
this.useNormalAngle = false;
}
// Token: 0x06001D2A RID: 7466 RVA: 0x000244FC File Offset: 0x000226FC
public void SetNormalAngle(float minNormalAngle, float maxNormalAngle)
{
this.minNormalAngle = minNormalAngle;
this.maxNormalAngle = maxNormalAngle;
this.useNormalAngle = true;
this.CheckConsistency();
}
// Token: 0x17000651 RID: 1617
// (get) Token: 0x06001D2B RID: 7467 RVA: 0x0002451C File Offset: 0x0002271C
public bool isFiltering
{
get
{
return !this.useTriggers || this.useLayerMask || this.useDepth || this.useNormalAngle;
}
}
// Token: 0x06001D2C RID: 7468 RVA: 0x0002455C File Offset: 0x0002275C
public bool IsFilteringTrigger(Collider2D collider)
{
return !this.useTriggers && collider.isTrigger;
}
// Token: 0x06001D2D RID: 7469 RVA: 0x00024588 File Offset: 0x00022788
public bool IsFilteringLayerMask(GameObject obj)
{
return this.useLayerMask && (this.layerMask & (1 << obj.layer)) == 0;
}
// Token: 0x06001D2E RID: 7470 RVA: 0x000245C8 File Offset: 0x000227C8
public bool IsFilteringDepth(GameObject obj)
{
bool flag;
if (!this.useDepth)
{
flag = false;
}
else
{
if (this.minDepth > this.maxDepth)
{
float num = this.minDepth;
this.minDepth = this.maxDepth;
this.maxDepth = num;
}
float z = obj.transform.position.z;
bool flag2 = z < this.minDepth || z > this.maxDepth;
if (this.useOutsideDepth)
{
flag = !flag2;
}
else
{
flag = flag2;
}
}
return flag;
}
// Token: 0x06001D2F RID: 7471 RVA: 0x00024664 File Offset: 0x00022864
public bool IsFilteringNormalAngle(Vector2 normal)
{
float num = Mathf.Atan2(normal.y, normal.x) * 57.29578f;
return this.IsFilteringNormalAngle(num);
}
// Token: 0x06001D30 RID: 7472 RVA: 0x0002469C File Offset: 0x0002289C
public bool IsFilteringNormalAngle(float angle)
{
angle -= Mathf.Floor(angle / 359.9999f) * 359.9999f;
float num = Mathf.Clamp(this.minNormalAngle, 0f, 359.9999f);
float num2 = Mathf.Clamp(this.maxNormalAngle, 0f, 359.9999f);
if (num > num2)
{
float num3 = num;
num = num2;
num2 = num3;
}
bool flag = angle < num || angle > num2;
bool flag2;
if (this.useOutsideNormalAngle)
{
flag2 = !flag;
}
else
{
flag2 = flag;
}
return flag2;
}
// Token: 0x06001D31 RID: 7473 RVA: 0x0002472C File Offset: 0x0002292C
internal static ContactFilter2D CreateLegacyFilter(int layerMask, float minDepth, float maxDepth)
{
ContactFilter2D contactFilter2D = default(ContactFilter2D);
contactFilter2D.useTriggers = Physics2D.queriesHitTriggers;
contactFilter2D.SetLayerMask(layerMask);
contactFilter2D.SetDepth(minDepth, maxDepth);
return contactFilter2D;
}
// Token: 0x04000439 RID: 1081
public bool useTriggers;
// Token: 0x0400043A RID: 1082
public bool useLayerMask;
// Token: 0x0400043B RID: 1083
public bool useDepth;
// Token: 0x0400043C RID: 1084
public bool useOutsideDepth;
// Token: 0x0400043D RID: 1085
public bool useNormalAngle;
// Token: 0x0400043E RID: 1086
public bool useOutsideNormalAngle;
// Token: 0x0400043F RID: 1087
public LayerMask layerMask;
// Token: 0x04000440 RID: 1088
public float minDepth;
// Token: 0x04000441 RID: 1089
public float maxDepth;
// Token: 0x04000442 RID: 1090
public float minNormalAngle;
// Token: 0x04000443 RID: 1091
public float maxNormalAngle;
// Token: 0x04000444 RID: 1092
public const float NormalAngleUpperLimit = 359.9999f;
}
}