Beispiel #1
0
        public static ScreenPoint[] CreateCustomMarker(EarType earType, bool isNoResponse, bool addShift)
        {
            const double lBottomX = 0.5;
            const double lTopY    = 0.75;

            List <ScreenPoint> marker      = new List <ScreenPoint>();
            ScreenPoint        topLeft     = new ScreenPoint(-lBottomX, -lTopY);
            ScreenPoint        bottomLeft  = new ScreenPoint(-lBottomX, lTopY);
            ScreenPoint        bottomRight = new ScreenPoint(lBottomX, lTopY);

            marker.Add(bottomRight);
            marker.Add(bottomLeft);
            marker.Add(topLeft);
            marker.Add(bottomLeft);
            marker.Add(bottomRight);

            if (isNoResponse)
            {
                ArrowMarker.AddArrowToMarker(marker, earType, bottomRight.X, bottomRight.Y);
            }

            if (addShift)
            {
                ShiftMarker.AddShift(marker, earType);
            }

            return(marker.ToArray());
        }
Beispiel #2
0
        public static ScreenPoint[] CreateCustomMarker(EarType earType, bool isNoResponse, bool addShift)
        {
            const double lowerLeftX  = -0.75;
            const double lowerLeftY  = 0.75;
            const double upperX      = 0;
            const double upperY      = -0.75;
            const double lowerRightX = 0.75;
            const double lowerRightY = 0.75;
            const double midRightX   = 0.375;
            const double midRightY   = 0;
            const double midLeftX    = -0.375;
            const double midLeftY    = 0;

            ScreenPoint lowerLeft  = new ScreenPoint(lowerLeftX, lowerLeftY);
            ScreenPoint upper      = new ScreenPoint(upperX, upperY);
            ScreenPoint lowerRight = new ScreenPoint(lowerRightX, lowerRightY);
            ScreenPoint midRight   = new ScreenPoint(midRightX, midRightY);
            ScreenPoint midLeft    = new ScreenPoint(midLeftX, midLeftY);

            List <ScreenPoint> marker = new List <ScreenPoint>();

            if (earType == EarType.RightEar)
            {
                marker.Add(lowerLeft);
                marker.Add(upper);
                marker.Add(lowerRight);
                marker.Add(midRight);
                marker.Add(midLeft);
                marker.Add(lowerLeft);
            }
            else if (earType == EarType.LeftEar)
            {
                marker.Add(lowerRight);
                marker.Add(upper);
                marker.Add(lowerLeft);
                marker.Add(midLeft);
                marker.Add(midRight);
                marker.Add(lowerRight);
            }
            else
            {
                throw new InvalidEnumArgumentException();
            }

            if (isNoResponse)
            {
                ArrowMarker.AddArrowToMarker(marker, earType, marker.Last().X, marker.Last().Y);
            }

            if (addShift)
            {
                ShiftMarker.AddShift(marker, earType);
            }

            return(marker.ToArray());
        }
        public static ScreenPoint[] CreateCustomMarker(EarType earType, bool isNoResponse, bool addShift)
        {
            const double a = 0.5;
            const double b = 0.375;

            List <AGPoint> sUpperUpperHalf = new List <AGPoint>();

            sUpperUpperHalf.Add(new AGPoint(0.5, 0));
            sUpperUpperHalf.Add(new AGPoint(0.3, 0));
            sUpperUpperHalf.Add(new AGPoint(0.1, 0));
            sUpperUpperHalf.Add(new AGPoint(-0.1, 0));
            sUpperUpperHalf.Add(new AGPoint(-0.3, 0));
            sUpperUpperHalf.Add(new AGPoint(-0.5, 0));

            int i = 0;

            for (; i < sUpperUpperHalf.Count; i++)
            {
                sUpperUpperHalf[i].Y = -b - Math.Sqrt(Math.Pow(b, 2) - Math.Pow((b * sUpperUpperHalf[i].X / a), 2));
            }

            List <AGPoint> sUpperLowerHalf = new List <AGPoint>();

            sUpperLowerHalf.Add(new AGPoint(-0.5, 0));
            sUpperLowerHalf.Add(new AGPoint(-0.3, 0));
            sUpperLowerHalf.Add(new AGPoint(-0.1, 0));
            sUpperLowerHalf.Add(new AGPoint(0, 0));

            for (i = 0; i < sUpperLowerHalf.Count; i++)
            {
                sUpperLowerHalf[i].Y = -b + Math.Sqrt(Math.Pow(b, 2) - Math.Pow((b * sUpperLowerHalf[i].X / a), 2));
            }

            List <AGPoint> sLowerUpperHalf = new List <AGPoint>();

            sLowerUpperHalf.Add(new AGPoint(0.1, 0));
            sLowerUpperHalf.Add(new AGPoint(0.3, 0));
            sLowerUpperHalf.Add(new AGPoint(0.5, 0));

            for (i = 0; i < sLowerUpperHalf.Count; i++)
            {
                sLowerUpperHalf[i].Y = b - Math.Sqrt(Math.Pow(b, 2) - Math.Pow((b * sLowerUpperHalf[i].X / a), 2));
            }

            List <AGPoint> sLowerLowerHalf = new List <AGPoint>();

            sLowerLowerHalf.Add(new AGPoint(0.5, 0));
            sLowerLowerHalf.Add(new AGPoint(0.3, 0));
            sLowerLowerHalf.Add(new AGPoint(0.1, 0));
            sLowerLowerHalf.Add(new AGPoint(-0.1, 0));
            sLowerLowerHalf.Add(new AGPoint(-0.3, 0));
            sLowerLowerHalf.Add(new AGPoint(-0.5, 0));

            for (i = 0; i < sLowerLowerHalf.Count; i++)
            {
                sLowerLowerHalf[i].Y = b + Math.Sqrt(Math.Pow(b, 2) - Math.Pow((b * sLowerLowerHalf[i].X / a), 2));
            }

            List <ScreenPoint> marker = new List <ScreenPoint>();

            for (i = sLowerLowerHalf.Count - 2; i >= 0; i--)
            {
                marker.Add(new ScreenPoint(sLowerLowerHalf[i].X, sLowerLowerHalf[i].Y));
            }

            for (i = sLowerUpperHalf.Count - 1; i >= 0; i--)
            {
                marker.Add(new ScreenPoint(sLowerUpperHalf[i].X, sLowerUpperHalf[i].Y));
            }

            for (i = sUpperLowerHalf.Count - 1; i >= 0; i--)
            {
                marker.Add(new ScreenPoint(sUpperLowerHalf[i].X, sUpperLowerHalf[i].Y));
            }

            for (i = sUpperUpperHalf.Count - 1; i >= 0; i--)
            {
                marker.Add(new ScreenPoint(sUpperUpperHalf[i].X, sUpperUpperHalf[i].Y));
            }

            for (i = 0; i < sUpperUpperHalf.Count; i++)
            {
                marker.Add(new ScreenPoint(sUpperUpperHalf[i].X, sUpperUpperHalf[i].Y));
            }

            for (i = 0; i < sUpperLowerHalf.Count; i++)
            {
                marker.Add(new ScreenPoint(sUpperLowerHalf[i].X, sUpperLowerHalf[i].Y));
            }

            for (i = 0; i < sLowerUpperHalf.Count; i++)
            {
                marker.Add(new ScreenPoint(sLowerUpperHalf[i].X, sLowerUpperHalf[i].Y));
            }

            for (i = 0; i < sLowerLowerHalf.Count; i++)
            {
                marker.Add(new ScreenPoint(sLowerLowerHalf[i].X, sLowerLowerHalf[i].Y));
            }

            if (isNoResponse)
            {
                ScreenPoint lastPoint = marker.Last();
                ArrowMarker.AddArrowToMarker(marker, earType, lastPoint.X, lastPoint.Y);
            }

            if (addShift)
            {
                ShiftMarker.AddShift(marker, earType);
            }

            return(marker.ToArray());
        }