Exemple #1
0
 internal ClickPositionOnImage GetClickPositionObject(double x, double y, ClickPositionOnImageTypes positionType)
 {
     return(new ClickPositionOnImage
     {
         ClickYPos = y,
         ClickXPos = x,
         AllowedHeight = _imgHeight,
         AllowedWidth = _imgWidth,
         PositionType = positionType,
         Processed = true
     });
 }
Exemple #2
0
 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);
        }