Example #1
0
		private void AddPatterns(PathGeometry path, PathFigure pathFigure)
		{
			pathFigure.IsFilled = IsFillSymbol; // should be done by the framework ??

			if (AtStart)
			{
				if (BySegment)
				{
					var point = pathFigure.StartPoint;
					foreach (var segment in pathFigure.Segments)
					{
						if (segment.EndPoint() != point)
						{
							path.Concat(CreatePattern(point, segment.OrientationAtStart(point) + 180));
							point = segment.EndPoint();
						}
					}
				}
				else
					path.Concat(CreatePattern(pathFigure.StartPoint, pathFigure.OrientationAtStart() + 180));
			}

			if (AtEnd)
			{
				if (BySegment)
				{
					var point = pathFigure.StartPoint;
					foreach (var segment in pathFigure.Segments)
					{
						if (segment.EndPoint() != point)
						{
							path.Concat(CreatePattern(segment.EndPoint(), segment.OrientationAtEnd(point)));
							point = segment.EndPoint();
						}
					}
				}
				else
					path.Concat(CreatePattern(pathFigure.EndPoint(), pathFigure.OrientationAtEnd()));
			}

			if (AtMiddle)
			{
				if (BySegment)
				{
					var point = pathFigure.StartPoint;
					foreach (var segment in pathFigure.Segments)
					{
						path.Concat(CreatePattern(segment.MiddlePoint(point), segment.OrientationAtMiddle(point)));
						point = segment.EndPoint();
					}
				}
				else
					path.Concat(CreatePattern(pathFigure.MiddlePoint(), pathFigure.OrientationAtMiddle()));
			}
		}