docs: public void configure( CameraPinholeBrown intrinsic ,
  						   Se3_F64 planeToCamera ,
  						   double centerX, double centerY, double cellSize ,
  						   int overheadWidth , int overheadHeight )
  	{
  		this.overheadWidth = overheadWidth;
  		this.overheadHeight = overheadHeight;
  
  		Point2Transform2_F64 normToPixel = LensDistortionFactory.narrow(intrinsic).distort_F64(false, true);
  
  		// Declare storage for precomputed pixel locations
  		int overheadPixels = overheadHeight*overheadWidth;
  		if( mapPixels == null || mapPixels.length < overheadPixels) {
  			mapPixels = new Point2D_F32[overheadPixels];
  		}
  		points.reset();
  
  		// -------- storage for intermediate results
  		Point2D_F64 pixel = new Point2D_F64();
  		// coordinate on the plane
  		Point3D_F64 pt_plane = new Point3D_F64();
  		// coordinate in camera reference frame
  		Point3D_F64 pt_cam = new Point3D_F64();
  
  		int indexOut = 0;
  		for( int i = 0; i < overheadHeight; i++ ) {
  			pt_plane.x = -(i*cellSize - centerY);
  			for( int j = 0; j < overheadWidth; j++ , indexOut++ ) {
  				pt_plane.z = j*cellSize - centerX;
  
  				// plane to camera reference frame
  				SePointOps_F64.transform(planeToCamera, pt_plane, pt_cam);
  
  				// can't see behind the camera
  				if( pt_cam.z > 0 ) {
  					// compute normalized then convert to pixels
  					normToPixel.compute(pt_cam.x/pt_cam.z,pt_cam.y/pt_cam.z,pixel);
  
  					float x = (float)pixel.x;
  					float y = (float)pixel.y;
  
  					// make sure it's in the image
  					if(BoofMiscOps.checkInside(intrinsic.width,intrinsic.height,x,y) ){
  						Point2D_F32 p = points.grow();
  						p.set(x,y);
  						mapPixels[ indexOut ]= p;
  					} else {
  						mapPixels[ indexOut ]= null;
  					}
  				}
  			}
  		}
  	}