5using Microsoft.Xna.Framework.Design;
13 [SuppressMessage(
"Microsoft.Design",
"CA1051:DoNotDeclareVisibleInstanceFields")]
16 [SuppressMessage(
"Microsoft.Design",
"CA1051:DoNotDeclareVisibleInstanceFields")]
29 return Direction.Z ==
other.Direction.Z;
52 return string.Format(currentCulture,
"{{Position:{0} Direction:{1}}}",
new object[2]
66 box.Intersects(ref
this, out result);
80 float num = plane.Normal.X * Direction.X + plane.Normal.Y * Direction.Y + plane.Normal.Z *
Direction.
Z;
85 float num2 = plane.Normal.X * Position.X + plane.Normal.Y * Position.Y + plane.Normal.Z *
Position.Z;
86 float num3 = (0f - plane.D - num2) / num;
100 float num = plane.Normal.X * Direction.X + plane.Normal.Y * Direction.Y + plane.Normal.Z *
Direction.
Z;
106 float num2 = plane.Normal.X * Position.X + plane.Normal.Y * Position.Y + plane.Normal.Z *
Position.Z;
107 float num3 = (0f - plane.D - num2) / num;
122 float num = sphere.Center.X -
Position.X;
123 float num2 = sphere.Center.Y -
Position.Y;
124 float num3 = sphere.Center.Z -
Position.Z;
125 float num4 = num * num + num2 * num2 + num3 * num3;
126 float num5 = sphere.Radius * sphere.
Radius;
131 float num6 = num * Direction.X + num2 * Direction.Y + num3 *
Direction.
Z;
136 float num7 = num4 - num6 * num6;
141 float num8 = (float)
Math.
Sqrt(num5 - num7);
147 float num = sphere.Center.X -
Position.X;
148 float num2 = sphere.Center.Y -
Position.Y;
149 float num3 = sphere.Center.Z -
Position.Z;
150 float num4 = num * num + num2 * num2 + num3 * num3;
151 float num5 = sphere.Radius * sphere.Radius;
158 float num6 = num * Direction.X + num2 * Direction.Y + num3 *
Direction.
Z;
161 float num7 = num4 - num6 * num6;
164 float num8 = (float)
Math.
Sqrt(num5 - num7);
165 result = num6 - num8;
bool Intersects(BoundingBox box)
override string ToString()
static CultureInfo CurrentCulture
static double Sqrt(double d)
static double Abs(double value)
bool Intersects(BoundingBox box)
override string ToString()
override bool Equals(object obj)
static bool operator==(Ray a, Ray b)
void Intersects(ref BoundingSphere sphere, out float? result)
void Intersects(ref BoundingBox box, out float? result)
float? Intersects(BoundingFrustum frustum)
static bool operator!=(Ray a, Ray b)
void Intersects(ref Plane plane, out float? result)
override int GetHashCode()
float? Intersects(Plane plane)
float? Intersects(BoundingBox box)
Ray(Vector3 position, Vector3 direction)
float? Intersects(BoundingSphere sphere)
override string ToString()
override int GetHashCode()