Ejemplo n.º 1
0
        public void GetBodiesIntersecting(Ray ray, List <Body> components, CollisionManager.CollisionType type)
        {
            HashSet <Body> set = new HashSet <Body>();

            CollisionManager.GetObjectsIntersecting(ray, set, type);

            components.AddRange(set);
        }
Ejemplo n.º 2
0
        public void GetBodiesIntersecting(BoundingFrustum frustrum, List <Body> components, CollisionManager.CollisionType type)
        {
            HashSet <Body> set = new HashSet <Body>();

            CollisionManager.GetObjectsIntersecting(frustrum, set, type);

            components.AddRange(set);
        }
Ejemplo n.º 3
0
        public void GetBodiesIntersecting(BoundingBox box, List <Body> components, CollisionManager.CollisionType type)
        {
            HashSet <IBoundedObject> set = new HashSet <IBoundedObject>();

            CollisionManager.GetObjectsIntersecting(box, set, type);

            components.AddRange(set.Where(o => o is Body).Select(o => o as Body));
        }
Ejemplo n.º 4
0
        public void GetBodiesUnderMouse(MouseState mouse, Camera camera, Viewport viewPort, List <Body> components)
        {
            Vector3 pos1 = viewPort.Unproject(new Vector3(mouse.X, mouse.Y, 0), camera.ProjectionMatrix, camera.ViewMatrix, Matrix.Identity);
            Vector3 pos2 = viewPort.Unproject(new Vector3(mouse.X, mouse.Y, 1), camera.ProjectionMatrix, camera.ViewMatrix, Matrix.Identity);
            Vector3 dir  = Vector3.Normalize(pos2 - pos1);

            Ray            toCast = new Ray(pos1, dir);
            HashSet <Body> set    = new HashSet <Body>();

            CollisionManager.GetObjectsIntersecting(toCast, set, CollisionManager.CollisionType.Dynamic | CollisionManager.CollisionType.Static);

            components.AddRange(set);
        }