181 lines
4.9 KiB
C#
181 lines
4.9 KiB
C#
using System;
|
|
using UnityEngine.Scripting;
|
|
|
|
namespace UnityEngine
|
|
{
|
|
// Token: 0x0200044F RID: 1103
|
|
[UsedByNativeCode]
|
|
public struct Plane
|
|
{
|
|
// Token: 0x060038A2 RID: 14498 RVA: 0x0006189C File Offset: 0x0005FA9C
|
|
public Plane(Vector3 inNormal, Vector3 inPoint)
|
|
{
|
|
this.m_Normal = Vector3.Normalize(inNormal);
|
|
this.m_Distance = -Vector3.Dot(inNormal, inPoint);
|
|
}
|
|
|
|
// Token: 0x060038A3 RID: 14499 RVA: 0x000618BC File Offset: 0x0005FABC
|
|
public Plane(Vector3 inNormal, float d)
|
|
{
|
|
this.m_Normal = Vector3.Normalize(inNormal);
|
|
this.m_Distance = d;
|
|
}
|
|
|
|
// Token: 0x060038A4 RID: 14500 RVA: 0x000618D4 File Offset: 0x0005FAD4
|
|
public Plane(Vector3 a, Vector3 b, Vector3 c)
|
|
{
|
|
this.m_Normal = Vector3.Normalize(Vector3.Cross(b - a, c - a));
|
|
this.m_Distance = -Vector3.Dot(this.m_Normal, a);
|
|
}
|
|
|
|
// Token: 0x17000D04 RID: 3332
|
|
// (get) Token: 0x060038A5 RID: 14501 RVA: 0x00061908 File Offset: 0x0005FB08
|
|
// (set) Token: 0x060038A6 RID: 14502 RVA: 0x00061924 File Offset: 0x0005FB24
|
|
public Vector3 normal
|
|
{
|
|
get
|
|
{
|
|
return this.m_Normal;
|
|
}
|
|
set
|
|
{
|
|
this.m_Normal = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000D05 RID: 3333
|
|
// (get) Token: 0x060038A7 RID: 14503 RVA: 0x00061930 File Offset: 0x0005FB30
|
|
// (set) Token: 0x060038A8 RID: 14504 RVA: 0x0006194C File Offset: 0x0005FB4C
|
|
public float distance
|
|
{
|
|
get
|
|
{
|
|
return this.m_Distance;
|
|
}
|
|
set
|
|
{
|
|
this.m_Distance = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060038A9 RID: 14505 RVA: 0x00061958 File Offset: 0x0005FB58
|
|
public void SetNormalAndPosition(Vector3 inNormal, Vector3 inPoint)
|
|
{
|
|
this.m_Normal = Vector3.Normalize(inNormal);
|
|
this.m_Distance = -Vector3.Dot(inNormal, inPoint);
|
|
}
|
|
|
|
// Token: 0x060038AA RID: 14506 RVA: 0x00061978 File Offset: 0x0005FB78
|
|
public void Set3Points(Vector3 a, Vector3 b, Vector3 c)
|
|
{
|
|
this.m_Normal = Vector3.Normalize(Vector3.Cross(b - a, c - a));
|
|
this.m_Distance = -Vector3.Dot(this.m_Normal, a);
|
|
}
|
|
|
|
// Token: 0x060038AB RID: 14507 RVA: 0x000619AC File Offset: 0x0005FBAC
|
|
public void Flip()
|
|
{
|
|
this.m_Normal = -this.m_Normal;
|
|
this.m_Distance = -this.m_Distance;
|
|
}
|
|
|
|
// Token: 0x17000D06 RID: 3334
|
|
// (get) Token: 0x060038AC RID: 14508 RVA: 0x000619D0 File Offset: 0x0005FBD0
|
|
public Plane flipped
|
|
{
|
|
get
|
|
{
|
|
return new Plane(-this.m_Normal, -this.m_Distance);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060038AD RID: 14509 RVA: 0x000619FC File Offset: 0x0005FBFC
|
|
public void Translate(Vector3 translation)
|
|
{
|
|
this.m_Distance += Vector3.Dot(this.m_Normal, translation);
|
|
}
|
|
|
|
// Token: 0x060038AE RID: 14510 RVA: 0x00061A18 File Offset: 0x0005FC18
|
|
public static Plane Translate(Plane plane, Vector3 translation)
|
|
{
|
|
return new Plane(plane.m_Normal, plane.m_Distance += Vector3.Dot(plane.m_Normal, translation));
|
|
}
|
|
|
|
// Token: 0x060038AF RID: 14511 RVA: 0x00061A58 File Offset: 0x0005FC58
|
|
public Vector3 ClosestPointOnPlane(Vector3 point)
|
|
{
|
|
float num = Vector3.Dot(this.m_Normal, point) + this.m_Distance;
|
|
return point - this.m_Normal * num;
|
|
}
|
|
|
|
// Token: 0x060038B0 RID: 14512 RVA: 0x00061A94 File Offset: 0x0005FC94
|
|
public float GetDistanceToPoint(Vector3 point)
|
|
{
|
|
return Vector3.Dot(this.m_Normal, point) + this.m_Distance;
|
|
}
|
|
|
|
// Token: 0x060038B1 RID: 14513 RVA: 0x00061ABC File Offset: 0x0005FCBC
|
|
public bool GetSide(Vector3 point)
|
|
{
|
|
return Vector3.Dot(this.m_Normal, point) + this.m_Distance > 0f;
|
|
}
|
|
|
|
// Token: 0x060038B2 RID: 14514 RVA: 0x00061AEC File Offset: 0x0005FCEC
|
|
public bool SameSide(Vector3 inPt0, Vector3 inPt1)
|
|
{
|
|
float distanceToPoint = this.GetDistanceToPoint(inPt0);
|
|
float distanceToPoint2 = this.GetDistanceToPoint(inPt1);
|
|
return (distanceToPoint > 0f && distanceToPoint2 > 0f) || (distanceToPoint <= 0f && distanceToPoint2 <= 0f);
|
|
}
|
|
|
|
// Token: 0x060038B3 RID: 14515 RVA: 0x00061B44 File Offset: 0x0005FD44
|
|
public bool Raycast(Ray ray, out float enter)
|
|
{
|
|
float num = Vector3.Dot(ray.direction, this.m_Normal);
|
|
float num2 = -Vector3.Dot(ray.origin, this.m_Normal) - this.m_Distance;
|
|
bool flag;
|
|
if (Mathf.Approximately(num, 0f))
|
|
{
|
|
enter = 0f;
|
|
flag = false;
|
|
}
|
|
else
|
|
{
|
|
enter = num2 / num;
|
|
flag = enter > 0f;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x060038B4 RID: 14516 RVA: 0x00061BB4 File Offset: 0x0005FDB4
|
|
public override string ToString()
|
|
{
|
|
return UnityString.Format("(normal:({0:F1}, {1:F1}, {2:F1}), distance:{3:F1})", new object[]
|
|
{
|
|
this.m_Normal.x,
|
|
this.m_Normal.y,
|
|
this.m_Normal.z,
|
|
this.m_Distance
|
|
});
|
|
}
|
|
|
|
// Token: 0x060038B5 RID: 14517 RVA: 0x00061C20 File Offset: 0x0005FE20
|
|
public string ToString(string format)
|
|
{
|
|
return UnityString.Format("(normal:({0}, {1}, {2}), distance:{3})", new object[]
|
|
{
|
|
this.m_Normal.x.ToString(format),
|
|
this.m_Normal.y.ToString(format),
|
|
this.m_Normal.z.ToString(format),
|
|
this.m_Distance.ToString(format)
|
|
});
|
|
}
|
|
|
|
// Token: 0x04001124 RID: 4388
|
|
private Vector3 m_Normal;
|
|
|
|
// Token: 0x04001125 RID: 4389
|
|
private float m_Distance;
|
|
}
|
|
}
|