/// <summary>
        ///     Method that actually initiates the raycast
        /// </summary>
        /// <param name="req"></param>
        void RayCast(ODERayRequest req)
        {
            // Create the ray
            IntPtr ray = d.CreateRay(m_scene.space, req.Length);

            d.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z);

            // Collide test
            d.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback);

            // Remove Ray
            d.GeomDestroy(ray);

            // Find closest contact and object.
            lock (m_contactResults)
            {
                m_contactResults.Sort(delegate(ContactResult a, ContactResult b)
                {
                    return(a.Depth.CompareTo(b.Depth));
                });

                // Return results
                if (req.CallbackMethod != null)
                {
                    req.CallbackMethod(m_contactResults.Take(req.Count).ToList());
                }
            }
        }
        /// <summary>
        ///     Method that actually initiates the raycast
        /// </summary>
        /// <param name="req"></param>
        void RayCast(ODERayRequest req)
        {
            // Create the ray
            IntPtr ray = d.CreateRay(m_scene.space, req.Length);
            d.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z);

            // Collide test
            d.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback);

            // Remove Ray
            d.GeomDestroy(ray);

            // Find closest contact and object.
            lock (m_contactResults)
            {
                m_contactResults.Sort(delegate(ContactResult a, ContactResult b)
                {
                    return a.Depth.CompareTo(b.Depth);
                });

                // Return results
                if (req.CallbackMethod != null)
                    req.CallbackMethod(m_contactResults.Take(req.Count).ToList());
            }
        }