public override void MoveHandle(PointF point, int handleNumber, Keys modifiers) { int constraintAngleSubdivisions = 8; // (Constraint by 45° steps). switch (handleNumber) { case 1: if ((modifiers & Keys.Shift) == Keys.Shift) { points["a"] = GeometryHelper.GetPointAtClosestRotationStepCardinal(points["b"], point, constraintAngleSubdivisions); } else { points["a"] = point; } SignalTrackablePointMoved("a"); break; case 2: if ((modifiers & Keys.Shift) == Keys.Shift) { points["b"] = GeometryHelper.GetPointAtClosestRotationStepCardinal(points["a"], point, constraintAngleSubdivisions); } else { points["b"] = point; } SignalTrackablePointMoved("b"); break; case 3: // Move the center of the mini label to the mouse coord. miniLabel.SetLabel(point); break; } if (CalibrationHelper != null) { CalibrationHelper.CalibrationByLine_Update(Id, points["a"], points["b"]); } }
public void SetTrackablePointValue(string name, PointF value) { if (!points.ContainsKey(name)) { throw new ArgumentException("This point is not bound."); } points[name] = value; if (CalibrationHelper != null) { CalibrationHelper.CalibrationByLine_Update(Id, points["a"], points["b"]); } }