public static void HideCalibration() { form.Hide(); form.Dispose(); }
//------------------------------------------------------------------------------------------- public void doCalibration() { if (cf == null) { return; } int x = 0; int y = 0; int size = 25; Pen p = new Pen(Color.Red); switch (calibrationState) { case 1: x = (int)(screenWidth * calibrationMargin); y = (int)(screenHeight * calibrationMargin); cf.showCalibration(x, y, size, p); dstX[calibrationState - 1] = x; dstY[calibrationState - 1] = y; break; case 2: x = screenWidth - (int)(screenWidth * calibrationMargin); y = (int)(screenHeight * calibrationMargin); cf.showCalibration(x, y, size, p); dstX[calibrationState - 1] = x; dstY[calibrationState - 1] = y; break; case 3: x = (int)(screenWidth * calibrationMargin); y = screenHeight - (int)(screenHeight * calibrationMargin); cf.showCalibration(x, y, size, p); dstX[calibrationState - 1] = x; dstY[calibrationState - 1] = y; break; case 4: x = screenWidth - (int)(screenWidth * calibrationMargin); y = screenHeight - (int)(screenHeight * calibrationMargin); cf.showCalibration(x, y, size, p); dstX[calibrationState - 1] = x; dstY[calibrationState - 1] = y; break; case 5: //compute warp warper.setDestination(dstX[0], dstY[0], dstX[1], dstY[1], dstX[2], dstY[2], dstX[3], dstY[3]); warper.setSource(srcX[0], srcY[0], srcX[1], srcY[1], srcX[2], srcY[2], srcX[3], srcY[3]); warper.computeWarp(); if (cf.InvokeRequired) { BeginInvoke((MethodInvoker) delegate() { cf.Dispose(); }); /* * cf.Invoke(new Action(() => * { * cf.Close(); * cf = null; * })); * * } * else * { * cf.Close(); * cf = null; * } */ } calibrationState = 0; cursorControl = true; BeginInvoke((MethodInvoker) delegate() { cbCursorControl.Checked = cursorControl; }); // saveCalibrationData(); UpdateTrackingUtilization(); break; default: break; } }