code: private boolean contains(Vector3f test, List<Vector3f> points) {
          int i;
          int j;
          boolean result = false;
          for (i = 0, j = points.size() - 1; i < points.size(); j = i++) {
              if (((points.get(i).z > test.z) != (points.get(j).z > test.z))
                      && (test.x < (points.get(j).x - points.get(i).x)
                      * (test.z - points.get(i).z) / (points.get(j).z - points.get(i).z)
                      + points.get(i).x)) {
                  result = !result;
              }
          }
          return result;
      }
docs: https://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
  
  @param test
  @param points
  @return