internal ClickPositionOnImage GetClickPositionObject(double x, double y, ClickPositionOnImageTypes positionType) { return(new ClickPositionOnImage { ClickYPos = y, ClickXPos = x, AllowedHeight = _imgHeight, AllowedWidth = _imgWidth, PositionType = positionType, Processed = true }); }
internal ClickPositionOnImage GetClickPositionObject(Point pt, ClickPositionOnImageTypes positionType) { return(new ClickPositionOnImage { ClickYPos = pt.Y, ClickXPos = pt.X, AllowedHeight = _imgHeight, AllowedWidth = _imgWidth, PositionType = positionType, Processed = true }); }
private void MarkPositionOnCanvas(Point position, ClickPositionOnImageTypes positionType) { switch (positionType) { case ClickPositionOnImageTypes.BottomMostPartOfModel: ImageCanvas.MarkWithHorizontalLine(position, DisplayMarkerNames.BottomMostPartOfModel); break; case ClickPositionOnImageTypes.LeftEndOfRotatingDisc: ImageCanvas.DrawRectangleOnLeft(position, DisplayMarkerNames.LeftEndOfRotatingDisc); break; case ClickPositionOnImageTypes.RightEndOfRotatingDisc: ImageCanvas.DrawRectangleOnRight(position, DisplayMarkerNames.RightEndOfRotatingDisc); //draw center line var leftPosition = ClickSequences.FirstOrDefault(x => x.PositionType == ClickPositionOnImageTypes.LeftEndOfRotatingDisc); if (leftPosition != null && leftPosition.Processed) { var centerPosition = new Point { X = leftPosition.ClickXPos + ((position.X - leftPosition.ClickXPos) / 2.0), Y = 0 }; ImageCanvas.MarkWithVerticalDashedLine(centerPosition, DisplayMarkerNames.CenterLine); ImageCanvas.GetDashedLineJoiningTwoEdgesOfDisc(new Point { X = leftPosition.ClickXPos, Y = leftPosition.ClickYPos }, position, DisplayMarkerNames.DashedLineJoiningTwoEdgesOfDisc); } break; case ClickPositionOnImageTypes.MarkerLeftFromCenter: ImageCanvas.AddMarkerDisplay(position, DisplayMarkerNames.MarkerLeftFromCenter); break; case ClickPositionOnImageTypes.MarkerRightFromCenter: ImageCanvas.AddMarkerDisplay(position, DisplayMarkerNames.MarkerRightFromCenter); break; } }
public static bool IsInAllowedRange(Point position, double allowedWidth, double allowedHeight, ClickPositionOnImageTypes positionType, List <ClickPositionOnImage> currentClickSequences) { switch (positionType) { case ClickPositionOnImageTypes.None: break; case ClickPositionOnImageTypes.LeftEndOfRotatingDisc: break; case ClickPositionOnImageTypes.RightEndOfRotatingDisc: { var leftEnd = GetLeftEndOfRotatingDisc(currentClickSequences); return(leftEnd < position.X); } case ClickPositionOnImageTypes.BottomMostPartOfModel: { var leftEndPos = ImageClickInputDetails.GetSpecificClickInput(currentClickSequences, ClickPositionOnImageTypes.LeftEndOfRotatingDisc); return(position.Y <= leftEndPos.ClickYPos); } break; case ClickPositionOnImageTypes.MarkerLeftFromCenter: { var leftEnd = GetLeftEndOfRotatingDisc(currentClickSequences); var centerLine = GetCenterLine(currentClickSequences); return(leftEnd <= position.X && position.X <= centerLine); } case ClickPositionOnImageTypes.MarkerRightFromCenter: { var rightEnd = GetRightEndOfRotatingDisc(currentClickSequences); var centerLine = GetCenterLine(currentClickSequences); return(centerLine <= position.X && position.X <= rightEnd); } default: throw new ArgumentOutOfRangeException("positionType"); } return(true); }
public static ClickPositionOnImage GetSpecificClickInput(IEnumerable <ClickPositionOnImage> clickInput, ClickPositionOnImageTypes clickType) { var input = clickInput.FirstOrDefault(x => x.PositionType == clickType); if (input == null) { throw new Exception(string.Format("Required user click input '{0}' not specified", clickType)); } return(input); }
public static double GetYClickPosition(IEnumerable <ClickPositionOnImage> clickInput, ClickPositionOnImageTypes clickType) { var input = GetSpecificClickInput(clickInput, clickType); return(input.ClickYPos); }