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()); }
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()); }