// Similar to the completeWall() method above except resizes wall instead
  public boolean completeRoof(float x, float y) {
    WallModel wall = isOnWall(x, y);

    if (currentRoof != null && tempRoof != null) {
      // Check if the mouse was on a wall when released
      if (wall != null) {
        // Check if the user drew a horizontal roof and mouse was released on a horizontal wall
        if (wall.getWidth() < wall.getHeight() && currentRoof.getOrientation() == 'h') {
          if (x > tempRoof.getStartPositionX()) {
            currentRoof.setWidth(
                (wall.getStartPositionX() + wall.getWidth() + currentRoof.getOverhang())
                    - currentRoof.getStartPositionX());
          } else {
            float difference = currentRoof.getStartPositionX();
            currentRoof.setStartPositionX(wall.getStartPositionX() - currentRoof.getOverhang());
            difference -= currentRoof.getStartPositionX();
            currentRoof.setWidth(currentRoof.getWidth() + difference);
          }
        } else { // else if the the user drew a vertical wall and released it on a horizontal wall
                 // adjust the starting Y position and height
          if (y > tempRoof.getStartPositionY()) {
            currentRoof.setBreath(
                (wall.getStartPositionY() + wall.getHeight() + currentRoof.getOverhang())
                    - currentRoof.getStartPositionY());
          } else {
            float difference = currentRoof.getStartPositionY();
            currentRoof.setStartPositionY(wall.getStartPositionY() - currentRoof.getOverhang());
            difference -= currentRoof.getStartPositionY();
            currentRoof.setBreath(currentRoof.getBreath() + difference);
          }
        }

        currentRoof = null;
        tempRoof = null;

        // return true so that the geometry model can be updated in the WireFrameDisplay class
        return true;
      }
    }

    currentRoof = null;
    tempRoof = null;

    return false;
  }
  // loop though all the roof models to check if a door is clicked on
  RoofModel isOnRoof(float x, float y) {
    // Temporary roof variable used in for loop
    RoofModel roof;

    // Loop through each wall in the walls ArrayList
    for (int i = 0; i < getRoofs().size(); ++i) {
      // Aliasing
      roof = getRoofs().get(i);

      // Check if point is between the four corners of the wall
      if (x > (roof.getStartPositionX())
          && x < (roof.getStartPositionX()) + (roof.getWidth())
          && y > (roof.getStartPositionY())
          && y < (roof.getStartPositionY()) + (roof.getBreath())) {

        return roof;
      }
    }

    return null;
  }