// Token: 0x0600490B RID: 18699 RVA: 0x00116868 File Offset: 0x00114A68 internal bool Internal_RaycastRef(Ray ray, ref global::UIHotSpot.Hit hit) { float num; float num2; IntersectHint intersectHint = Intersect3D.RayCircleInfiniteForward(ray, this.center, this.radius, ref num, ref num2); switch (intersectHint) { case 1: case 2: case 3: hit.distance = Mathf.Min(num, num2); if (hit.distance < 0f && (hit.distance = Mathf.Max(num, num2)) < 0f) { return(false); } hit.point = ray.GetPoint(hit.distance); hit.normal = Vector3.Normalize(hit.point - this.center); return(true); default: Debug.Log(intersectHint, this); return(false); } }
// Token: 0x060048BA RID: 18618 RVA: 0x0011435C File Offset: 0x0011255C internal bool Internal_RaycastRef(Ray ray, ref global::UIHotSpot.Hit hit) { if (this.radius == 0f) { return(false); } Plane plane; plane..ctor(global::UIHotSpot.forward, this.center); float num; if (!plane.Raycast(ray, ref num)) { hit = default(global::UIHotSpot.Hit); return(false); } hit.point = ray.GetPoint(num); hit.normal = ((!plane.GetSide(ray.origin)) ? global::UIHotSpot.backward : global::UIHotSpot.forward); Vector2 vector; vector.x = hit.point.x - this.center.x; vector.y = hit.point.y - this.center.y; float num2 = vector.x * vector.x + vector.y * vector.y; if (num2 < this.radius * this.radius) { hit.distance = Mathf.Sqrt(num2); return(true); } return(false); }
// Token: 0x06004905 RID: 18693 RVA: 0x00116624 File Offset: 0x00114824 internal bool Internal_RaycastRef(Ray ray, ref global::UIHotSpot.Hit hit) { if (this.size.x < 2.802597E-45f || this.size.y < 2.802597E-45f) { return(false); } hit.normal = global::UIHotSpot.forward; Plane plane; plane..ctor(global::UIHotSpot.forward, this.center); float num; if (!plane.Raycast(ray, ref num)) { hit = default(global::UIHotSpot.Hit); return(false); } hit.point = ray.GetPoint(num); Vector2 vector; vector.x = ((hit.point.x >= this.center.x) ? (hit.point.x - this.center.x) : (this.center.x - hit.point.x)); vector.y = ((hit.point.y >= this.center.y) ? (hit.point.y - this.center.y) : (this.center.y - hit.point.y)); if (vector.x * 2f <= this.size.x && vector.y * 2f <= this.size.y) { hit.distance = Mathf.Sqrt(vector.x * vector.x + vector.y * vector.y); return(true); } return(false); }
// Token: 0x060048B1 RID: 18609 RVA: 0x0011423C File Offset: 0x0011243C internal bool Internal_RaycastRef(Ray ray, ref global::UIHotSpot.Hit hit) { Bounds bounds; bounds..ctor(this.center, this.size); if (bounds.IntersectRay(ray, ref hit.distance)) { hit.point = ray.GetPoint(hit.distance); hit.normal = -ray.direction; return(true); } return(false); }
// Token: 0x060048BE RID: 18622 RVA: 0x001144D4 File Offset: 0x001126D4 internal bool Internal_RaycastRef(Ray ray, ref global::UIHotSpot.Hit hit) { throw new NotImplementedException(); }