Ballz.GameSession.Physics.PhysicsControl.Raycast C# (CSharp) Method

Raycast() public method

public Raycast ( Vector2 rayStart, Vector2 rayEnd ) : RaycastResult
rayStart Vector2
rayEnd Vector2
return RaycastResult
        public RaycastResult Raycast(Vector2 rayStart, Vector2 rayEnd)
        {
            float closestFraction = float.PositiveInfinity;
            RaycastResult closestHit = new RaycastResult();

            PhysicsWorld.RayCast((Fixture fixture, Vector2 position, Vector2 normal, float fraction) =>
                {
                    Entity hitEntity = null;
                    if (EntityIdByPhysicsBody.ContainsKey(fixture.Body))
                    {
                        hitEntity = Game.Match.World.EntityById(EntityIdByPhysicsBody[fixture.Body]);
                    }

                    if (fraction < closestFraction)
                    {
                        closestFraction = fraction;
                        closestHit = new RaycastResult
                        {
                            HasHit = true,
                            Position = position,
                            Normal = normal,
                            Entity = hitEntity
                        };
                    }

                    return fraction;
                }, rayStart, rayEnd);

            return closestHit;
        }