void TilePlaneView::display() {
    std::vector<Tile *> *tiles = tilePlane->collectAllTiles();
    for (int i = 0; i < tiles->size(); ++i) {
        Tile *tile = tiles->at(i);
        int tileXStart = tile->getXStart();
        int tileYStart = tile->getYStart();
        int tileXEnd = tile->getXEnd();
        int tileYEnd = tile->getYEnd();
        if (tile->isSolid()) {
            window->drawRectangle(tileXStart, tileYStart, tileXEnd, tileYEnd,
                0.5, 0.5, 1, 0.8, 0.8, 0.8);
        } else {
            window->drawRectangle(tileXStart, tileYStart, tileXEnd, tileYEnd,
                0.2, 0.2, 0.2, 0.8, 0.8, 0.8);
        }
        // Draw Corners
        if (tile->isEmpty()) {
            Corner *blCorner = tile->getBlCorner();
            Corner *brCorner = tile->getBrCorner();
            Corner *tlCorner = tile->getTlCorner();
            Corner *trCorner = tile->getTrCorner();
            if (blCorner != 0) {
                if (blCorner->isType0()) {
                    window->drawRectangle(tileXStart + 1, tileYStart + 1, tileXStart + 2, tileYStart + 2,
                        0.2, 0.2, 0.2, 0.5, 0.5, 0.5, true);
                } else {
                    window->drawRectangle(tileXStart + 1, tileYStart + 1, tileXStart + 2, tileYStart + 2,
                        0.5, 0.5, 0.5, 0.5, 0.5, 0.5);
                }
            }
            if (brCorner != 0) {
                if (brCorner->isType0()) {
                    window->drawRectangle(tileXEnd - 2, tileYStart + 1, tileXEnd - 1, tileYStart + 2,
                        0.2, 0.2, 0.2, 0.5, 0.5, 0.5, true);
                } else {
                    window->drawRectangle(tileXEnd - 2, tileYStart + 1, tileXEnd - 1, tileYStart + 2,
                        0.5, 0.5, 0.5, 0.5, 0.5, 0.5);
                }
            }
            if (tlCorner != 0) {
                if (tlCorner->isType0()) {
                    window->drawRectangle(tileXStart + 1, tileYEnd - 2, tileXStart + 2, tileYEnd - 1,
                        0.2, 0.2, 0.2, 0.5, 0.5, 0.5, true);
                } else {
                    window->drawRectangle(tileXStart + 1, tileYEnd - 2, tileXStart + 2, tileYEnd - 1,
                        0.5, 0.5, 0.5, 0.5, 0.5, 0.5);
                }
            }
            if (trCorner != 0) {
                if (trCorner->isType0()) {
                    window->drawRectangle(tileXEnd - 2, tileYEnd - 2, tileXEnd - 1, tileYEnd - 1,
                        0.2, 0.2, 0.2, 0.5, 0.5, 0.5, true);
                } else {
                    window->drawRectangle(tileXEnd - 2, tileYEnd - 2, tileXEnd - 1, tileYEnd - 1,
                        0.5, 0.5, 0.5, 0.5, 0.5, 0.5);
                }
            }
        }
    }
    delete tiles;
}