void generateContourData(boolean iHaveContourVertexesAlready) {

		/*
		 * (1) define the plane (2) calculate the grid "pixel" points (3) generate the contours using marching squares
		 * (4) The idea is to first just catalog the vertices, then see what we need to do about them.
		 * 
		 */

		if (nContours == 0 || nContours > nContourMax)
			nContours = defaultContourCount;
		Logger.info("generateContours:" + nContours);
		getPlanarVectors();
		setPlanarTransform();
		getPlanarOrigin();
		setupMatrix(planarMatrix, planarVectors);

		calcPixelVertexVectors();
		getPixelCounts();
		createPlanarSquares();

		loadPixelData(iHaveContourVertexesAlready);
		if (logMessages) {
			int n = pixelCounts[0] / 2;
			Logger.info(dumpArray("generateContourData", pixelData, n - 4, n + 4, n - 4, n + 4));
		}
		createContours();
		triangulateContours();
	}