private MapObject GetMapObjectByCursor()
        {
            if (!EngineApp.Instance.MouseRelativeMode)
            {
                Ray ray = RendererWorld.Instance.DefaultCamera.GetCameraToViewportRay(
                    EngineApp.Instance.MousePosition);

                MapObject result = null;

                Map.Instance.GetObjects(ray, delegate(MapObject obj, float scale)
                {
                    //check by sphere
                    Sphere sphere = new Sphere(obj.Position, .5f);
                    if (sphere.RayIntersection(ray))
                    {
                        //find entities with Dynamic class only
                        Dynamic dynamic = obj as Dynamic;
                        if (dynamic != null)
                        {
                            result = obj;
                            //stop GetObjects
                            return false;
                        }
                    }
                    //find next object
                    return true;
                });

                return result;
            }

            return null;
        }