internal void SetStencil(ShapeTemplate template) { flowChart1.ClearAll(); Box backBox = flowChart1.CreateBox(0.0F, 0.0F, 100.0F, 100.0F); backBox.Style = BoxStyle.Rectangle; backBox.FillColor = System.Drawing.Color.FromArgb(55, System.Drawing.Color.LightSlateGray); backBox.FrameColor = System.Drawing.Color.FromArgb(61, System.Drawing.Color.LightSlateGray); backBox.Locked = true; modelBox = flowChart1.CreateBox(0.0F, 0.0F, 100.0F, 100.0F); modelBox.RotationAngle = 0.0F; modelBox.Style = BoxStyle.Shape; modelBox.Shape = template; modelBox.FillColor = System.Drawing.Color.FromArgb(220, 222, 184, 136); modelBox.FrameColor = System.Drawing.Color.FromArgb(255, 111, 92, 68); modelBox.EnabledHandles = Handles.None; modelBox.HandlesStyle = HandlesStyle.Invisible; }
public bool Contains(ShapeTemplate obj) { return inner.Contains(obj); }
internal ShapeCollection(ShapeTemplate[] array) { inner = new ArrayList(); foreach (ShapeTemplate shape in array) inner.Add(shape); }
/// <summary> /// create an image for the given shape /// </summary> private void createImage(ShapeTemplate template, System.Drawing.Brush brush, FlowChart chart) { if (template == null) return; Box b = chart.CreateBox(1, 1, imageSize.Width - 4, imageSize.Height - 4); b.Style = BoxStyle.Shape; b.Shape = template; b.PenWidth = 0; b.ShadowColor = Color.FromArgb(40, Color.Black); b.ShadowOffsetX = 1; b.ShadowOffsetY = 1; b.FillColor = ShapeFillColor; b.CustomDraw = CustomDraw.Additional; Bitmap image = new Bitmap(imageSize.Width, imageSize.Height); Graphics g = Graphics.FromImage(image); g.SmoothingMode = SmoothingMode.AntiAlias; g.FillRectangle(brush, -1, -1, imageSize.Width + 1, imageSize.Height + 1); b.Draw(g, true); b.Draw(g, false); images.Images.Add(image); g.Dispose(); }
/// <summary> /// creates a new button /// </summary> private void createButton(ShapeTemplate template, int index) { if (template == null) return; ToolBarButton button = null; if (showText) button = new ToolBarButton(template.Id); else button = new ToolBarButton(""); button.Tag = template; button.ImageIndex = index; button.ToolTipText = template.Id; base.Buttons.Add(button); // Set as default if (document.DefaultShape == template && document.BoxStyle == BoxStyle.Shape) button.Pushed = true; }
public override void loadFrom(BinaryReader reader, PersistContext ctx) { base.loadFrom(reader, ctx); int intStyle = 0; ShapeTemplate polyShape = null; setExpanded(reader.ReadBoolean()); setExpandable(reader.ReadBoolean()); enabledHandles = (Handles)reader.ReadInt64(); intStyle = reader.ReadInt32(); if (intStyle == 4) // Polygon style = BoxStyle.Shape; else style = (BoxStyle)intStyle; fillColor = ctx.loadColor(); frameColor = ctx.loadColor(); picturePos = (ImageAlign)reader.ReadInt32(); text = reader.ReadString(); textColor = ctx.loadColor(); textFormat = ctx.loadStringFormat(); transparent = reader.ReadBoolean(); // this was used with the now obsolete bsPolygon boxes if (ctx.FileVersion < 22) { ctx.loadPtfArray(); int c = reader.ReadInt32(); byte[] b = reader.ReadBytes(c); if (intStyle == 4) // Polygon polyShape = new ShapeTemplate(b); } ctx.loadReference(this); ctx.loadReference(this); ArrowAnchor anchorIncoming =(ArrowAnchor)reader.ReadInt32(); ArrowAnchor anchorOutgoing= (ArrowAnchor)reader.ReadInt32(); customDraw = (CustomDraw)reader.ReadInt32(); image = ctx.loadImage(); pen.Width = PenWidth; pen.Color = frameColor; pen.DashStyle = PenDashStyle; brush.Release(); brush = new SolidBrush(fillColor); brush.AddRef(); if (ctx.FileVersion > 2) { if (ctx.FileVersion < 6) { shapeTemplate = (ShapeTemplate)ctx.loadObject(); shapeData = (ShapeTemplate.PathData)ctx.loadObject(); } if (ctx.FileVersion > 3) { pen = (Pen)ctx.loadObject(); ctx.loadReference(this); selStyle = (HandlesStyle)reader.ReadInt32(); if (ctx.FileVersion > 4) { // new in save format 5 anchorPattern = ctx.loadAnchorPattern(); if (ctx.FileVersion > 5) { // new in save format 6 PolyTextLayout = reader.ReadBoolean(); ShapeOrientation = (float)reader.ReadDouble(); int hasShape = reader.ReadInt32(); if (hasShape != -1) { string shpId = reader.ReadString(); if (shpId == "") { shapeTemplate = (ShapeTemplate)ctx.loadObject(); shapeData = (ShapeTemplate.PathData)ctx.loadObject(); } else { ShapeTemplate stvalue = ShapeTemplate.FromId(shpId); ShapeTemplate newVal = flowChart.DefaultShape; if (stvalue != null) newVal = stvalue; if (newVal.Id == "") shapeTemplate = (ShapeTemplate)newVal.Clone(); else shapeTemplate = newVal; shapeData = null; } updateShapePoints(); } if (intStyle == 4) // Polygon { shapeTemplate = polyShape; shapeData = null; updateShapePoints(); } if (ctx.FileVersion > 12) { // new in save format 13 // now loaded in Node::loadFrom if (ctx.FileVersion < 15) hyperLink = reader.ReadString(); if (ctx.FileVersion > 13) { // new in save format 14 useStyledText = reader.ReadBoolean(); if (ctx.FileVersion > 21) { // new in save format 22 rotationAngle = reader.ReadSingle(); rotateContents = reader.ReadBoolean(); } } } } } } } updateText(); layoutText(); }
static ShapeTemplate() { lock (defaultShapes) { // Fill the list with all default shapes. // Each shape has associated string id to it if (defaultShapes.Count == 0 || !defaultShapesDefined) { defaultShapesDefined = true; new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, FillMode.Winding, "Rectangle"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 100, 50), new LineTemplate(100, 50, 50, 100), new LineTemplate(50, 100, 0, 50), new LineTemplate(0, 50, 50, 0) }, FillMode.Winding, "Decision"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 50, 0), new BezierTemplate(50, 0, 80, 0, 100, 30, 100, 50), new BezierTemplate(100, 50, 100, 70, 80, 100, 50, 100), new LineTemplate(50, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, FillMode.Winding, "Delay"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, new ElementTemplate[] { new LineTemplate(15, 0, 15, 100), new LineTemplate(85, 0, 85, 100) }, new ElementTemplate[] { new LineTemplate(15, 0, 85, 0), new LineTemplate(85, 0, 85, 100), new LineTemplate(85, 100, 15, 100), new LineTemplate(15, 100, 15, 0) }, FillMode.Winding, "Procedure"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(0, 0, 100, 100, 0, 360) }, FillMode.Winding, "Ellipse"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 50, 0), new LineTemplate(50, 0, 100, 100), new LineTemplate(100, 100, 0, 100) }, FillMode.Winding, "Alternative"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(40, 50, 0, 0), new LineTemplate(0, 0, 60, 0), new LineTemplate(60, 0, 100, 50), new LineTemplate(100, 50, 60, 100), new LineTemplate(60, 100, 0, 100), new LineTemplate(0, 100, 40, 50) }, FillMode.Winding, "Arrow1"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 25, 0), new LineTemplate(25, 0, 25, 40), new LineTemplate(25, 40, 60, 40), new LineTemplate(60, 40, 60, 0), new LineTemplate(60, 0, 100, 50), new LineTemplate(100, 50, 60, 100), new LineTemplate(60, 100, 60, 60), new LineTemplate(60, 60, 25, 60), new LineTemplate(25, 60, 25, 100), new LineTemplate(25, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, FillMode.Winding, "Arrow2"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 30, 60, 30), new LineTemplate(60, 30, 60, 0), new LineTemplate(60, 0, 100, 50), new LineTemplate(100, 50, 60, 100), new LineTemplate(60, 100, 60, 70), new LineTemplate(60, 70, 0, 70), new LineTemplate(0, 70, 0, 30) }, FillMode.Winding, "Arrow3"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 30, 60, 30), new LineTemplate(60, 30, 60, 0), new LineTemplate(60, 0, 100, 50), new LineTemplate(100, 50, 60, 100), new LineTemplate(60, 100, 60, 70), new LineTemplate(60, 70, 0, 70), new LineTemplate(0, 70, 20, 50), new LineTemplate(20, 50, 0, 30) }, FillMode.Winding, "Arrow4"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(30, 30, 30, 0), new LineTemplate(30, 0, 0, 50), new LineTemplate(0, 50, 30, 100), new LineTemplate(30, 100, 30, 70), new LineTemplate(30, 70, 70, 70), new LineTemplate(70, 70, 70, 100), new LineTemplate(70, 100, 100, 50), new LineTemplate(100, 50, 70, 0), new LineTemplate(70, 0, 70, 30), new LineTemplate(70, 30, 30, 30) }, FillMode.Winding, "Arrow5"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(0, 100, 50, 66, 50, 33, 0, 0), new LineTemplate(0, 0, 100, 50), new LineTemplate(100, 50, 0, 100) }, FillMode.Winding, "Arrow6"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 70, 0), new LineTemplate(70, 0, 100, 50), new LineTemplate(100, 50, 70, 100), new LineTemplate(70, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, FillMode.Winding, "Arrow7"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(40, 0, 40, 35), new LineTemplate(40, 35, 0, 0), new LineTemplate(0, 0, 0, 100), new LineTemplate(0, 100, 40, 65), new LineTemplate(40, 65, 40, 100), new LineTemplate(40, 100, 100, 50), new LineTemplate(100, 50, 40, 0) }, new ElementTemplate[] { new LineTemplate(40, 35, 40, 65) }, null, FillMode.Winding, "Arrow8"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 25, 0, 25), new LineTemplate(0, 25, 0, 100), new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 25), new LineTemplate(100, 25, 75, 0), new LineTemplate(75, 0, 25, 0), new LineTemplate(25, 0, 0, 25) }, FillMode.Winding, "BeginLoop"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 100, 100) }, FillMode.Winding, "Collate"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(0, 80, 6, 94, 30, 100, 50, 100), new BezierTemplate(50, 100, 70, 100, 94, 94, 100, 80), new LineTemplate(100, 80, 50, 0), new LineTemplate(50, 0, 0, 80) }, new ElementTemplate[] { new BezierTemplate(0, 80, 10, 65, 30, 60, 50, 60), new BezierTemplate(50, 60, 70, 60, 90, 65, 100, 80) }, new ElementTemplate[] { new LineTemplate(0, 80, 50, 0), new LineTemplate(50, 0, 100, 80), new BezierTemplate(100, 80, 94, 66, 70, 60, 50, 60), new BezierTemplate(50, 60, 30, 60, 6, 66, 0, 80) }, FillMode.Winding, "ConeDown"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(0, 80, 6, 94, 30, 100, 50, 100), new BezierTemplate(50, 100, 70, 100, 94, 94, 100, 80), new LineTemplate(100, 80, 50, 0), new LineTemplate(50, 0, 0, 80) }, FillMode.Winding, "ConeUp"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15), new LineTemplate(0, 85, 100, 85) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15), new LineTemplate(100, 15, 100, 85), new LineTemplate(100, 85, 0, 85), new LineTemplate(0, 85, 0, 15) }, FillMode.Winding, "CreateRequest"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(40, 40, 40, 0), new LineTemplate(40, 0, 60, 0), new LineTemplate(60, 0, 60, 40), new LineTemplate(60, 40, 100, 40), new LineTemplate(100, 40, 100, 60), new LineTemplate(100, 60, 60, 60), new LineTemplate(60, 60, 60, 100), new LineTemplate(60, 100, 40, 100), new LineTemplate(40, 100, 40, 60), new LineTemplate(40, 60, 0, 60), new LineTemplate(0, 60, 0, 40), new LineTemplate(0, 40, 40, 40) }, FillMode.Winding, "Cross"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 20, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 20), new BezierTemplate(0, 20, 0, 5, 30, 0, 50, 0), new BezierTemplate(50, 0, 70, 0, 100, 5, 100, 20) }, new ElementTemplate[] { new BezierTemplate(100, 20, 100, 35, 70, 40, 50, 40), new BezierTemplate(50, 40, 30, 40, 0, 35, 0, 20) }, new ElementTemplate[] { new LineTemplate(100, 20, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 20), new BezierTemplate(0, 20, 16, 35, 30, 40, 50, 40), new BezierTemplate(50, 40, 70, 40, 100, 35, 100, 20) }, FillMode.Winding, "Cylinder"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 50, 25, 100), new LineTemplate(25, 100, 75, 100), new LineTemplate(75, 100, 100, 50), new LineTemplate(100, 50, 75, 0), new LineTemplate(75, 0, 25, 0), new LineTemplate(25, 0, 0, 50) }, FillMode.Winding, "Decision2"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new BezierTemplate(100, 100, 85, 100, 67, 75, 67, 50), new BezierTemplate(67, 50, 67, 25, 85, 0, 100, 0), new LineTemplate(100, 0, 0, 0), new BezierTemplate(0, 0, 15, 0, 33, 25, 33, 50), new BezierTemplate(33, 50, 33, 75, 15, 100, 0, 100) }, FillMode.Winding, "DInDelay"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(33, 100, 67, 100), new BezierTemplate(67, 100, 80, 100, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 85, 0, 67, 0), new LineTemplate(67, 0, 33, 0), new BezierTemplate(33, 0, 15, 0, 0, 25, 0, 50), new BezierTemplate(0, 50, 0, 75, 15, 100, 33, 100) }, FillMode.Winding, "DOutDelay"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 20, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 20), new BezierTemplate(0, 20, 0, 5, 30, 0, 50, 0), new BezierTemplate(50, 0, 70, 0, 100, 5, 100, 20) }, new ElementTemplate[] { new BezierTemplate(100, 20, 100, 35, 70, 40, 50, 40), new BezierTemplate(50, 40, 30, 40, 0, 35, 0, 20), new BezierTemplate(100, 30, 100, 45, 70, 50, 50, 50), new BezierTemplate(50, 50, 30, 50, 0, 45, 0, 30) }, new ElementTemplate[] { new LineTemplate(100, 30, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 30), new BezierTemplate(0, 30, 16, 45, 30, 50, 50, 50), new BezierTemplate(50, 50, 70, 50, 100, 45, 100, 30) }, FillMode.Winding, "DiskStorage"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(10, 100, 90, 100), new BezierTemplate(90, 100, 95, 100, 100, 95, 100, 90), new LineTemplate(100, 90, 100, 10), new BezierTemplate(100, 10, 100, 5, 95, 0, 90, 0), new LineTemplate(90, 0, 10, 0), new BezierTemplate(10, 0, 5, 0, 0, 5, 0, 10), new LineTemplate(0, 10, 0, 90), new BezierTemplate(0, 90, 0, 95, 5, 100, 10, 100) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15), new LineTemplate(100, 15, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 15) }, FillMode.Winding, "DividedEvent"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15), new LineTemplate(100, 15, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 15) }, FillMode.Winding, "DividedProcess"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 90, 0, 0), new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 90), new BezierTemplate(100, 90, 83, 80, 66, 80, 50, 90), new BezierTemplate(50, 90, 33, 100, 16, 100, 0, 90) }, FillMode.Winding, "Document"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 75, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 75), new LineTemplate(0, 75, 25, 100), new LineTemplate(25, 100, 75, 100), new LineTemplate(75, 100, 100, 75) }, FillMode.Winding, "EndLoop"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(50, 20, 50, 5, 65, 0, 75, 0), new BezierTemplate(75, 0, 85, 0, 100, 10, 100, 25), new BezierTemplate(100, 25, 100, 50, 67, 75, 50, 100), new BezierTemplate(50, 100, 33, 75, 0, 50, 0, 25), new BezierTemplate(0, 25, 0, 10, 15, 0, 25, 0), new BezierTemplate(25, 0, 35, 0, 50, 5, 50, 20) }, FillMode.Winding, "Heart"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 0, 100), new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 40), new LineTemplate(0, 40, 0, 100) }, FillMode.Winding, "Input"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, new ElementTemplate[] { new LineTemplate(0, 15, 100, 15), new LineTemplate(15, 0, 15, 100) }, new ElementTemplate[] { new LineTemplate(15, 15, 100, 15), new LineTemplate(100, 15, 100, 100), new LineTemplate(100, 100, 15, 100), new LineTemplate(15, 100, 15, 15) }, FillMode.Winding, "InternalStorage"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 80, 50), new LineTemplate(80, 50, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, FillMode.Winding, "MessageFromUser"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 100, 20, 100), new LineTemplate(20, 100, 0, 50), new LineTemplate(0, 50, 20, 0), new LineTemplate(20, 0, 100, 0), new LineTemplate(100, 0, 100, 100) }, FillMode.Winding, "MessageToUser"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 92, 0, 20), new LineTemplate(0, 20, 10, 20), new LineTemplate(10, 20, 10, 10), new LineTemplate(10, 10, 20, 10), new LineTemplate(20, 10, 20, 0), new LineTemplate(20, 0, 100, 0), new LineTemplate(100, 0, 100, 72), new BezierTemplate(100, 72, 95, 69, 90, 69, 90, 69), new LineTemplate(90, 69, 90, 82), new BezierTemplate(90, 82, 85, 79, 80, 79, 80, 79), new LineTemplate(80, 79, 80, 92), new BezierTemplate(80, 92, 66, 84, 53, 84, 39, 92), new BezierTemplate(39, 92, 26, 100, 13, 100, 0, 92) }, new ElementTemplate[] { new LineTemplate(10, 20, 80, 20), new LineTemplate(80, 20, 80, 79), new LineTemplate(20, 10, 90, 10), new LineTemplate(90, 10, 90, 69) }, new ElementTemplate[] { new LineTemplate(0, 92, 0, 20), new LineTemplate(0, 20, 80, 20), new LineTemplate(80, 20, 80, 20), new LineTemplate(80, 20, 80, 92), new BezierTemplate(80, 92, 66, 84, 53, 84, 39, 92), new BezierTemplate(39, 92, 26, 100, 13, 100, 0, 92) }, FillMode.Winding, "MultiDocument"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 50, 100), new LineTemplate(50, 100, 100, 0), new LineTemplate(100, 0, 0, 0) }, new ElementTemplate[] { new LineTemplate(10, 20, 90, 20) }, new ElementTemplate[] { new LineTemplate(50, 100, 10, 20), new LineTemplate(10, 20, 90, 20), new LineTemplate(90, 20, 50, 100) }, FillMode.Winding, "OfflineStorage"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 70, 0, 0), new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 70), new LineTemplate(100, 70, 50, 100), new LineTemplate(50, 100, 0, 70) }, FillMode.Winding, "OffpageReference"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 80, 50), new LineTemplate(80, 50, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, new ElementTemplate[] { new LineTemplate(15, 0, 15, 100) }, new ElementTemplate[] { new LineTemplate(20, 0, 20, 100), new LineTemplate(20, 100, 100, 100), new LineTemplate(100, 100, 80, 50), new LineTemplate(80, 50, 100, 0), new LineTemplate(100, 0, 20, 0) }, FillMode.Winding, "PrimitiveFromCall"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 100, 20, 100), new LineTemplate(20, 100, 0, 50), new LineTemplate(0, 50, 20, 0), new LineTemplate(20, 0, 100, 0), new LineTemplate(100, 0, 100, 100) }, new ElementTemplate[] { new LineTemplate(85, 0, 85, 100) }, new ElementTemplate[] { new LineTemplate(80, 0, 80, 100), new LineTemplate(80, 100, 20, 100), new LineTemplate(20, 100, 0, 50), new LineTemplate(0, 50, 20, 0), new LineTemplate(20, 0, 80, 0) }, FillMode.Winding, "PrimitiveToCall"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, new ElementTemplate[] { new LineTemplate(15, 0, 15, 100) }, new ElementTemplate[] { new LineTemplate(15, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 15, 100), new LineTemplate(15, 100, 15, 0) }, FillMode.Winding, "Process"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 100, 20), new LineTemplate(100, 20, 100, 80), new LineTemplate(100, 80, 50, 100), new LineTemplate(50, 100, 50, 100), new LineTemplate(50, 100, 0, 80), new LineTemplate(0, 80, 0, 20), new LineTemplate(0, 20, 50, 0) }, new ElementTemplate[] { new LineTemplate(0, 20, 50, 40), new LineTemplate(50, 40, 50, 100), new LineTemplate(50, 40, 100, 20) }, null, FillMode.Winding, "Prysm"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 100, 100, 80), new LineTemplate(100, 80, 50, 0), new LineTemplate(50, 0, 0, 80), new LineTemplate(0, 80, 50, 100) }, new ElementTemplate[] { new LineTemplate(0, 80, 50, 60), new LineTemplate(50, 0, 50, 60), new LineTemplate(100, 80, 50, 60), }, null, FillMode.Winding, "PyramidDown"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 100, 100, 80), new LineTemplate(100, 80, 50, 0), new LineTemplate(50, 0, 0, 80), new LineTemplate(0, 80, 50, 100) }, new ElementTemplate[] { new LineTemplate(50, 0, 50, 100) }, null, FillMode.Winding, "PyramidUp"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 0, 100), new LineTemplate(0, 100, 0, 30), new LineTemplate(0, 30, 30, 0), new LineTemplate(30, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100) }, FillMode.Winding, "PunchedCard"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 25, 0), new LineTemplate(25, 0, 100, 0), new LineTemplate(100, 0, 75, 100), new LineTemplate(75, 100, 0, 100) }, FillMode.Winding, "Save"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 100, 50), new LineTemplate(100, 50, 50, 100), new LineTemplate(50, 100, 0, 50), new LineTemplate(0, 50, 50, 0) }, new ElementTemplate[] { new LineTemplate(0, 50, 100, 50) }, null, FillMode.Winding, "Sort"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(0, 0, 100, 100, 0, 360) }, new ElementTemplate[] { new BezierTemplate(50, 0, 25, 25, 25, 75, 50, 100) }, new ElementTemplate[] { new BezierTemplate(50, 100, 25, 75, 25, 25, 50, 0), new ArcTemplate(50, 0, 50, 100, 270, 180) }, FillMode.Winding, "Sphere"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(15, 100, 5, 100, 0, 75, 0, 50), new BezierTemplate(0, 50, 0, 25, 5, 0, 15, 0), new LineTemplate(15, 0, 85, 0), new BezierTemplate(85, 0, 95, 0, 100, 25, 100, 50), new BezierTemplate(100, 50, 100, 75, 95, 100, 85, 100), new LineTemplate(85, 100, 15, 100) }, new ElementTemplate[] { new LineTemplate(15, 0, 15, 100), new LineTemplate(85, 0, 85, 100) }, new ElementTemplate[] { new LineTemplate(15, 0, 80, 0), new LineTemplate(80, 0, 80, 100), new LineTemplate(80, 100, 15, 100), new LineTemplate(15, 100, 15, 0) }, FillMode.Winding, "Start"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 67, 100), new BezierTemplate(67, 100, 85, 100, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 85, 0, 67, 0), new LineTemplate(67, 0, 0, 0), new BezierTemplate(0, 0, 15, 0, 33, 25, 33, 50), new BezierTemplate(33, 50, 33, 75, 15, 100, 0, 100) }, FillMode.Winding, "DDelay"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(20, 100, 80, 100), new BezierTemplate(80, 100, 90, 100, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 90, 0, 80, 0), new LineTemplate(80, 0, 20, 0), new BezierTemplate(20, 0, 10, 0, 0, 25, 0, 50), new BezierTemplate(0, 50, 0, 75, 10, 100, 20, 100) }, FillMode.Winding, "Terminator"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 20, 100), new LineTemplate(20, 100, 80, 100), new LineTemplate(80, 100, 100, 0) }, FillMode.Winding, "ManualOperation"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(40, 100, 15, 100, 0, 70, 0, 50), new BezierTemplate(0, 50, 0, 30, 15, 0, 40, 0), new LineTemplate(40, 0, 85, 0), new BezierTemplate(85, 0, 100, 20, 100, 30, 100, 50), new BezierTemplate(100, 50, 100, 70, 100, 80, 85, 100), new LineTemplate(85, 100, 40, 100) }, FillMode.Winding, "Display"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 80, 100), new LineTemplate(80, 100, 80, 90), new LineTemplate(80, 90, 90, 90), new LineTemplate(90, 90, 90, 80), new LineTemplate(90, 80, 100, 80), new LineTemplate(100, 80, 100, 0), new LineTemplate(100, 0, 20, 0), new LineTemplate(20, 0, 20, 10), new LineTemplate(20, 10, 10, 10), new LineTemplate(10, 10, 10, 20), new LineTemplate(10, 20, 0, 20), new LineTemplate(0, 20, 0, 100) }, new ElementTemplate[] { new LineTemplate(10, 20, 80, 20), new LineTemplate(80, 20, 80, 90), new LineTemplate(20, 10, 90, 10), new LineTemplate(90, 10, 90, 80) }, new ElementTemplate[] { new LineTemplate(0, 100, 80, 100), new LineTemplate(80, 100, 80, 20), new LineTemplate(80, 20, 0, 20), new LineTemplate(0, 20, 0, 100) }, FillMode.Winding, "MultiProc"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 90, 0, 0), new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 90), new BezierTemplate(100, 90, 83, 80, 66, 80, 50, 90), new BezierTemplate(50, 90, 33, 100, 16, 100, 0, 90) }, new ElementTemplate[] { new LineTemplate(15, 0, 15, 96) }, new ElementTemplate[] { new LineTemplate(16, 94, 16, 0), new LineTemplate(16, 0, 100, 0), new LineTemplate(100, 0, 100, 90), new BezierTemplate(100, 90, 83, 80, 66, 80, 50, 90), new BezierTemplate(50, 90, 33, 100, 24, 100, 16, 94) }, FillMode.Winding, "LinedDocument"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(100, 20, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 20), new BezierTemplate(0, 20, 0, 5, 30, 0, 50, 0), new BezierTemplate(50, 0, 70, 0, 100, 5, 100, 20) }, new ElementTemplate[] { new BezierTemplate(100, 20, 100, 35, 70, 40, 50, 40), new BezierTemplate(50, 40, 30, 40, 0, 35, 0, 20), new BezierTemplate(100, 30, 100, 45, 70, 50, 50, 50), new BezierTemplate(50, 50, 30, 50, 0, 45, 0, 30), new BezierTemplate(100, 40, 100, 55, 70, 60, 50, 60), new BezierTemplate(50, 60, 30, 60, 0, 55, 0, 40) }, new ElementTemplate[] { new LineTemplate(100, 40, 100, 80), new BezierTemplate(100, 80, 100, 95, 70, 100, 50, 100), new BezierTemplate(50, 100, 30, 100, 0, 95, 0, 80), new LineTemplate(0, 80, 0, 40), new BezierTemplate(0, 40, 16, 55, 30, 60, 50, 60), new BezierTemplate(50, 60, 70, 60, 100, 55, 100, 40) }, FillMode.Winding, "Database"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(15, 100, 85, 100), new LineTemplate(85, 100, 100, 50), new LineTemplate(100, 50, 85, 0), new LineTemplate(85, 0, 15, 0), new LineTemplate(15, 0, 0, 50), new LineTemplate(0, 50, 15, 100) }, FillMode.Winding, "DataTransmition"); new ShapeTemplate( new ElementTemplate[] { new BezierTemplate(67, 0, 58, 2, 61, 7, 60, 19), new BezierTemplate(60, 19, 49, 11, 51, 8, 43, 14), new BezierTemplate(43, 14, 37, 19, 40, 25, 41, 33), new BezierTemplate(41, 33, 35, 24, 27, 13, 13, 21), new BezierTemplate(13, 21, 10, 25, 7, 29, 15, 44), new BezierTemplate(15, 44, 5, 47, 0, 50, 0, 63), new BezierTemplate(0, 63, 3, 74, 17, 72, 27, 71), new BezierTemplate(27, 71, 21, 77, 14, 93, 27, 100), new BezierTemplate(27, 100, 38, 100, 52, 93, 55, 78), new BezierTemplate(55, 78, 70, 93, 81, 87, 88, 80), new BezierTemplate(88, 80, 91, 69, 87, 63, 79, 57), new BezierTemplate(79, 57, 90, 52, 100, 43, 100, 24), new BezierTemplate(100, 24, 96, 7, 77, 0, 67, 0) }, FillMode.Winding, "Cloud"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(60, 90, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate(0, 0, 0, 90), new LineTemplate(0, 90, 60, 90) }, FillMode.Winding, "TransmittalTape"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, new ElementTemplate[] { new LineTemplate(5, 5, 95, 5), new LineTemplate(95, 5, 95, 95), new LineTemplate(95, 95, 5, 95), new LineTemplate(5, 95, 5, 5) }, new ElementTemplate[] { new LineTemplate(5, 5, 95, 5), new LineTemplate(95, 5, 95, 95), new LineTemplate(95, 95, 5, 95), new LineTemplate(5, 95, 5, 5) }, FillMode.Winding, "FramedRectangle"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 90, 0, 10), new BezierTemplate(0, 10, 16, 20, 33, 20, 50, 10), new BezierTemplate(50, 10, 66, 0, 83, 0, 100, 10), new LineTemplate(100, 10, 100, 90), new BezierTemplate(100, 90, 83, 80, 66, 80, 50, 90), new BezierTemplate(50, 90, 33, 100, 16, 100, 0, 90) }, FillMode.Winding, "Microform"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 80, 75), new LineTemplate(80, 75, 100, 85), new LineTemplate(100, 85, 100, 15), new LineTemplate(100, 15, 80, 25), new LineTemplate(80, 25, 0, 0), new LineTemplate(0, 0, 0, 100) }, FillMode.Winding, "MicroformRecording"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 100, 50, 74), new LineTemplate(50, 74, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 50, 25), new LineTemplate(50, 25, 0, 0), new LineTemplate(0, 0, 0, 100) }, FillMode.Winding, "MicroformProcessing"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 10, 40, 50), new LineTemplate(40, 50, 0, 90), new LineTemplate(0, 90, 10, 100), new LineTemplate(10, 100, 50, 60), new LineTemplate(50, 60, 90, 100), new LineTemplate(90, 100, 100, 90), new LineTemplate(100, 90, 60, 50), new LineTemplate(60, 50, 100, 10), new LineTemplate(100, 10, 90, 0), new LineTemplate(90, 0, 50, 40), new LineTemplate(50, 40, 10, 0), new LineTemplate(10, 0, 0, 10) }, FillMode.Winding, "ConnectedIssues"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, new ElementTemplate[] { new LineTemplate(10, 0, 0, 10), new LineTemplate(90, 0, 100, 10), new LineTemplate(90, 100, 100, 90), new LineTemplate(0, 90, 10, 100) }, null, FillMode.Winding, "ExternalOrganization"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 100, 50), new LineTemplate(100, 50, 50, 100), new LineTemplate(50, 100, 0, 50), new LineTemplate(0, 50, 50, 0) }, new ElementTemplate[] { new LineTemplate(40, 10, 60, 10), new LineTemplate(40, 90, 60, 90), new LineTemplate(10, 40, 10, 60), new LineTemplate(90, 40, 90, 60) }, null, FillMode.Winding, "ExternalProcess"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 0, 100), new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 30), new LineTemplate(100, 30, 70, 0), new LineTemplate(70, 0, 0, 0) }, new ElementTemplate[] { new LineTemplate(70, 0, 70, 30), new LineTemplate(70, 30, 100, 30) }, new ElementTemplate[] { new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 100, 30), new LineTemplate(100, 30, 70, 30), new LineTemplate(70, 30, 70, 0), new LineTemplate(70, 0, 0, 0), new LineTemplate(0, 0, 0, 100) }, FillMode.Winding, "File"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 0, 50), new LineTemplate(0, 50, 15, 100), new LineTemplate(15, 100, 85, 100), new LineTemplate(85, 100, 100, 50), new LineTemplate(100, 50, 50, 0) }, FillMode.Winding, "Pentagon"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(28, 100, 0, 70), new LineTemplate(0, 70, 10, 25), new LineTemplate(10, 25, 50, 0), new LineTemplate(50, 0, 90, 25), new LineTemplate(90, 25, 100, 70), new LineTemplate(100, 70, 72, 100), new LineTemplate(72, 100, 28, 100) }, FillMode.Winding, "Heptagon"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(33, 100, 0, 67), new LineTemplate(0, 67, 0, 33), new LineTemplate(0, 33, 33, 0), new LineTemplate(33, 0, 67, 0), new LineTemplate(67, 0, 100, 33), new LineTemplate(100, 33, 100, 67), new LineTemplate(100, 67, 67, 100), new LineTemplate(67, 100, 33, 100) }, FillMode.Winding, "Octagon"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(30, 100, 100, 100), new LineTemplate(100, 100, 70, 0), new LineTemplate(70, 0, 0, 0), new LineTemplate(0, 0, 30, 100) }, FillMode.Winding, "RSave"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(50, 0, 50, 0), new LineTemplate(50, 0, 40, 33), new LineTemplate(40, 33, 0, 30), new LineTemplate( 0, 30, 30, 50), new LineTemplate(30, 50, 15, 100), new LineTemplate(15, 100, 50, 60), new LineTemplate(50, 60, 85, 100), new LineTemplate(85, 100, 67, 50), new LineTemplate(67, 50, 100, 30), new LineTemplate(100, 30, 60, 33), new LineTemplate(60, 33, 50, 0) }, FillMode.Winding, "Star"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(30, 0, 30, 0), new LineTemplate(30, 0, 15, 40), new LineTemplate(15, 40, 45, 40), new LineTemplate(45, 40, 30, 100), new LineTemplate(30, 100, 65, 30), new LineTemplate(65, 30, 33, 27), new LineTemplate(33, 27, 56, 0), new LineTemplate(56, 0, 30, 0) }, FillMode.Winding, "Lightning"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 30, 50), new LineTemplate(30, 50, 0, 100), new LineTemplate(0, 100, 100, 50), new LineTemplate(100, 50, 0, 0) }, FillMode.Winding, "Arrow9"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 30, 50), new LineTemplate(30, 50, 0, 100), new LineTemplate(0, 100, 100, 100), new LineTemplate(100, 100, 70, 50), new LineTemplate(70, 50, 100, 0), new LineTemplate(100, 0, 0, 0) }, FillMode.Winding, "Hourglass"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(70, 100, 70, 100), new LineTemplate(70, 100, 0, 100), new LineTemplate(0, 100, 0, 30), new LineTemplate(0, 30, 70, 30), new LineTemplate(70, 30, 0, 30), new LineTemplate(0, 30, 30, 0), new LineTemplate(30, 0, 100, 0), new LineTemplate(100, 0, 70, 30), new LineTemplate(70, 30, 100, 0), new LineTemplate(100, 0, 100, 70), new LineTemplate(100, 70, 70, 100), new LineTemplate(70, 100, 70, 30), new LineTemplate(70, 30, 70, 100) }, null, new ElementTemplate[] { new LineTemplate(70, 100, 0, 100), new LineTemplate(0, 100, 0, 30), new LineTemplate(0, 30, 70, 30), new LineTemplate(70, 30, 70, 100) }, FillMode.Winding, "Cube"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 0, 100), new LineTemplate(0, 100, 100, 50), new LineTemplate(100, 50, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 100, 50), new LineTemplate(100, 50, 0, 0) }, FillMode.Winding, "Interrupt"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 0, 100), new LineTemplate(0, 100, 80, 50), new LineTemplate(80, 50, 80, 20), new LineTemplate(80, 20, 100, 0), new LineTemplate(100, 0, 80, 20), new LineTemplate(80, 20, 80, 80), new LineTemplate(80, 80, 60, 100), new LineTemplate(60, 100, 80, 80), new LineTemplate(80, 80, 80, 50), new LineTemplate(80, 50, 0, 0) }, FillMode.Winding, "Interrupt2"); float y = (float)Math.Sqrt(3) * 25 + 50; new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(0, 0, 100, 100, 90, 330), new LineTemplate(75, y, 100, y), new LineTemplate(100, y, 100, 100), new LineTemplate(100, 100, 50, 100) }, FillMode.Winding, "Tape"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(40, 0, 20, 20, 0, 360), new LineTemplate(50, 20, 70, 20), new ArcTemplate(65, 20, 10, 10, 270, 90), new LineTemplate(75, 25, 75, 60), new LineTemplate(75, 60, 68, 60), new LineTemplate(68, 60, 68, 30), new LineTemplate(68, 30, 64, 30), new LineTemplate(64, 30, 64, 100), new LineTemplate(64, 100, 52, 100), new LineTemplate(52, 100, 52, 65), new LineTemplate(52, 65, 48, 65), new LineTemplate(48, 65, 48, 100), new LineTemplate(48, 100, 36, 100), new LineTemplate(36, 100, 36, 30), new LineTemplate(36, 30, 32, 30), new LineTemplate(32, 30, 32, 60), new LineTemplate(32, 60, 25, 60), new LineTemplate(25, 60, 25, 25), new ArcTemplate(25, 20, 10, 10, 180, 90), new LineTemplate(30, 20, 50, 20) }, FillMode.Winding, "Actor"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(10, 0, 90, 0), new ArcTemplate(80, 0, 20, 20, -90, 90), new LineTemplate(100, 10, 100, 90), new ArcTemplate(80, 80, 20, 20, 0, 90), new LineTemplate(90, 100, 10, 100), new ArcTemplate(0, 80, 20, 20, 90, 90), new LineTemplate(0, 90, 0, 10), new ArcTemplate(0, 0, 20, 20, 180, 90) }, FillMode.Winding, "RoundRect"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(10, 0, 90, 0), new ArcTemplate(80, 0, 20, 100, -90, 180), new LineTemplate(90, 100, 10, 100), new ArcTemplate(0, 0, 20, 100, 90, 180) }, new ElementTemplate[] { new ArcTemplate(0, 0, 20, 100, -90, 180) }, new ElementTemplate[] { new LineTemplate(10, 0, 90, 0), new ArcTemplate(80, 0, 20, 100, -90, 180), new LineTemplate(90, 100, 10, 100), new BezierTemplate(10, 100, 35, 66, 35, 33, 10, 0) }, FillMode.Winding, "DirectAccessStorage"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 100, 0), new LineTemplate(100, 0, 50, 100), new LineTemplate(50, 100, 0, 0) }, FillMode.Winding, "Merge"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 50, 0), new LineTemplate(50, 0, 100, 50), new LineTemplate(100, 50, 50, 100), new LineTemplate(50, 100, 0, 100), new LineTemplate(0, 100, 0, 0) }, FillMode.Winding, "OffpageConnection"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(0, 0, 100, 100, 0, 360) }, new ElementTemplate[] { new LineTemplate(50, 0, 50, 100), new LineTemplate(0, 50, 100, 50) }, null, FillMode.Winding, "Or"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(-100, 0, 200, 100, -90, 180), new BezierTemplate(0, 100, 55, 75, 55, 25, 0, 0) }, FillMode.Winding, "Gate"); new ShapeTemplate( new ElementTemplate[] { new LineTemplate(0, 0, 75, 0), new LineTemplate(75, 0, 100, 50), new LineTemplate(100, 50, 75, 100), new LineTemplate(75, 100, 0, 100), new LineTemplate(0, 100, 25, 50), new LineTemplate(25, 50, 0, 0) }, FillMode.Winding, "IsoProcess"); new ShapeTemplate( new ElementTemplate[] { new ArcTemplate(0, 0, 100, 100, 0, 360) }, new ElementTemplate[] { new LineTemplate(15, 15, 85, 85), new LineTemplate(85, 15, 15, 85) }, null, FillMode.Winding, "Junction"); } Cylinder = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 10, 100, 90), new ArcTemplate(0, 80, 100, 20, 0, 180), new LineTemplate(0, 90, 0, 10), new ArcTemplate(0, 0, 100, 20, 180, 180), new ArcTemplate(0, 0, 100, 20, 0, 180), new ArcTemplate(0, 0, 100, 20, 180, 180) }, FillMode.Winding); // Flowcharting Start = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 30, 0, 70), new LineTemplate( 0, 70, 20, 100), new LineTemplate( 20, 100, 30, 100), new LineTemplate( 30, 100, 30, 0), new LineTemplate( 30, 0, 30, 100), new LineTemplate( 30, 100, 70, 100), new LineTemplate( 70, 100, 70, 0), new LineTemplate( 70, 0, 70, 100), new LineTemplate( 70, 100, 80, 100), new LineTemplate( 80, 100, 100, 70), new LineTemplate(100, 70, 100, 30), new LineTemplate(100, 30, 80, 0), new LineTemplate( 80, 0, 20, 0), new LineTemplate( 20, 0, 0, 30) }, FillMode.Winding); Procedure = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 0, 100), new LineTemplate( 0, 100, 15, 100), new LineTemplate( 15, 100, 15, 0), new LineTemplate( 15, 0, 15, 100), new LineTemplate( 15, 100, 85, 100), new LineTemplate( 85, 100, 85, 0), new LineTemplate( 85, 0, 85, 100), new LineTemplate( 85, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0) }, FillMode.Winding); CreateRequest = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 0, 0), new LineTemplate( 0, 0, 0, 15), new LineTemplate( 0, 15, 100, 15), new LineTemplate(100, 15, 0, 15), new LineTemplate( 0, 15, 0, 85), new LineTemplate( 0, 85, 100, 85), new LineTemplate(100, 85, 0, 85), new LineTemplate( 0, 85, 0, 100), new LineTemplate( 0, 100, 100, 100), new LineTemplate(100, 100, 100, 0) }, FillMode.Winding); Alternative = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 50, 0), new LineTemplate( 50, 0, 100, 100), new LineTemplate(100, 100, 0, 100) }, FillMode.Winding); Decision = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 50, 25, 0), new LineTemplate( 25, 0, 75, 0), new LineTemplate( 75, 0, 100, 50), new LineTemplate(100, 50, 75, 100), new LineTemplate( 75, 100, 25, 100), new LineTemplate( 25, 100, 0, 50) }, FillMode.Winding); MessageFromUser = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 65, 50), new LineTemplate( 65, 50, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate( 0, 100, 0, 0) }, FillMode.Winding); PrimitiveFromCall = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 20, 100), new LineTemplate( 20, 100, 20, 0), new LineTemplate( 20, 0, 20, 100), new LineTemplate( 20, 100, 100, 100), new LineTemplate(100, 100, 65, 50), new LineTemplate( 65, 50, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate( 0, 0, 0, 100) }, FillMode.Winding); MessageToUser = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 35, 0), new LineTemplate( 35, 0, 0, 50), new LineTemplate( 0, 50, 35, 100), new LineTemplate( 35, 100, 100, 100), new LineTemplate(100, 100, 100, 0) }, FillMode.Winding); PrimitiveToCall = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 80, 0), new LineTemplate( 80, 0, 80, 100), new LineTemplate( 80, 100, 80, 0), new LineTemplate( 80, 0, 35, 0), new LineTemplate( 35, 0, 0, 50), new LineTemplate( 0, 50, 35, 100), new LineTemplate( 35, 100, 100, 100), new LineTemplate(100, 100, 100, 0) }, FillMode.Winding); Save = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 35, 0), new LineTemplate( 35, 0, 100, 0), new LineTemplate(100, 0, 65, 100), new LineTemplate( 65, 100, 0, 100) }, FillMode.Winding); OffpageReference = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 50, 0, 0), new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 100, 50), new LineTemplate(100, 50, 50, 100), new LineTemplate( 50, 100, 0, 50) }, FillMode.Winding); Document = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 90, 0, 0), new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 100, 90), new BezierTemplate(100, 90, 83, 80, 67, 80, 50, 90), new BezierTemplate( 50, 90, 33, 100, 17, 100, 0, 90) }, FillMode.Winding); DocumentReversed = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 90, 0, 0), new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 100, 90), new BezierTemplate(100, 90, 83, 100, 66, 100, 50, 90), new BezierTemplate( 50, 90, 33, 80, 16, 80, 0, 90) }, FillMode.Winding); MultiDocument = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 92, 0, 20), new LineTemplate( 0, 20, 10, 20), new LineTemplate( 10, 20, 80, 20), new LineTemplate( 80, 20, 80, 79), new BezierTemplate( 80, 79, 80, 79, 86, 79, 90, 82), new LineTemplate( 90, 82, 90, 10), new LineTemplate( 90, 10, 20, 10), new LineTemplate( 20, 10, 90, 10), new LineTemplate( 90, 10, 90, 69), new BezierTemplate( 90, 69, 90, 69, 96, 69, 100, 72), new LineTemplate(100, 72, 100, 0), new LineTemplate(100, 0, 20, 0), new LineTemplate( 20, 0, 20, 10), new LineTemplate( 20, 10, 10, 10), new LineTemplate( 10, 10, 10, 20), new LineTemplate( 10, 20, 80, 20), new LineTemplate( 80, 20, 80, 92), new BezierTemplate( 80, 92, 66, 84, 53, 84, 39, 92), new BezierTemplate( 39, 92, 26, 100, 13, 100, 0, 92) }, FillMode.Winding); DividedProcess = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate( 0, 0, 0, 25), new LineTemplate( 0, 25, 100, 25), new LineTemplate(100, 25, 0, 25), new LineTemplate( 0, 25, 0, 100) }, FillMode.Winding); DividedEvent = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 0, 90, 0, 95, 5, 100, 10, 100), new LineTemplate( 10, 100, 90, 100), new BezierTemplate( 90, 100, 95, 100, 100, 95, 100, 90), new LineTemplate(100, 90, 100, 10), new BezierTemplate(100, 10, 100, 5, 95, 0, 90, 0), new LineTemplate( 90, 0, 10, 0), new BezierTemplate( 10, 0, 5, 0, 0, 5, 0, 10), new LineTemplate( 0, 10, 0, 25), new LineTemplate( 0, 25, 100, 25), new LineTemplate(100, 25, 0, 25), new LineTemplate( 0, 25, 0, 90) }, FillMode.Winding); ManualOperation = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 75, 100), new LineTemplate( 75, 100, 25, 100), new LineTemplate( 25, 100, 0, 0) }, FillMode.Winding); Display = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 0, 50, 2, 67, 11, 90, 40, 100), new LineTemplate( 40, 100, 80, 100), new BezierTemplate( 80, 100, 90, 90, 100, 67, 100, 50), new BezierTemplate(100, 50, 100, 33, 90, 10, 80, 0), new LineTemplate( 80, 0, 40, 0), new BezierTemplate( 40, 0, 11, 10, 2, 33, 0, 50), }, FillMode.Winding); MultiDocProc = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 80, 100), new LineTemplate( 80, 100, 80, 20), new LineTemplate( 80, 20, 10, 20), new LineTemplate( 10, 20, 80, 20), new LineTemplate( 80, 20, 80, 90), new LineTemplate( 80, 90, 90, 90), new LineTemplate( 90, 90, 90, 10), new LineTemplate( 90, 10, 20, 10), new LineTemplate( 20, 10, 90, 10), new LineTemplate( 90, 10, 90, 80), new LineTemplate( 90, 80, 100, 80), new LineTemplate(100, 80, 100, 0), new LineTemplate(100, 0, 20, 0), new LineTemplate( 20, 0, 20, 10), new LineTemplate( 20, 10, 10, 10), new LineTemplate( 10, 10, 10, 20), new LineTemplate( 10, 20, 0, 20), new LineTemplate( 0, 20, 0, 100) }, FillMode.Winding); Tape = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 50, 100, 85, 100), new LineTemplate( 85, 100, 85, 90), new LineTemplate( 85, 90, 70, 90), new BezierTemplate( 70, 90, 85, 90, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 75, 0, 50, 0), new BezierTemplate( 50, 0, 25, 0, 0, 25, 0, 50), new BezierTemplate( 0, 50, 0, 75, 25, 100, 50, 100) }, FillMode.Winding); ManualInput = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 25), new LineTemplate( 0, 25, 0, 100), }, FillMode.Winding); InternalStorage = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 20, 100), new LineTemplate( 20, 100, 20, 0), new LineTemplate( 20, 0, 20, 100), new LineTemplate( 20, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 0, 0), new LineTemplate( 0, 0, 0, 20), new LineTemplate( 0, 20, 100, 20), new LineTemplate(100, 20, 0, 20), new LineTemplate( 0, 20, 0, 100) }, FillMode.Winding); Card = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 100, 100), new LineTemplate(100, 100, 100, 0), new LineTemplate(100, 0, 25, 0), new LineTemplate( 25, 0, 0, 25), new LineTemplate( 0, 25, 0, 100) }, FillMode.Winding); DirectData = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 15, 100, 0, 100, 0, 66, 0, 50), new BezierTemplate( 0, 50, 0, 33, 0, 0, 15, 0), new LineTemplate( 15, 0, 85, 0), new BezierTemplate( 85, 0, 70, 0, 70, 33, 70, 50), new BezierTemplate( 70, 50, 70, 66, 70, 100, 85, 100), new BezierTemplate( 85, 100, 100, 100, 100, 66, 100, 50), new BezierTemplate(100, 50, 100, 33, 100, 0, 85, 0), new BezierTemplate( 85, 0, 70, 0, 70, 33, 70, 50), new BezierTemplate( 70, 50, 70, 66, 70, 100, 85, 100), new LineTemplate( 85, 100, 15, 100) }, FillMode.Winding); PaperTape = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 90, 0, 10), new BezierTemplate( 0, 10, 16, 20, 33, 20, 50, 10), new BezierTemplate( 50, 10, 66, 0, 83, 0, 100, 10), new LineTemplate(100, 10, 100, 90), new BezierTemplate(100, 90, 83, 80, 66, 80, 50, 90), new BezierTemplate( 50, 90, 33, 100, 16, 100, 0, 90) }, FillMode.Winding); PaperTapeReversed = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 90, 0, 10), new BezierTemplate( 0, 10, 16, 0, 33, 0, 50, 10), new BezierTemplate( 50, 10, 66, 20, 83, 20, 100, 10), new LineTemplate(100, 10, 100, 90), new BezierTemplate(100, 90, 83, 100, 66, 100, 50, 90), new BezierTemplate( 50, 90, 33, 80, 16, 80, 0, 90) }, FillMode.Winding); LoopLimit = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 0, 25), new LineTemplate( 0, 25, 25, 0), new LineTemplate( 25, 0, 75, 0), new LineTemplate( 75, 0, 100, 25), new LineTemplate(100, 25, 100, 100), new LineTemplate(100, 100, 0, 100) }, FillMode.Winding); // Arrows Arrow1Left = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 50, 35, 0), new LineTemplate( 35, 0, 100, 0), new LineTemplate(100, 0, 65, 50), new LineTemplate( 65, 50, 100, 100), new LineTemplate(100, 100, 35, 100), new LineTemplate( 35, 100, 0, 50) }, FillMode.Winding); Arrow1Top = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 50, 0, 100, 35), new LineTemplate(100, 35, 100, 100), new LineTemplate(100, 100, 50, 65), new LineTemplate( 50, 65, 0, 100), new LineTemplate( 0, 100, 0, 35), new LineTemplate( 0, 35, 50, 0) }, FillMode.Winding); Arrow1Right = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 50, 65, 100), new LineTemplate( 65, 100, 0, 100), new LineTemplate( 0, 100, 35, 50), new LineTemplate( 35, 50, 0, 0), new LineTemplate( 0, 0, 65, 0), new LineTemplate( 65, 0, 100, 50) }, FillMode.Winding); Arrow1Bottom = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 50, 100, 0, 65), new LineTemplate( 0, 65, 0, 0), new LineTemplate( 0, 0, 50, 35), new LineTemplate( 50, 35, 100, 0), new LineTemplate(100, 0, 100, 65), new LineTemplate(100, 65, 50, 100) }, FillMode.Winding); Arrow2Left = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 80, 60, 35, 60), new LineTemplate( 35, 60, 35, 100), new LineTemplate( 35, 100, 0, 50), new LineTemplate( 0, 50, 35, 0), new LineTemplate( 35, 0, 35, 40), new LineTemplate( 35, 40, 80, 40), new LineTemplate( 80, 40, 80, 0), new LineTemplate( 80, 0, 100, 0), new LineTemplate(100, 0, 100, 100), new LineTemplate(100, 100, 80, 100), new LineTemplate( 80, 100, 80, 60) }, FillMode.Winding); Arrow2Top = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 40, 80, 40, 35), new LineTemplate( 40, 35, 0, 35), new LineTemplate( 0, 35, 50, 0), new LineTemplate( 50, 0, 100, 35), new LineTemplate(100, 35, 60, 35), new LineTemplate( 60, 35, 60, 80), new LineTemplate( 60, 80, 100, 80), new LineTemplate(100, 80, 100, 100), new LineTemplate(100, 100, 0, 100), new LineTemplate( 0, 100, 0, 80), new LineTemplate( 0, 80, 40, 80), }, FillMode.Winding); Arrow2Right = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 20, 40, 65, 40), new LineTemplate( 65, 40, 65, 0), new LineTemplate( 65, 0, 100, 50), new LineTemplate(100, 50, 65, 100), new LineTemplate( 65, 100, 65, 60), new LineTemplate( 65, 60, 20, 60), new LineTemplate( 20, 60, 20, 100), new LineTemplate( 20, 100, 0, 100), new LineTemplate( 0, 100, 0, 0), new LineTemplate( 0, 0, 20, 0), new LineTemplate( 20, 0, 20, 40) }, FillMode.Winding); Arrow2Bottom = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 60, 20, 60, 65), new LineTemplate( 60, 65, 100, 65), new LineTemplate(100, 65, 50, 100), new LineTemplate( 50, 100, 0, 65), new LineTemplate( 0, 65, 40, 65), new LineTemplate( 40, 65, 40, 20), new LineTemplate( 40, 20, 0, 20), new LineTemplate( 0, 20, 0, 0), new LineTemplate( 0, 0, 100, 0), new LineTemplate(100, 0, 100, 20), new LineTemplate(100, 20, 60, 20) }, FillMode.Winding); Arrow3Left = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate(100, 0, 80, 30, 80, 70, 100, 100), new LineTemplate(100, 100, 0, 50), new LineTemplate( 0, 50, 100, 0) }, FillMode.Winding); Arrow3Top = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate(100, 100, 70, 80, 30, 80, 0, 100), new LineTemplate( 0, 100, 50, 0), new LineTemplate( 50, 0, 100, 100) }, FillMode.Winding); Arrow3Right = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 0, 100, 20, 70, 20, 30, 0, 0), new LineTemplate( 0, 0, 100, 50), new LineTemplate(100, 50, 0, 100) }, FillMode.Winding); Arrow3Bottom = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 0, 0, 30, 20, 70, 20, 100, 0), new LineTemplate(100, 0, 50, 100), new LineTemplate( 50, 100, 0, 0) }, FillMode.Winding); // 3D-Like ConeUp = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 80, 50, 0), new LineTemplate( 50, 0, 100, 80), new BezierTemplate(100, 80, 100, 90, 66, 100, 50, 100), new BezierTemplate( 50, 100, 33, 100, 0, 90, 0, 80) }, FillMode.Winding); ConeDown = new ShapeTemplate(new ElementTemplate[] { new BezierTemplate( 0, 80, 4, 70, 33, 60, 50, 60), new BezierTemplate( 50, 60, 66, 60, 96, 70, 100, 80), new BezierTemplate(100, 80, 96, 70, 66, 60, 50, 60), new BezierTemplate( 50, 60, 33, 60, 4, 70, 0, 80), new LineTemplate( 0, 80, 50, 0), new LineTemplate( 50, 0, 100, 80), new BezierTemplate(100, 80, 100, 90, 66, 100, 50, 100), new BezierTemplate( 50, 100, 33, 100, 0, 90, 0, 80) }, FillMode.Winding); CubeUp = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 80, 50, 100), new LineTemplate( 50, 100, 50, 40), new LineTemplate( 50, 40, 50, 100), new LineTemplate( 50, 100, 100, 80), new LineTemplate(100, 80, 100, 20), new LineTemplate(100, 20, 50, 40), new LineTemplate( 50, 40, 0, 20), new LineTemplate( 0, 20, 50, 40), new LineTemplate( 50, 40, 100, 20), new LineTemplate(100, 20, 50, 0), new LineTemplate( 50, 0, 0, 20), new LineTemplate( 0, 20, 0, 80) }, FillMode.Winding); CubeDown = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 20, 50, 0), new LineTemplate( 50, 0, 50, 60), new LineTemplate( 50, 60, 50, 0), new LineTemplate( 50, 0, 0, 20), new LineTemplate( 0, 20, 0, 80), new LineTemplate( 0, 80, 50, 60), new LineTemplate( 50, 60, 100, 80), new LineTemplate(100, 80, 50, 60), new LineTemplate( 50, 60, 0, 80), new LineTemplate( 0, 80, 50, 100), new LineTemplate( 50, 100, 100, 80), new LineTemplate(100, 80, 100, 20), }, FillMode.Winding); PyramidUp = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 80, 50, 0), new LineTemplate( 50, 0, 100, 80), new LineTemplate(100, 80, 50, 100), new LineTemplate( 50, 100, 50, 0), new LineTemplate( 50, 0, 50, 100), new LineTemplate( 50, 100, 0, 80) }, FillMode.Winding); PyramidDown = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 80, 50, 0), new LineTemplate( 50, 0, 100, 80), new LineTemplate(100, 80, 50, 100), new LineTemplate( 50, 100, 100, 80), new LineTemplate(100, 80, 50, 60), new LineTemplate( 50, 60, 0, 80), new LineTemplate( 0, 80, 50, 60), new LineTemplate( 50, 60, 50, 0), new LineTemplate( 50, 0, 50, 60), new LineTemplate( 50, 60, 100, 80), new LineTemplate(100, 80, 50, 100), new LineTemplate( 50, 100, 0, 80) }, FillMode.Winding); // Miscellaneous DeltaLeft = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 40, 0), new BezierTemplate( 40, 0, 20, 0, 0, 25, 0, 50), new BezierTemplate( 0, 50, 0, 75, 20, 100, 40, 100), new LineTemplate( 40, 100, 100, 100), new LineTemplate(100, 100, 100, 0) }, FillMode.Winding); DeltaTop = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 100, 100, 40), new BezierTemplate(100, 40, 100, 20, 75, 0, 50, 0), new BezierTemplate( 50, 0, 25, 0, 0, 20, 0, 40), new LineTemplate( 0, 40, 0, 100), new LineTemplate( 0, 100, 100, 100) }, FillMode.Winding); DeltaRight = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 60, 100), new BezierTemplate( 60, 100, 80, 100, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 80, 0, 60, 0), new LineTemplate( 60, 0, 0, 0), new LineTemplate( 0, 0, 0, 100) }, FillMode.Winding); DeltaBottom = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 0, 60), new BezierTemplate( 0, 60, 0, 80, 25, 100, 50, 100), new BezierTemplate( 50, 100, 75, 100, 100, 80, 100, 60), new LineTemplate(100, 60, 100, 0), new LineTemplate(100, 0, 0, 0) }, FillMode.Winding); DoubleDeltaLeft = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 40, 0), new BezierTemplate( 40, 0, 20, 0, 0, 25, 0, 50), new BezierTemplate( 0, 50, 0, 75, 20, 100, 40, 100), new LineTemplate( 40, 100, 100, 100), new BezierTemplate(100, 100, 60, 75, 60, 25, 100, 0) }, FillMode.Winding); DoubleDeltaTop = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 100, 100, 40), new BezierTemplate(100, 40, 100, 20, 75, 0, 50, 0), new BezierTemplate( 50, 0, 25, 0, 0, 20, 0, 40), new LineTemplate( 0, 40, 0, 100), new BezierTemplate( 0, 100, 25, 60, 75, 60, 100, 100) }, FillMode.Winding); DoubleDeltaRight = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 100, 60, 100), new BezierTemplate( 60, 100, 80, 100, 100, 75, 100, 50), new BezierTemplate(100, 50, 100, 25, 80, 0, 60, 0), new LineTemplate( 60, 0, 0, 0), new BezierTemplate( 0, 0, 40, 25, 40, 75, 0, 100) }, FillMode.Winding); DoubleDeltaBottom = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 0, 60), new BezierTemplate( 0, 60, 0, 80, 25, 100, 50, 100), new BezierTemplate( 50, 100, 75, 100, 100, 80, 100, 60), new LineTemplate(100, 60, 100, 0), new BezierTemplate(100, 0, 75, 40, 25, 40, 0, 0) }, FillMode.Winding); DeflateDeltaVertical = new ShapeTemplate(new ElementTemplate[] { new LineTemplate( 0, 0, 0, 100), new BezierTemplate( 0, 100, 25, 60, 75, 60, 100, 100), new LineTemplate(100, 100, 100, 0), new BezierTemplate(100, 0, 75, 40, 25, 40, 0, 0) }, FillMode.Winding); DeflateDeltaHorizontal = new ShapeTemplate(new ElementTemplate[] { new LineTemplate(100, 0, 0, 0), new BezierTemplate( 0, 0, 40, 25, 40, 75, 0, 100), new LineTemplate( 0, 100, 100, 100), new BezierTemplate(100, 100, 60, 75, 60, 25, 100, 0) }, FillMode.Winding); } }
public bool Equals(ShapeTemplate obj) { int i; ShapeTemplate tmpl = (ShapeTemplate)obj; if(elements.Length != tmpl.elements.Length) return false; for(i = 0; i < elements.Length; i++) if(!elements[i].SameAs(tmpl.elements[i])) return false; if((decorations != null && tmpl.decorations == null) || (decorations == null && tmpl.decorations != null)) return false; if(decorations != null) { if(decorations.Length != tmpl.decorations.Length) return false; for(i = 0; i < decorations.Length; i++) if(!decorations[i].SameAs(tmpl.decorations[i])) return false; } if((textArea != null && tmpl.textArea == null) || (textArea == null && tmpl.textArea != null)) return false; if(textArea != null) { if(textArea.Length != tmpl.textArea.Length) return false; for(i = 0; i < textArea.Length; i++) if(!textArea[i].SameAs(tmpl.textArea[i])) return false; } if(fillMode != tmpl.fillMode) return false; return true; }