Add classes defining shapes drawn by the robot

Each gesture drawn by the robot can be broken into its constituent
shapes. For example, a multi-finger swipe would be composed of several
lines, and a compass gesture be composed of a point and an arc.

This CL add the TargetShape abstract class, and a few concrete classes
defining the possible shapes the robot can draw. Each of these classes
supply an rms_error function, which will be used to map panel
measurements to the closest gesture shape.

BUG=b:148627899
TEST=Run robot tests, and plot measurements and target shapes

Change-Id: Ieb6d096c0fea0076ccb4334f6d54456177556c27
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/optofidelity_TPPT_analysis/+/2860966
Reviewed-by: Harry Cutts <hcutts@chromium.org>
Commit-Queue: Sean O'Brien <seobrien@chromium.org>
Tested-by: Sean O'Brien <seobrien@chromium.org>
2 files changed