void processOneQuadrilateral(int insideMask, float cutoff, int[] pixelPointIndexes, int x, int y) {
		int edgeMask = insideMaskTable2d[insideMask];
		planarSquares[x * squareCountY + y].addEdgeMask(contourIndex, edgeMask, insideMask);
		for (int iEdge = 4; --iEdge >= 0;) {
			if ((edgeMask & (1 << iEdge)) == 0) {
				continue;
			}
			if (pixelPointIndexes[iEdge] >= 0)
				continue; // propagated from neighbor
			int vertexA = edgeVertexes2d[2 * iEdge];
			int vertexB = edgeVertexes2d[2 * iEdge + 1];
			float valueA = vertexValues2d[vertexA];
			float valueB = vertexValues2d[vertexB];
			if (thePlane == null) // contouring f(x,y)
				calcVertexPoints3d(x, y, vertexA, vertexB);
			else calcVertexPoints2d(x, y, vertexA, vertexB);
			calcContourPoint(cutoff, valueA, valueB, contourPoints[iEdge]);
			pixelPointIndexes[iEdge] = addVertexCopy(contourPoints[iEdge], cutoff, false, "");
		}
		// this must be a square that is involved in this particular contour
		planarSquares[x * squareCountY + y].setIntersectionPoints(contourIndex, pixelPointIndexes);
	}