private void RemoveDisplayForAClickType(ClickPositionOnImage clickPositionToRemove) { switch (clickPositionToRemove.PositionType) { case ClickPositionOnImageTypes.BottomMostPartOfModel: ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.BottomMostPartOfModel); break; case ClickPositionOnImageTypes.LeftEndOfRotatingDisc: ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.LeftEndOfRotatingDisc); ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.CenterLine); ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.DashedLineJoiningTwoEdgesOfDisc); break; case ClickPositionOnImageTypes.RightEndOfRotatingDisc: //undo the rotation ImageCanvas.SetImage(_currentImage); ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.RightEndOfRotatingDisc); ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.CenterLine); ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.DashedLineJoiningTwoEdgesOfDisc); break; case ClickPositionOnImageTypes.MarkerLeftFromCenter: ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.MarkerLeftFromCenter); break; case ClickPositionOnImageTypes.MarkerRightFromCenter: ImageCanvas.RemoveDisplayObject(DisplayMarkerNames.MarkerRightFromCenter); break; } }
private void SetClickPositions(Point position, ClickPositionOnImage clickPos) { clickPos.ClickXPos = position.X; clickPos.ClickYPos = position.Y; clickPos.AllowedWidth = ImageCanvas.Width; clickPos.AllowedHeight = ImageCanvas.Height; clickPos.Processed = true; }
private static bool ClearOutClickPosition(ClickPositionOnImage clickPositionReference) { if (clickPositionReference == null) { return(false); } clickPositionReference.AllowedHeight = 0.0; clickPositionReference.AllowedWidth = 0.0; clickPositionReference.ClickXPos = 0.0; clickPositionReference.ClickYPos = 0.0; clickPositionReference.Processed = false; return(true); }
/// <summary> /// Gets the angle by which the image should be rotated (using function RotateImg) /// to make the disc edge horizontal /// </summary> /// <param name="leftOfDisc"></param> /// <param name="rightOfDisc"></param> /// <returns></returns> public static float GetRotationAngleToRealign(ClickPositionOnImage leftOfDisc, ClickPositionOnImage rightOfDisc) { var xDiff = Math.Abs(rightOfDisc.ClickXPos - leftOfDisc.ClickXPos); var yDiff = Math.Abs(rightOfDisc.ClickYPos - leftOfDisc.ClickYPos); if (xDiff == 0 || yDiff == 0) { return(0); } var degrees = GetAngleInDegrees(xDiff, yDiff); //positive direction is clockwise from top left return(rightOfDisc.ClickYPos < leftOfDisc.ClickYPos ? degrees : -degrees); }
private void CopyPositions(ClickPositionOnImage copyPosition) { var matchingInList = ClickSequences.FirstOrDefault(x => x.PositionType == copyPosition.PositionType); if (matchingInList == null) { return; } matchingInList.AllowedHeight = copyPosition.AllowedHeight; matchingInList.AllowedWidth = copyPosition.AllowedWidth; matchingInList.ClickXPos = copyPosition.ClickXPos; matchingInList.ClickYPos = copyPosition.ClickYPos; matchingInList.Processed = true; MarkPositionOnCanvas(new Point { X = copyPosition.ClickXPos, Y = copyPosition.ClickYPos }, copyPosition.PositionType); }
public static float GetRotationAngleToRealign(ClickPositionOnImage leftOfDisc, ClickPositionOnImage rightOfDisc) { return(ImageRotator.GetRotationAngleToRealign(leftOfDisc, rightOfDisc)); }