private void AddOutlineShape(AriadneSettingsData data) { Random r = Maze.Random; double offCenter = data.OutlineOffCenter / 100.0; double size = data.OutlineSize / 100.0; OutlineShape.OutlineShapeBuilder shapeBuilderDelegate = null; switch (data.OutlineKind) { case AriadneSettingsData.OutlineKindEnum.Random: shapeBuilderDelegate = OutlineShape.RandomOutlineShapeBuilder(r); break; case AriadneSettingsData.OutlineKindEnum.Circle: shapeBuilderDelegate = OutlineShape.Circle; break; case AriadneSettingsData.OutlineKindEnum.Diamond: shapeBuilderDelegate = OutlineShape.Diamond; break; case AriadneSettingsData.OutlineKindEnum.Character: shapeBuilderDelegate = OutlineShape.Character; break; case AriadneSettingsData.OutlineKindEnum.Symbol: shapeBuilderDelegate = OutlineShape.Symbol; break; case AriadneSettingsData.OutlineKindEnum.Polygon: shapeBuilderDelegate = OutlineShape.Polygon; break; case AriadneSettingsData.OutlineKindEnum.Function: shapeBuilderDelegate = OutlineShape.Function; break; case AriadneSettingsData.OutlineKindEnum.Bitmap: shapeBuilderDelegate = OutlineShape.Bitmap; break; case AriadneSettingsData.OutlineKindEnum.Tiles: shapeBuilderDelegate = OutlineShape.Tiles; break; case AriadneSettingsData.OutlineKindEnum.Rectangles: shapeBuilderDelegate = OutlineShape.Rectangles; break; case AriadneSettingsData.OutlineKindEnum.Grid: shapeBuilderDelegate = OutlineShape.Grid; break; case AriadneSettingsData.OutlineKindEnum.GridElement: shapeBuilderDelegate = OutlineShape.GridElement; break; case AriadneSettingsData.OutlineKindEnum.Maze: shapeBuilderDelegate = OutlineShape.Maze; break; case AriadneSettingsData.OutlineKindEnum.Lines: shapeBuilderDelegate = OutlineShape.Lines; break; case AriadneSettingsData.OutlineKindEnum.Circles: shapeBuilderDelegate = OutlineShape.Circles; break; } if (shapeBuilderDelegate != null) { OutlineShape shape = OutlineShape.RandomInstance(r, shapeBuilderDelegate, XSize, YSize, offCenter, size); if (data.DistortedOutlines) { shape = shape.DistortedCopy(r); } if (data.AsEmbeddedMaze) { Maze.AddEmbeddedMaze(shape); } else { Maze.OutlineShape = shape; } } }