docs: public boolean containsPoint2D(double[] v) {
      assert (v.length == 2);
      final double testx = v[0];
      final double testy = v[1];
      boolean c = false;
  
      Iterator<double[]> it = points.iterator();
      double[] pre = points.get(points.size() - 1);
      while(it.hasNext()) {
        final double[] cur = it.next();
        final double curx = cur[0], cury = cur[1];
        final double prex = pre[0], prey = pre[1];
        if(((cury > testy) != (prey > testy))) {
          if((testx < (prex - curx) * (testy - cury) / (prey - cury) + curx)) {
            c = !c;
          }
        }
        pre = cur;
      }
      return c;
    }