public AbstractRenderer(char[][] map)
 {
     Map             = map;
     Caster          = new Caster(map);
     RenderWallTasks = new Task[2];
     Wall.BuildLookupTable();
     Floor.BuildLookupTable();
     PointsScreenLeft   = new Dictionary <float, Dictionary <float, Vector2> >();
     PointsScreenRight  = new Dictionary <float, Dictionary <float, Vector2> >();
     PointsScreenMiddle = new Dictionary <float, Dictionary <float, Vector2> >();
     AllocateWalls();
     AllocateFloors();
     AllocateAllPointScreen();
 }