public ModernRenderer(Document document) { _document = document; _array = new MapObjectArray(GetAllVisible(document.Map.WorldSpawn)); _decalArray = new DecalArray(GetDecals(document.Map.WorldSpawn)); _modelArrays = new Dictionary <Model, ModelArray>(); _models = new List <Tuple <Entity, Model> >(); // Can't use a single grid array as it varies depending on the zoom level (pixel hiding factor) GridArrays = ViewportManager.Viewports.OfType <Viewport2D>().ToDictionary(x => x, x => new GridArray()); UpdateGrid(document.Map.GridSpacing, document.Map.Show2DGrid, document.Map.Show3DGrid, false); _selectionTransformMat = Matrix.Identity; _selectionTransform = Matrix4.Identity; _mapObject2DShader = new MapObject2DShader(); _mapObject3DShader = new MapObject3DShader(); }