@Override
    public void draw(GL2 gl) {
        if (planeTexture == null) {
            loadTexture(textureToLoad, gl);
        }

        if (planeTexture != null) {
            planeTexture.enable(gl);
            planeTexture.bind(gl);
        }

        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(normal[0], normal[1], normal[2]);
        gl.glTexCoord2f(0, 0);
        gl.glVertex3f(size, 0, size);

        gl.glTexCoord2f(1 * repeats, 0);
        gl.glVertex3f(-size, 0, size);

        gl.glTexCoord2f(1 * repeats, 1 * repeats);
        gl.glVertex3f(-size, 0, -size);

        gl.glTexCoord2f(0, 1 * repeats);
        gl.glVertex3f(size, 0, -size);
        gl.glEnd();

        if (planeTexture != null) {
            planeTexture.disable(gl);
        }
    }