docs: void filterPointsOnPlaneAtInfinity(List<DMatrixRMaj> homographies_view1_to_view0,
  											   List<List<PointIndex2D_F64>> observations,
  											   int totalFeatures ) {
  		filtered.clear();
  		for (int viewIdx = 0; viewIdx < homographies_view1_to_view0.size(); viewIdx++) {
  			List<PointIndex2D_F64> filter = new ArrayList<>();
  			filtered.add(filter);
  			DMatrixRMaj H = homographies_view1_to_view0.get(viewIdx);
  
  			List<PointIndex2D_F64> obs = observations.get(viewIdx);
  			for (int i = 0; i < obs.size(); i++) {
  				PointIndex2D_F64 p = obs.get(i);
  
  				if( p.index < 0 || p.index >= totalFeatures)
  					throw new IllegalArgumentException("Feature index outside of bounds. Must be from 0 to "+(totalFeatures-1));
  
  				GeometryMath_F64.mult(H,p,tmp);
  				// Homogenous coordinates are scale invariant. A scale
  				// needs to be picked for consistency. I picked the largest x or y value
  				double m = Math.max(Math.abs(tmp.x),Math.abs(tmp.y));
  				 if( m == 0 ) m = 1;
  				tmp.z /= m;
  
  				// See if it's zero or almost zero, meaning it's on the plane at infinity
  				if( Math.abs(tmp.z) > infinityThreshold ) {
  					filter.add(p);
  				}
  			}
  		}
  	}