public void UpdateWindow(Point2 offset, Vector3 worldTranslation, Point2 windowSize) { entities.ForEach((e, p) => { var v = world.GetVoxel(p + new Point2(offset)); if (v == null) { e.Visible = false; return; } e.Mesh = getMesh(v); e.WorldMatrix = Matrix.Scaling(new Vector3(world.VoxelSize.X)) * Matrix.Translation(world.GetBoundingBox(p).GetCenter() + worldTranslation); e.Visible = e.Mesh != null; }); }