static orderBestPatterns(patterns) {
			// Find distances between pattern centers
			const zeroOneDistance = this.distance(patterns[0], patterns[1]);
			const oneTwoDistance = this.distance(patterns[1], patterns[2]);
			const zeroTwoDistance = this.distance(patterns[0], patterns[2]);
			let pointA;
			let pointB;
			let pointC;
			// Assume one closest to other two is B; A and C will just be guesses at first
			if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {
				pointB = patterns[0];
				pointA = patterns[1];
				pointC = patterns[2];
			}
			else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {
				pointB = patterns[1];
				pointA = patterns[0];
				pointC = patterns[2];
			}
			else {
				pointB = patterns[2];
				pointA = patterns[0];
				pointC = patterns[1];
			}
			// Use cross product to figure out whether A and C are correct or flipped.
			// This asks whether BC x BA has a positive z component, which is the arrangement
			// we want for A, B, C. If it's negative, then we've got it flipped around and
			// should swap A and C.
			if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {
				const temp = pointA;
				pointA = pointC;
				pointC = temp;
			}
			patterns[0] = pointA;
			patterns[1] = pointB;
			patterns[2] = pointC;
		}
Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC
and BC is less than AC, and the angle between BC and BA is less than 180 degrees.

@param patterns array of three {@code ResultPoint} to order