private List<Vector2D> CreateFeelers(IMovingEntity vehicle) { List<Vector2D> feelers = new List<Vector2D>(); var feelerLength = (vehicle.GetVelocity() * wallDetectionFeelerLengthMultiplier).GetLength(); //Feeler pointing straight in front feelers.Add(vehicle.GetPosition() + vehicle.GetHeading() * feelerLength); //Feeler to left Vector2D angle = movingEntity.GetHeading().Rotate((float)(Math.PI / 2) * WallAvoidance.WallDetectionFeelerAngle); feelers.Add(vehicle.GetPosition() + angle * (feelerLength) / 1.5f); //Feel to right angle = movingEntity.GetHeading().Rotate(-(float)(Math.PI / 2) * WallAvoidance.WallDetectionFeelerAngle); feelers.Add(vehicle.GetPosition() + angle * (feelerLength) / 1.5f); return feelers; }