public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length != 3) { return(null); } double width = (double)values[0]; double height = (double)values[1]; Template.RightSideFormEnum rightSideForm = (Template.RightSideFormEnum)values[2]; ISideCurveGenerator rightSideGenerator = SideCurveGeneratorFactory.GetGeneratorFor(rightSideForm); return(new PointCollection(Drawing.GetRightPolyline(width, height, rightSideGenerator))); }
public static ISideCurveGenerator GetGeneratorFor(Template.RightSideFormEnum rightSideForm) { switch (rightSideForm) { case Template.RightSideFormEnum.Straight: return(straight); case Template.RightSideFormEnum.Steps: return(steps); case Template.RightSideFormEnum.Wave: return(wave); default: throw new NotSupportedException("Unknown right side form"); } }