private void DrawLink(Link link)
        {
            Color color = UIColoring.GetLinkColor(link.GetLinkType());

            var apos = link.GetActor().Position.SubstractZ();
            var rpos = link.GetReciever().Position.SubstractZ();

            var aUIpos = GameToUIPosition(GameImageSource, apos, CoordOrigin, Dimension);
            var rUIpos = GameToUIPosition(GameImageSource, rpos, CoordOrigin, Dimension);

            GameImageSource.DrawLineAa((int)aUIpos.X, (int)aUIpos.Y, (int)rUIpos.X, (int)rUIpos.Y, color);
            GameImageSource.AddDirtyRect(new Int32Rect
            {
                X      = (int)aUIpos.X,
                Y      = (int)aUIpos.Y,
                Width  = Math.Abs((int)aUIpos.X - (int)rUIpos.X),
                Height = Math.Abs((int)aUIpos.Y - (int)rUIpos.Y)
            });
        }
        private void DrawEntity(Player entity)
        {
            Color color = UIColoring.GetEntityColor(entity);

            var UIpos = GameToUIPosition(GameImageSource, entity.Position.SubstractZ(), CoordOrigin, Dimension);
            var Yaw   = Angle.FromDegrees(-entity.Facing.Yaw).Radians;

            var aimX = (int)(UIpos.X + LOS_LENGTH * Math.Cos(Yaw)); // Aim vector from Yaw -> dont forget toRadian for this calc
            var aimY = (int)(UIpos.Y + LOS_LENGTH * Math.Sin(Yaw));

            GameImageSource.FillEllipseCentered((int)UIpos.X, (int)UIpos.Y, ENTITY_RADIUS, ENTITY_RADIUS, color);
            GameImageSource.DrawLineAa((int)UIpos.X, (int)UIpos.Y, aimX, aimY, color);
            GameImageSource.AddDirtyRect(new Int32Rect
            {
                X      = (int)(UIpos.X - ENTITY_RADIUS / 2),
                Y      = (int)(UIpos.Y - ENTITY_RADIUS / 2),
                Width  = ENTITY_RADIUS * 2,
                Height = ENTITY_RADIUS * 2
            });
        }