All pastes #969991 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-03 20:11 UTC
rendered paste body
        public override float? RayIntersectTest(Ray ray)
        {
            float? sphereTest = ray.Intersects(sphere);

            if (sphereTest != null)
            {
                ray.Position -= Position;

                Quaternion qInv = Quaternion.Inverse(QuaternionRotation);

                ray.Position = Vector3.Transform(ray.Position, qInv);
                ray.Direction = Vector3.Transform(ray.Direction, qInv);

                ray.Position += Position;
                return ray.Intersects(aabb);
            }

            return null;
        }