diff --git a/VizualAlgoGeom/VizualAlgoGeom/DcelFactory.cs b/VizualAlgoGeom/VizualAlgoGeom/DcelFactory.cs new file mode 100644 index 0000000..9811285 --- /dev/null +++ b/VizualAlgoGeom/VizualAlgoGeom/DcelFactory.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using GeometricElements; +using InterfaceOfSnapshotsWithAlgorithmsAndVisualizer; +using OpenTK; + +namespace VizualAlgoGeom +{ + class DcelFactory : PolylineFactory + { + Cursor _lastCursor; + + + public DcelFactory() + { + this._lastCursor = new Cursor(new MemoryStream(CursorsResource.Pen)); + } + + protected override void GetGeometricElementsList() + { + _polylineList = _group.ClosedPolylineList; + _polylineType = Polylines.ClosedPolyline; + NewPolyline(GetName()); + } + + + internal override void canvas_MouseMove(object sender, MouseEventArgs e) + { + base.canvas_MouseMove(sender, e); + Point pointToSnapTo = GetPointToSnapTo(); + if (pointToSnapTo != null) + { + _movingPoint.X = pointToSnapTo.X; + _movingPoint.Y = pointToSnapTo.Y; + } + } + + internal override void canvas_MouseClick(object sender, MouseEventArgs e) + { + Point pointToSnapTo = GetPointToSnapTo(); + if (pointToSnapTo == null) + { + base.canvas_MouseClick(sender, e); + return; + } + RemoveMovingPoint(); + HandleFirstClick(e, sender as GLControl); // TODO verificare + //A new line strip is ready to be filled with points + //TODO add movingPoint to the new polyline + connect the previous polyline. + } + Point GetPointToSnapTo() + { + foreach (var vertex in _newPolyline.Points) + { + //Point mouse_coord = e.Location.ToWorldCoordinates(); + if (vertex == _movingPoint) + { + continue; + } + if (Point.DistanceBetween(_movingPoint, vertex) < 1.0) // TODO zoom + { + return vertex; + } + } + return null; + } + + } +} diff --git a/VizualAlgoGeom/VizualAlgoGeom/ExceptionResources.Designer.cs b/VizualAlgoGeom/VizualAlgoGeom/ExceptionResources.Designer.cs new file mode 100644 index 0000000..45ad51d --- /dev/null +++ b/VizualAlgoGeom/VizualAlgoGeom/ExceptionResources.Designer.cs @@ -0,0 +1,1119 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace VizualAlgoGeom { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class ExceptionResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal ExceptionResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VizualAlgoGeom.ExceptionResources", typeof(ExceptionResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=149, Height=26}. + /// + internal static System.Drawing.Size _dockingWindowListMenuItem_Size { + get { + object obj = ResourceManager.GetObject("_dockingWindowListMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=141, Height=26}. + /// + internal static System.Drawing.Size aboutToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("aboutToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point BottomToolStripPanel_Location { + get { + object obj = ResourceManager.GetObject("BottomToolStripPanel.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=0}. + /// + internal static System.Drawing.Size BottomToolStripPanel_Size { + get { + object obj = ResourceManager.GetObject("BottomToolStripPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=199, Height=26}. + /// + internal static System.Drawing.Size closeAlgorithmToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("closeAlgorithmToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Boolean similar to True. + /// + internal static bool ContentPanel_AutoScroll { + get { + object obj = ResourceManager.GetObject("ContentPanel.AutoScroll", resourceCulture); + return ((bool)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=991, Height=728}. + /// + internal static System.Drawing.Size ContentPanel_Size { + get { + object obj = ResourceManager.GetObject("ContentPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point control1_Location { + get { + object obj = ResourceManager.GetObject("control1.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=0}. + /// + internal static System.Drawing.Size control1_Size { + get { + object obj = ResourceManager.GetObject("control1.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 0. + /// + internal static int control1_TabIndex { + get { + object obj = ResourceManager.GetObject("control1.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size copyToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("copyToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size deleteToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("deleteToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.DockStyle similar to Fill. + /// + internal static System.Windows.Forms.DockStyle dockableControl_Dock { + get { + object obj = ResourceManager.GetObject("dockableControl.Dock", resourceCulture); + return ((System.Windows.Forms.DockStyle)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point dockableControl_Location { + get { + object obj = ResourceManager.GetObject("dockableControl.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.Padding similar to {Left=5,Top=5,Right=5,Bottom=5}. + /// + internal static System.Windows.Forms.Padding dockableControl_Margin { + get { + object obj = ResourceManager.GetObject("dockableControl.Margin", resourceCulture); + return ((System.Windows.Forms.Padding)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=758, Height=520}. + /// + internal static System.Drawing.Size dockableControl_Size { + get { + object obj = ResourceManager.GetObject("dockableControl.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 0. + /// + internal static int dockableControl_TabIndex { + get { + object obj = ResourceManager.GetObject("dockableControl.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=48, Height=26}. + /// + internal static System.Drawing.Size editToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("editToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=46, Height=26}. + /// + internal static System.Drawing.Size fileToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("fileToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=54, Height=26}. + /// + internal static System.Drawing.Size helpToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("helpToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point LeftToolStripPanel_Location { + get { + object obj = ResourceManager.GetObject("LeftToolStripPanel.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=0}. + /// + internal static System.Drawing.Size LeftToolStripPanel_Size { + get { + object obj = ResourceManager.GetObject("LeftToolStripPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point menuStrip_Location { + get { + object obj = ResourceManager.GetObject("menuStrip.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.Padding similar to {Left=4,Top=2,Right=0,Bottom=2}. + /// + internal static System.Windows.Forms.Padding menuStrip_Padding { + get { + object obj = ResourceManager.GetObject("menuStrip.Padding", resourceCulture); + return ((System.Windows.Forms.Padding)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=758, Height=30}. + /// + internal static System.Drawing.Size menuStrip_Size { + get { + object obj = ResourceManager.GetObject("menuStrip.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 1. + /// + internal static int menuStrip_TabIndex { + get { + object obj = ResourceManager.GetObject("menuStrip.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=218, Height=26}. + /// + internal static System.Drawing.Size newquestionToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("newquestionToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=199, Height=26}. + /// + internal static System.Drawing.Size newToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("newToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=199, Height=26}. + /// + internal static System.Drawing.Size openToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("openToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size pasteToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("pasteToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=54, Height=26}. + /// + internal static System.Drawing.Size quizToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("quizToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size redoToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("redoToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=218, Height=26}. + /// + internal static System.Drawing.Size removeQuestionToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("removeQuestionToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point RightToolStripPanel_Location { + get { + object obj = ResourceManager.GetObject("RightToolStripPanel.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=0}. + /// + internal static System.Drawing.Size RightToolStripPanel_Size { + get { + object obj = ResourceManager.GetObject("RightToolStripPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=199, Height=26}. + /// + internal static System.Drawing.Size savaToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("savaToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=199, Height=26}. + /// + internal static System.Drawing.Size saveAsToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("saveAsToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=218, Height=26}. + /// + internal static System.Drawing.Size showToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("showToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=592}. + /// + internal static System.Drawing.Point statusStrip_Location { + get { + object obj = ResourceManager.GetObject("statusStrip.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.Padding similar to {Left=1,Top=0,Right=10,Bottom=0}. + /// + internal static System.Windows.Forms.Padding statusStrip_Padding { + get { + object obj = ResourceManager.GetObject("statusStrip.Padding", resourceCulture); + return ((System.Windows.Forms.Padding)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=758, Height=22}. + /// + internal static System.Drawing.Size statusStrip_Size { + get { + object obj = ResourceManager.GetObject("statusStrip.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 2. + /// + internal static int statusStrip_TabIndex { + get { + object obj = ResourceManager.GetObject("statusStrip.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=17}. + /// + internal static System.Drawing.Size stLbAction_Size { + get { + object obj = ResourceManager.GetObject("stLbAction.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=75, Height=16}. + /// + internal static System.Drawing.Size stPbAction_Size { + get { + object obj = ResourceManager.GetObject("stPbAction.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized string similar to Incorrect file format (not the one the CLR expected). + /// + internal static string System_BadImageFormatException { + get { + return ResourceManager.GetString("System.BadImageFormatException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File could be read, but algorithm could not be loaded.. + /// + internal static string System_IO_FileLoadException { + get { + return ResourceManager.GetString("System.IO.FileLoadException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File could not be found.. + /// + internal static string System_IO_FileNotFoundException { + get { + return ResourceManager.GetString("System.IO.FileNotFoundException", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.DockStyle similar to None. + /// + internal static System.Windows.Forms.DockStyle toolStrip1_Dock { + get { + object obj = ResourceManager.GetObject("toolStrip1.Dock", resourceCulture); + return ((System.Windows.Forms.DockStyle)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=3,Y=0}. + /// + internal static System.Drawing.Point toolStrip1_Location { + get { + object obj = ResourceManager.GetObject("toolStrip1.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=405, Height=42}. + /// + internal static System.Drawing.Size toolStrip1_Size { + get { + object obj = ResourceManager.GetObject("toolStrip1.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 0. + /// + internal static int toolStrip1_TabIndex { + get { + object obj = ResourceManager.GetObject("toolStrip1.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.Padding similar to {Left=2,Top=2,Right=2,Bottom=2}. + /// + internal static System.Windows.Forms.Padding toolStripContainer_ContentPanel_Margin { + get { + object obj = ResourceManager.GetObject("toolStripContainer.ContentPanel.Margin", resourceCulture); + return ((System.Windows.Forms.Padding)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=758, Height=520}. + /// + internal static System.Drawing.Size toolStripContainer_ContentPanel_Size { + get { + object obj = ResourceManager.GetObject("toolStripContainer.ContentPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.DockStyle similar to Fill. + /// + internal static System.Windows.Forms.DockStyle toolStripContainer_Dock { + get { + object obj = ResourceManager.GetObject("toolStripContainer.Dock", resourceCulture); + return ((System.Windows.Forms.DockStyle)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=30}. + /// + internal static System.Drawing.Point toolStripContainer_Location { + get { + object obj = ResourceManager.GetObject("toolStripContainer.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.Padding similar to {Left=2,Top=2,Right=2,Bottom=2}. + /// + internal static System.Windows.Forms.Padding toolStripContainer_Margin { + get { + object obj = ResourceManager.GetObject("toolStripContainer.Margin", resourceCulture); + return ((System.Windows.Forms.Padding)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=758, Height=562}. + /// + internal static System.Drawing.Size toolStripContainer_Size { + get { + object obj = ResourceManager.GetObject("toolStripContainer.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Int32 similar to 3. + /// + internal static int toolStripContainer_TabIndex { + get { + object obj = ResourceManager.GetObject("toolStripContainer.TabIndex", resourceCulture); + return ((int)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size toolStripMenuItem1_Size { + get { + object obj = ResourceManager.GetObject("toolStripMenuItem1.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=6, Height=42}. + /// + internal static System.Drawing.Size toolStripSeparator1_Size { + get { + object obj = ResourceManager.GetObject("toolStripSeparator1.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=6, Height=42}. + /// + internal static System.Drawing.Size toolStripSeparator2_Size { + get { + object obj = ResourceManager.GetObject("toolStripSeparator2.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Point similar to {X=0,Y=0}. + /// + internal static System.Drawing.Point TopToolStripPanel_Location { + get { + object obj = ResourceManager.GetObject("TopToolStripPanel.Location", resourceCulture); + return ((System.Drawing.Point)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=0, Height=0}. + /// + internal static System.Drawing.Size TopToolStripPanel_Size { + get { + object obj = ResourceManager.GetObject("TopToolStripPanel.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtBegining_Image { + get { + object obj = ResourceManager.GetObject("tsBtBegining.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtBegining_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtBegining.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtBegining_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtBegining.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtBegining_Size { + get { + object obj = ResourceManager.GetObject("tsBtBegining.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtEnding_Image { + get { + object obj = ResourceManager.GetObject("tsBtEnding.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtEnding_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtEnding.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtEnding_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtEnding.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtEnding_Size { + get { + object obj = ResourceManager.GetObject("tsBtEnding.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtGoTo_Image { + get { + object obj = ResourceManager.GetObject("tsBtGoTo.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtGoTo_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtGoTo.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtGoTo_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtGoTo.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtGoTo_Size { + get { + object obj = ResourceManager.GetObject("tsBtGoTo.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtNextStep_Image { + get { + object obj = ResourceManager.GetObject("tsBtNextStep.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtNextStep_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtNextStep.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtNextStep_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtNextStep.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtNextStep_Size { + get { + object obj = ResourceManager.GetObject("tsBtNextStep.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtPause_Image { + get { + object obj = ResourceManager.GetObject("tsBtPause.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtPause_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtPause.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtPause_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtPause.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtPause_Size { + get { + object obj = ResourceManager.GetObject("tsBtPause.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtPreviousStep_Image { + get { + object obj = ResourceManager.GetObject("tsBtPreviousStep.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtPreviousStep_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtPreviousStep.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtPreviousStep_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtPreviousStep.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtPreviousStep_Size { + get { + object obj = ResourceManager.GetObject("tsBtPreviousStep.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtSpeedDown_Image { + get { + object obj = ResourceManager.GetObject("tsBtSpeedDown.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtSpeedDown_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtSpeedDown.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtSpeedDown_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtSpeedDown.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtSpeedDown_Size { + get { + object obj = ResourceManager.GetObject("tsBtSpeedDown.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtSpeedUp_Image { + get { + object obj = ResourceManager.GetObject("tsBtSpeedUp.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtSpeedUp_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtSpeedUp.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtSpeedUp_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtSpeedUp.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtSpeedUp_Size { + get { + object obj = ResourceManager.GetObject("tsBtSpeedUp.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtStart_Image { + get { + object obj = ResourceManager.GetObject("tsBtStart.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtStart_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtStart.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtStart_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtStart.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtStart_Size { + get { + object obj = ResourceManager.GetObject("tsBtStart.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tsBtStop_Image { + get { + object obj = ResourceManager.GetObject("tsBtStop.Image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Windows.Forms.ToolStripItemImageScaling similar to None. + /// + internal static System.Windows.Forms.ToolStripItemImageScaling tsBtStop_ImageScaling { + get { + object obj = ResourceManager.GetObject("tsBtStop.ImageScaling", resourceCulture); + return ((System.Windows.Forms.ToolStripItemImageScaling)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Color similar to Color [Magenta]. + /// + internal static System.Drawing.Color tsBtStop_ImageTransparentColor { + get { + object obj = ResourceManager.GetObject("tsBtStop.ImageTransparentColor", resourceCulture); + return ((System.Drawing.Color)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=39, Height=39}. + /// + internal static System.Drawing.Size tsBtStop_Size { + get { + object obj = ResourceManager.GetObject("tsBtStop.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=134, Height=26}. + /// + internal static System.Drawing.Size undoToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("undoToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Size similar to {Width=56, Height=26}. + /// + internal static System.Drawing.Size viewToolStripMenuItem_Size { + get { + object obj = ResourceManager.GetObject("viewToolStripMenuItem.Size", resourceCulture); + return ((System.Drawing.Size)(obj)); + } + } + + /// + /// Looks up a localized string similar to The selected file does not implement the contract for providing an algorithm required by the visualizer.. + /// + internal static string VizualAlgoGeom_AlgorithmFactoryNotFoundException { + get { + return ResourceManager.GetString("VizualAlgoGeom.AlgorithmFactoryNotFoundException", resourceCulture); + } + } + } +} diff --git a/VizualAlgoGeom/VizualAlgoGeom/Factory.cs b/VizualAlgoGeom/VizualAlgoGeom/Factory.cs index 3a04844..f2c8bc2 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/Factory.cs +++ b/VizualAlgoGeom/VizualAlgoGeom/Factory.cs @@ -31,6 +31,7 @@ internal Group Group internal abstract void canvas_MouseMove(object sender, MouseEventArgs e); internal abstract void canvas_MouseDoubleClick(object sender, MouseEventArgs e); + protected void GetWorldCoordinates(double xWin, double yWin, double zWin, out double x, out double y, out double z) { var viewPort = new int[4]; diff --git a/VizualAlgoGeom/VizualAlgoGeom/PolylineFactory.cs b/VizualAlgoGeom/VizualAlgoGeom/PolylineFactory.cs index 8d7dc6d..2249459 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/PolylineFactory.cs +++ b/VizualAlgoGeom/VizualAlgoGeom/PolylineFactory.cs @@ -33,7 +33,7 @@ protected override void GetGeometricElementsList() { _polylineList = _group.PolylineList; _polylineType = Polylines.Polyline; - NewPolyline(GetName()); + } protected string GetName() @@ -60,32 +60,38 @@ protected void NewPolyline(string name) internal override void canvas_MouseClick(object sender, MouseEventArgs e) { var canvas = (GLControl) sender; - double x; - double y; - double z; - - GetWorldCoordinates(e.X, canvas.Height - e.Y, 0, out x, out y, out z); - + if (false == _inProgress) { - _inProgress = true; - FireEnableControls(false); - _polylineList.Polylines.Add(_newPolyline); - //The moving point will be used to show the line that follows the mouse. - //It is the last point in line strip's point list - _newPolyline.Points.Add(new Point(x, y, _newPolyline.Name + "_p" + (_newPolyline.Points.Count() + 1), _group, - _group.Color)); - _movingPoint = _newPolyline.Points.Last(); - _movingPoint.Name = _newPolyline.Name + "_p"; - FireNewElementAdded(_newPolyline); + HandleFirstClick(e, canvas); } //We add the new point behind the moving point - var newPoint = new Point(x, y, _newPolyline.Name + "_p" + _newPolyline.Points.Count(), _group, _group.Color); + var newPoint = new Point(_movingPoint.X,_movingPoint.Y, _newPolyline.Name + "_p" + _newPolyline.Points.Count(), _group, _group.Color); _newPolyline.Points.Insert(_newPolyline.Points.Count - 1, newPoint); FireNewElementAdded(newPoint); canvas.Invalidate(); } + protected void HandleFirstClick(MouseEventArgs e, GLControl canvas) + { + double x; + double y; + double z; + + GetWorldCoordinates(e.X, canvas.Height - e.Y, 0, out x, out y, out z); + + _inProgress = true; + FireEnableControls(false); + NewPolyline(GetName()); + _polylineList.Polylines.Add(_newPolyline); + //The moving point will be used to show the line that follows the mouse. + //It is the last point in line strip's point list + _newPolyline.Points.Add(new Point(x, y, _newPolyline.Name + "_p" + (_newPolyline.Points.Count() + 1), _group,_group.Color)); + _movingPoint = _newPolyline.Points.Last(); + _movingPoint.Name = _newPolyline.Name + "_p"; + FireNewElementAdded(_newPolyline); + } + internal override void canvas_MouseMove(object sender, MouseEventArgs e) { if (_inProgress) @@ -110,8 +116,7 @@ protected void SetMovingPoint(Point newPoint) internal override void canvas_MouseDoubleClick(object sender, MouseEventArgs e) { - _newPolyline.Points.Remove(_movingPoint); - FireElementDeleted(); + RemoveMovingPoint(); //The line strip is complete _inProgress = false; @@ -122,6 +127,12 @@ internal override void canvas_MouseDoubleClick(object sender, MouseEventArgs e) NewPolyline(GetName()); } + protected void RemoveMovingPoint() + { + _newPolyline.Points.Remove(_movingPoint); + FireElementDeleted(); + } + protected void FireElementDeleted() { if (ElementDeleted != null) diff --git a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.Designer.cs b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.Designer.cs index 2260e3c..9a529fa 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.Designer.cs +++ b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.Designer.cs @@ -28,157 +28,182 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ToolboxControl)); - this.ttPoint = new System.Windows.Forms.ToolTip(this.components); - this.btPoint = new System.Windows.Forms.Button(); - this.ttLineSegment = new System.Windows.Forms.ToolTip(this.components); - this.btLineSegment = new System.Windows.Forms.Button(); - this.ttRay = new System.Windows.Forms.ToolTip(this.components); - this.btRay = new System.Windows.Forms.Button(); - this.ttLine = new System.Windows.Forms.ToolTip(this.components); - this.btLine = new System.Windows.Forms.Button(); - this.ttLineLoop = new System.Windows.Forms.ToolTip(this.components); - this.btLineLoop = new System.Windows.Forms.Button(); - this.ttComplex = new System.Windows.Forms.ToolTip(this.components); - this.ttLineStrip = new System.Windows.Forms.ToolTip(this.components); - this.btLineStrip = new System.Windows.Forms.Button(); - this.ttCenter = new System.Windows.Forms.ToolTip(this.components); - this._btCenter = new System.Windows.Forms.Button(); - this.ttSelect = new System.Windows.Forms.ToolTip(this.components); - this.ttNewGroup = new System.Windows.Forms.ToolTip(this.components); - this.ttWeightedPoint = new System.Windows.Forms.ToolTip(this.components); - this.btWeightedPoint = new System.Windows.Forms.Button(); - this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel(); - this.flowLayoutPanel.SuspendLayout(); - this.SuspendLayout(); - // - // ttPoint - // - this.ttPoint.AutomaticDelay = 0; - this.ttPoint.Tag = ""; - // - // btPoint - // - this.btPoint.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.btPoint.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btPoint.BackgroundImage"))); - this.btPoint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btPoint.Location = new System.Drawing.Point(3, 3); - this.btPoint.Name = "btPoint"; - this.btPoint.Size = new System.Drawing.Size(35, 35); - this.btPoint.TabIndex = 19; - this.ttPoint.SetToolTip(this.btPoint, "Point"); - this.btPoint.UseVisualStyleBackColor = true; - this.btPoint.Click += new System.EventHandler(this.btPoint_Click); - // - // btLineSegment - // - this.btLineSegment.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineSegment.BackgroundImage"))); - this.btLineSegment.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btLineSegment.Location = new System.Drawing.Point(85, 3); - this.btLineSegment.Name = "btLineSegment"; - this.btLineSegment.Size = new System.Drawing.Size(35, 35); - this.btLineSegment.TabIndex = 16; - this.ttLineSegment.SetToolTip(this.btLineSegment, "Line segment"); - this.btLineSegment.UseVisualStyleBackColor = true; - this.btLineSegment.Click += new System.EventHandler(this.btLineSegment_Click); - // - // btRay - // - this.btRay.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btRay.BackgroundImage"))); - this.btRay.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btRay.Location = new System.Drawing.Point(126, 3); - this.btRay.Name = "btRay"; - this.btRay.Size = new System.Drawing.Size(35, 35); - this.btRay.TabIndex = 13; - this.ttRay.SetToolTip(this.btRay, "Ray"); - this.btRay.UseVisualStyleBackColor = false; - this.btRay.Click += new System.EventHandler(this.btRay_Click); - // - // btLine - // - this.btLine.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLine.BackgroundImage"))); - this.btLine.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btLine.Location = new System.Drawing.Point(167, 3); - this.btLine.Name = "btLine"; - this.btLine.Size = new System.Drawing.Size(35, 35); - this.btLine.TabIndex = 17; - this.ttLine.SetToolTip(this.btLine, "Line"); - this.btLine.UseVisualStyleBackColor = true; - this.btLine.Click += new System.EventHandler(this.btLine_Click); - // - // btLineLoop - // - this.btLineLoop.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineLoop.BackgroundImage"))); - this.btLineLoop.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btLineLoop.Location = new System.Drawing.Point(249, 3); - this.btLineLoop.Name = "btLineLoop"; - this.btLineLoop.Size = new System.Drawing.Size(35, 35); - this.btLineLoop.TabIndex = 18; - this.ttLineLoop.SetToolTip(this.btLineLoop, "Line loop"); - this.btLineLoop.UseVisualStyleBackColor = true; - this.btLineLoop.Click += new System.EventHandler(this.btLineLoop_Click); - // - // btLineStrip - // - this.btLineStrip.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineStrip.BackgroundImage"))); - this.btLineStrip.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btLineStrip.Location = new System.Drawing.Point(208, 3); - this.btLineStrip.Name = "btLineStrip"; - this.btLineStrip.Size = new System.Drawing.Size(35, 35); - this.btLineStrip.TabIndex = 14; - this.ttLineStrip.SetToolTip(this.btLineStrip, "Line strip"); - this.btLineStrip.UseVisualStyleBackColor = true; - this.btLineStrip.Click += new System.EventHandler(this.btLineStrip_Click); - // - // _btCenter - // - this._btCenter.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("_btCenter.BackgroundImage"))); - this._btCenter.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this._btCenter.Location = new System.Drawing.Point(290, 3); - this._btCenter.Name = "_btCenter"; - this._btCenter.Size = new System.Drawing.Size(35, 35); - this._btCenter.TabIndex = 20; - this.ttCenter.SetToolTip(this._btCenter, "Center origin"); - this._btCenter.UseVisualStyleBackColor = true; - // - // btWeightedPoint - // - this.btWeightedPoint.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btWeightedPoint.BackgroundImage"))); - this.btWeightedPoint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btWeightedPoint.Location = new System.Drawing.Point(44, 3); - this.btWeightedPoint.Name = "btWeightedPoint"; - this.btWeightedPoint.Size = new System.Drawing.Size(35, 35); - this.btWeightedPoint.TabIndex = 23; - this.ttWeightedPoint.SetToolTip(this.btWeightedPoint, "Weighted point"); - this.btWeightedPoint.UseVisualStyleBackColor = true; - this.btWeightedPoint.Click += new System.EventHandler(this.btWeightedPoint_Click); - // - // flowLayoutPanel - // - this.flowLayoutPanel.Controls.Add(this.btPoint); - this.flowLayoutPanel.Controls.Add(this.btWeightedPoint); - this.flowLayoutPanel.Controls.Add(this.btLineSegment); - this.flowLayoutPanel.Controls.Add(this.btRay); - this.flowLayoutPanel.Controls.Add(this.btLine); - this.flowLayoutPanel.Controls.Add(this.btLineStrip); - this.flowLayoutPanel.Controls.Add(this.btLineLoop); - this.flowLayoutPanel.Controls.Add(this._btCenter); - this.flowLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.flowLayoutPanel.Location = new System.Drawing.Point(0, 0); - this.flowLayoutPanel.Name = "flowLayoutPanel"; - this.flowLayoutPanel.Size = new System.Drawing.Size(334, 46); - this.flowLayoutPanel.TabIndex = 0; - // - // ToolboxControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.flowLayoutPanel); - this.Name = "ToolboxControl"; - this.Size = new System.Drawing.Size(334, 46); - this.flowLayoutPanel.ResumeLayout(false); - this.ResumeLayout(false); + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ToolboxControl)); + this.ttPoint = new System.Windows.Forms.ToolTip(this.components); + this.btPoint = new System.Windows.Forms.Button(); + this.ttLineSegment = new System.Windows.Forms.ToolTip(this.components); + this.btLineSegment = new System.Windows.Forms.Button(); + this.ttRay = new System.Windows.Forms.ToolTip(this.components); + this.btRay = new System.Windows.Forms.Button(); + this.ttLine = new System.Windows.Forms.ToolTip(this.components); + this.btLine = new System.Windows.Forms.Button(); + this.ttLineLoop = new System.Windows.Forms.ToolTip(this.components); + this.btLineLoop = new System.Windows.Forms.Button(); + this.ttComplex = new System.Windows.Forms.ToolTip(this.components); + this.ttLineStrip = new System.Windows.Forms.ToolTip(this.components); + this.btLineStrip = new System.Windows.Forms.Button(); + this.ttCenter = new System.Windows.Forms.ToolTip(this.components); + this._btCenter = new System.Windows.Forms.Button(); + this.btDcel = new System.Windows.Forms.Button(); + this.ttSelect = new System.Windows.Forms.ToolTip(this.components); + this.ttNewGroup = new System.Windows.Forms.ToolTip(this.components); + this.ttWeightedPoint = new System.Windows.Forms.ToolTip(this.components); + this.btWeightedPoint = new System.Windows.Forms.Button(); + this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel(); + this.flowLayoutPanel.SuspendLayout(); + this.SuspendLayout(); + // + // ttPoint + // + this.ttPoint.AutomaticDelay = 0; + this.ttPoint.Tag = ""; + // + // btPoint + // + this.btPoint.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.btPoint.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btPoint.BackgroundImage"))); + this.btPoint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btPoint.Location = new System.Drawing.Point(2, 2); + this.btPoint.Margin = new System.Windows.Forms.Padding(2); + this.btPoint.Name = "btPoint"; + this.btPoint.Size = new System.Drawing.Size(26, 28); + this.btPoint.TabIndex = 19; + this.ttPoint.SetToolTip(this.btPoint, "Point"); + this.btPoint.UseVisualStyleBackColor = true; + this.btPoint.Click += new System.EventHandler(this.btPoint_Click); + // + // btLineSegment + // + this.btLineSegment.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineSegment.BackgroundImage"))); + this.btLineSegment.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btLineSegment.Location = new System.Drawing.Point(62, 2); + this.btLineSegment.Margin = new System.Windows.Forms.Padding(2); + this.btLineSegment.Name = "btLineSegment"; + this.btLineSegment.Size = new System.Drawing.Size(26, 28); + this.btLineSegment.TabIndex = 16; + this.ttLineSegment.SetToolTip(this.btLineSegment, "Line segment"); + this.btLineSegment.UseVisualStyleBackColor = true; + this.btLineSegment.Click += new System.EventHandler(this.btLineSegment_Click); + // + // btRay + // + this.btRay.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btRay.BackgroundImage"))); + this.btRay.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btRay.Location = new System.Drawing.Point(92, 2); + this.btRay.Margin = new System.Windows.Forms.Padding(2); + this.btRay.Name = "btRay"; + this.btRay.Size = new System.Drawing.Size(26, 28); + this.btRay.TabIndex = 13; + this.ttRay.SetToolTip(this.btRay, "Ray"); + this.btRay.UseVisualStyleBackColor = false; + this.btRay.Click += new System.EventHandler(this.btRay_Click); + // + // btLine + // + this.btLine.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLine.BackgroundImage"))); + this.btLine.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btLine.Location = new System.Drawing.Point(122, 2); + this.btLine.Margin = new System.Windows.Forms.Padding(2); + this.btLine.Name = "btLine"; + this.btLine.Size = new System.Drawing.Size(26, 28); + this.btLine.TabIndex = 17; + this.ttLine.SetToolTip(this.btLine, "Line"); + this.btLine.UseVisualStyleBackColor = true; + this.btLine.Click += new System.EventHandler(this.btLine_Click); + // + // btLineLoop + // + this.btLineLoop.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineLoop.BackgroundImage"))); + this.btLineLoop.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btLineLoop.Location = new System.Drawing.Point(182, 2); + this.btLineLoop.Margin = new System.Windows.Forms.Padding(2); + this.btLineLoop.Name = "btLineLoop"; + this.btLineLoop.Size = new System.Drawing.Size(26, 28); + this.btLineLoop.TabIndex = 18; + this.ttLineLoop.SetToolTip(this.btLineLoop, "Line loop"); + this.btLineLoop.UseVisualStyleBackColor = true; + this.btLineLoop.Click += new System.EventHandler(this.btLineLoop_Click); + // + // btLineStrip + // + this.btLineStrip.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btLineStrip.BackgroundImage"))); + this.btLineStrip.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btLineStrip.Location = new System.Drawing.Point(152, 2); + this.btLineStrip.Margin = new System.Windows.Forms.Padding(2); + this.btLineStrip.Name = "btLineStrip"; + this.btLineStrip.Size = new System.Drawing.Size(26, 28); + this.btLineStrip.TabIndex = 14; + this.ttLineStrip.SetToolTip(this.btLineStrip, "Line strip"); + this.btLineStrip.UseVisualStyleBackColor = true; + this.btLineStrip.Click += new System.EventHandler(this.btLineStrip_Click); + // + // _btCenter + // + this._btCenter.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("_btCenter.BackgroundImage"))); + this._btCenter.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this._btCenter.Location = new System.Drawing.Point(212, 2); + this._btCenter.Margin = new System.Windows.Forms.Padding(2); + this._btCenter.Name = "_btCenter"; + this._btCenter.Size = new System.Drawing.Size(26, 28); + this._btCenter.TabIndex = 20; + this.ttCenter.SetToolTip(this._btCenter, "Center origin"); + this._btCenter.UseVisualStyleBackColor = true; + // + // btDcel + // + this.btDcel.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btDcel.BackgroundImage"))); + this.btDcel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btDcel.Location = new System.Drawing.Point(242, 2); + this.btDcel.Margin = new System.Windows.Forms.Padding(2); + this.btDcel.Name = "btDcel"; + this.btDcel.Size = new System.Drawing.Size(26, 28); + this.btDcel.TabIndex = 24; + this.ttCenter.SetToolTip(this.btDcel, "Center origin"); + this.btDcel.UseVisualStyleBackColor = true; + this.btDcel.Click += new System.EventHandler(this.btDcel_Click); + // + // btWeightedPoint + // + this.btWeightedPoint.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btWeightedPoint.BackgroundImage"))); + this.btWeightedPoint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btWeightedPoint.Location = new System.Drawing.Point(32, 2); + this.btWeightedPoint.Margin = new System.Windows.Forms.Padding(2); + this.btWeightedPoint.Name = "btWeightedPoint"; + this.btWeightedPoint.Size = new System.Drawing.Size(26, 28); + this.btWeightedPoint.TabIndex = 23; + this.ttWeightedPoint.SetToolTip(this.btWeightedPoint, "Weighted point"); + this.btWeightedPoint.UseVisualStyleBackColor = true; + this.btWeightedPoint.Click += new System.EventHandler(this.btWeightedPoint_Click); + // + // flowLayoutPanel + // + this.flowLayoutPanel.Controls.Add(this.btPoint); + this.flowLayoutPanel.Controls.Add(this.btWeightedPoint); + this.flowLayoutPanel.Controls.Add(this.btLineSegment); + this.flowLayoutPanel.Controls.Add(this.btRay); + this.flowLayoutPanel.Controls.Add(this.btLine); + this.flowLayoutPanel.Controls.Add(this.btLineStrip); + this.flowLayoutPanel.Controls.Add(this.btLineLoop); + this.flowLayoutPanel.Controls.Add(this._btCenter); + this.flowLayoutPanel.Controls.Add(this.btDcel); + this.flowLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel.Margin = new System.Windows.Forms.Padding(2); + this.flowLayoutPanel.Name = "flowLayoutPanel"; + this.flowLayoutPanel.Size = new System.Drawing.Size(273, 37); + this.flowLayoutPanel.TabIndex = 0; + // + // ToolboxControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.flowLayoutPanel); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "ToolboxControl"; + this.Size = new System.Drawing.Size(273, 37); + this.flowLayoutPanel.ResumeLayout(false); + this.ResumeLayout(false); } @@ -204,5 +229,6 @@ private void InitializeComponent() private System.Windows.Forms.Button btLineSegment; private System.Windows.Forms.Button btLineStrip; private System.Windows.Forms.Button btRay; + private System.Windows.Forms.Button btDcel; } } diff --git a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.cs b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.cs index 757eeca..7ef9ffb 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.cs +++ b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.cs @@ -1,4 +1,5 @@ using System; +using System.Runtime.Remoting.Services; using System.Windows.Forms; using ToolboxGeometricElements; @@ -28,6 +29,7 @@ internal ToolboxControl() internal LineFactory LineFactory { get; set; } internal PolylineFactory PolylineFactory { get; set; } internal ClosedPolylineFactory ClosedPolylineFactory { get; set; } + internal DcelFactory DcelFactory { get; set; } internal Button BtCenter { @@ -45,9 +47,10 @@ void InitializeFactories() RayFactory = new RayFactory(); LineFactory = new LineFactory(); WeightedPointFactory = new WeightedPointFactory(); - + DcelFactory = new DcelFactory(); AddFactoriesEnableControlsEventHandlers(); } + void AddFactoriesEnableControlsEventHandlers() { @@ -58,6 +61,7 @@ void AddFactoriesEnableControlsEventHandlers() LineFactory.EnableControls += EnableAllButtons; RayFactory.EnableControls += EnableAllButtons; WeightedPointFactory.EnableControls += EnableAllButtons; + DcelFactory.EnableControls += EnableAllButtons; } void btPoint_Click(object sender, EventArgs e) @@ -94,6 +98,10 @@ void btLine_Click(object sender, EventArgs e) { ToolChanged(sender, new ToolChangedEventArgs(LineFactory)); } + private void btDcel_Click(object sender, EventArgs e) + { + ToolChanged(sender, new ToolChangedEventArgs(DcelFactory)); + } void EnableAllButtons(object sender, EnableControlsEventArgs e) { @@ -104,6 +112,8 @@ void EnableAllButtons(object sender, EnableControlsEventArgs e) btRay.Enabled = enable; btLineStrip.Enabled = enable; btLineLoop.Enabled = enable; + btWeightedPoint.Enabled = enable; + btDcel.Enabled = enable; } public void SetCurrentGroupForFactories(Group group) @@ -115,6 +125,9 @@ public void SetCurrentGroupForFactories(Group group) PolylineFactory.Group = group; RayFactory.Group = group; WeightedPointFactory.Group = group; + DcelFactory.Group = group; } + + } } \ No newline at end of file diff --git a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.resx b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.resx index eb20630..a3dc016 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.resx +++ b/VizualAlgoGeom/VizualAlgoGeom/ToolboxControl.resx @@ -112,183 +112,222 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 17, 17 + + - iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAgNJREFUSEvtl0tLw0AQgPfS/oVe6h+RIiKKgngQsR580apHQWv1Jir1WYWmPkB7EkRR - RIUeFBQ91WSb7q40NbHY6m9x0rX1XU3dBg8Oc9gMyXw7M8lkFhFCtDS5uKILUTwfxYtreHFVhK7hhVU8 - JynxM5LRAEKQlqYHJ6SuU27pvfaPKQNB7BehBT9Km0+ubZc3t5MAQ+eXFDDLG0k9Q7MGNW6JKL0zwBWL - 7agNXYmjeApB0iAaPcNumBmjWKGUPOZo34g8OqMiyObAmJI1xCJevOkZMhlmTT0MwSswNIEhY1USIM1G - b5p7C6TB8eqSQtI/qcI6Qp3+fPZoUX4YY4UxaZpWIsH6J7BKSLlcTpKkmqLAGizfwiyT8vm81+t1OByo - KLAGC9jLw6yRIFEQgdPpLGH4AixgL59GCyReGJfL9Q7DL8HOb/gqMsskt9v9KQnsgkl2xGT+/u2pEy+A - Te8eh9n0PXGYTT2Cw2zqe9/2no83WPieKvD++pF/0m8S+CZ7Q1Wewp7nPXOGDSpZ/Tf7LvcsxDS1whq7 - GYKTTGu/DKM6q8Jcbraxe+oLKKPTKXR6Tj0dihRL3enM0AlsQaA+3NPdQ7WuM7F/rML5iWzvqZ4Ouc1v - ksdDNChCwU9ghnQPX9d7E5EtbJ6fzG6WJvFTMhtRltaTYXEK3kIRvH+c4kPUEwZOSdptczaNAAAAAElF - TkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACAklE + QVRIS+2XT0sbQRiH55J8hVzSLyIiUiwVSg4lGA8aS6IeC1UTb6VK/F8hG22hehJKS0qphRwsKHqKu5PN + zIib7hqStJ+lv3UnBZGkZDubVvDhJUzeGebJO5NdZghjzLpkJ2d8vUDXCnRjl27sqIhdur5DVzWj9I3V + LEgYsS75p69saEwfTZ6nF4zpDE2riOt5jFhKH3iqvzuoQEaOTzk0r99W7BqvO9z5zlTFlYNPsf/efDhe + /lKqEiwaqrFr4kK4NaqFc/azyade6HPLJsFqTi8YdUf2KceusZdb4tGkINi62UWKYgMCppXCxePktWkm + G6wpp92bfHIXTLyN/P4nfJosy5IeztGW2a74MTWbTU3THrRBGxnZ15meTa1WK5FIhEIh0gZtZJCXIzrQ + mwkLhQrC4bCUtEEG+e7L2IPJ25VIJCKnvwny3gA5+hY9m6LRqJz7Jsh7A+ToW/yXNYE+7ZNHn/57Hn16 + njywUN6ugO6L9hufJiA9Qb/3fHBv+hv+kWk2YJM877ln2IxRt2WHcmB6tS1GJgTBTebJMx1HdRHAuRy0 + Gjw1b8wtVcnRMR+MG9p+9coWju3+BIXxo8E/fDaHxsrFQxP3J3bw0RyM67G0a87meEZFYJ75ZTbx/Hw4 + Uc7vUff+hAIhKx2xlbyx+aaypS4wWy5Pi4dV9wXJ2C8GTknac05KxwAAAABJRU5ErkJggg== + + 105, 17 + - iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAyhJREFUSEutl8tLG1EYxWctLv0LXPkABcWFJWgpLSkUF0VswdQWtS4D9dWN1CbkZWwh - PlpoXQmlxVJiQdCgoQE1mZlk7p2YTCZqHl3p/+FJpkynMWhmei93k833y/m+c8+9wxFCshkSjdHAquhf - FZfWxaU1FntdDKyJvhVhJ0KULCCEy2bo959kYIR/OJaYmBUm58QJFrtaRxga5+885j9tJgHjDn5RYN59 - TKoKPcvTfI6w2qd5lJI3vqTuPY2HdyQOTYMaVZHTckUj20Up+V2kz1/x0+4Uh25OzgpnebaIv9VUhbxZ - lh88kzlYYOq1iI5ZXrIsn5+fq6oqSdL1IiB5V9P2sSrp5bx1EjDHx8dOpzMUCoFXl+RZYUFC9bHq6uvr - 8/l85XK5BgZNbEjQtLu7m8vl0LqWlhbASqWSEcaMBEAmk0H1YDDIcVxTU1MgEDDCmJHw94vFotfrBaaz - szMSiXR3d7tcLkVRNGXMSDqmvb09Ho/jpyAIXV1d0Wg0nU4zI6FLfr8fatra2uBATAvL7XYPDg4mk0mM - kA0JGIwEGE2NZgroCIfDR0dHJycnbLqnqwEmkUhoGK00DKL1jQEJw4Cboaajo4PneSOG5cnVLQBMjZq6 - eWbRe7oa42xuDkwrpOtOqxup/5tGCLTrTmsk/s1pQtO0c9PgbBrNPdw0RjuZcpoJ72WzWTh4YWEBMGOm - WVBz03nCiUNeIbX29/dxyHU1CBs9BRqZze3dQ1KJomiz2Twez+XlZU2mNeI0E91DliAre3p6HA5HTaaZ - VXNLGuGP42qBstbW1ubmZkopfmJmxigzhbzJ5Tqst7cXbby4uFhcXERCQ64pRkMJq8HgArxD7HZ7f38/ - WmpN1j+apuq9wjRYLBYbHR09PDyE+y0I0m7CP++9yht2TjhT69TRbrZCoWBNjd69t+/l+w6Zw5fMoxc8 - nurVu5j9KhXo+Iww7ZK4vQNqGxZWNqRTVc6rFbEMd7lAv/5IDYzEt7ZT+H4im99StmF+aKJCnvfQORYb - dWbcxOFM3H0SD30WK99P6BdgO3vEGxKCH5LL7DaqeULi1rakmekKZv9aG2IIfOMAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAADMElE + QVRIS62X20vbYBjGcy1e+hd45QEUFC8cRcfY6GB4McQN7NxQ52VhnnYjcy09WTeohw02r4Sx4Rh1IGjR + soLaJmn7fak9pGoPu9L/Y0+bLGSLdUv8Hj4KyRveX5/3ffMl4QghuSyJxmhgVfSvikvr4tIai7UuBtZE + 34qwEyH5HCCEy2Xp1+9kYIS/P5aYmBUm58QJFqueRxga52895D9sJgHjDn5QYN68T8p5elakxQJhtU6L + +JU2PqXuPI6Hd9IcigY3cl7KSDWPbEUp+VmmT1/w0+4Uh2pOzgpnRTXGXHKevFqW7j2ROLRu6qUIs5Yl + SdL5+bksy+l0Wj2lE0je1Yx9rE56Pm+dBMzx8bHT6QyFQuCpZ3UCybPCgoTsY3X19fX5fL5qtaoGfosZ + CZ52d3cLhQJK19LSAlilUlFjdTEjAZDNZpE9GAxyHNfU1BQIBPQwZiSoXC57vV5gOjs7I5FId3e3y+XK + 5/NKlBlJw7S3t8fjcRwKgtDV1RWNRjOZDC5gQ0KV/H4/MG1tbZhAdAtyu92Dg4PJZBItxDUMSMCgJZob + ZSjgIxwOHx0dnZycKJfdlKS5ASaRSCgYJYQBUeqm6EYkNAPTDExHRwfP83qMUdZJ2ggA85ebK2WRpLnR + 90aNNZAVknHS/omBTJOwoRknTY1dK3MkFE1x85+90es6Ep40+lymJs2ohqRcLoe8CwsLyIhDs5Nm1NUk + 3HHYr7Br7e/v4ybX3GAETPVGr6tJ2KlEUbTZbB6P5/Ly0sKkGdWwethLkLenp8fhcABjdtKMakhCRjxa + 4Ky1tbW5uZlSikOQ9FuZKTUkQRqst7cXZby4uFhcXMQODbvqFWZ0HQlSYKgb3kPsdnt/fz9Kas3WH6Qp + AwlSYLFYbHR09PDwENOvBkwKJPV9r/YOOyecyWpAL8Dgo1QqWW4SBNLrt9Jdh8ThS+bBMx6v6vVnMXtV + SnR8Rph2pbm9A2obFlY20qeyVJRrf4Hhqpbo52+pgZH41nYK309k80vKNswPTdTI8x46x2Ihz4ybOJyJ + 24/ioY9i7fsJBgHb2SPekBB8l1xmt5DNExK3ttO1YSLkF2b/Whu8HAz9AAAAAElFTkSuQmCC + + 236, 17 + - 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 + + 316, 17 + - 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 + 8smp2n1EZ+w/RPZQcJ5dhKAAAAAASUVORK5CYII= + + 398, 17 + - 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 + SUVORK5CYII= + + 508, 17 + + + 616, 17 + - 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 + YII= + + 723, 17 + - iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAAJNSURBVFhH7ZhJS8NAFMfzDXrsreqxl95Vigg9FA9iETei - gqCiooLFDcH1oHU7KHpRtCCKXrz2XGySWu13es5/0qmpNKV9TSyIh9eZZDIzv75tkqcVi0WCvLx+0Nym - RfqSIWV8ySz3f157NTa9atLdY0HuD9Hwc3iRp/buLPUM5QgPzK5DrFJb7br5sZk1k+LjBoU6s7Sya9kw - z0Ij7V1Z2j7O0+enTfibcnn7Lve/uHknDaaBRloBov70yLxJA9MGafqiKU3TqDYymQzFYjEp6Dc63/k8 - rNI7/GbDzG00BoPNI5EIxeNxikajst8M0P4ZE0aBJBIJqRW0kGaAKmGE39SrZgWg6zppmiYFfQVX7zrO - 5/bPhWZGcjwzlfNCCYYDUAHDNZNzEaUZb2EaMJMvMH/GTKlUioLBYNmB0cc9rrnYoZ1OpyUIWuUzzntu - QLWSIzu0kU+SyaR9sDmiCfcw5gZTKxexQhsJDwBuoY0xt0ysclG15FjTTJiISeqfe9FiPbfkWNNMfsKE - w2EKBAIV5mSZCeaB87qZyTn203cA4eY37GjyxYG5xwE3tEOhkKtzs0Mb6vc86f2Z48DfV4j/U/v7k4gd - 2r68z3BD238Yps/g2IBw32PUPPZx0OzG1eZX+Aw+wv3YpN41d05KH3GoNsTGci2F0UX5pX9KfGs/vBSo - TVQBjq/yLQG6fypQhyjHnF6LKgRUuXVkSaC+SUPWSlYPLFoTglaJ89qLseSeRYMzhiyHoPCAKoiEgaCC - NLFsq+u3ZHTBlHUZVY75AoFCO3QNV7V4AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAAjdJREFUWEftmEtL60AUx/MNuuyu6rKb7lWKCF0UF2IRX0QFQUXFChZfCPf6WFzr + a6HoRtGCKLpx23WwSdpqv9Mx/4lTUplEO53mgrj4kTOZMzn/zjmZkqPVajUCT8+vtLBlk541GZNZq25/ + Hquam12z6Oa+yuIDJubfWZk6ew3qGykxh/kNYH9cRePW5+bWLUpPmhTrNmh1x3bFPDo70tlj0J/DMr29 + uQrD5Py6wuKfXVVIQ2qwI/9DCGds0aKhWZM0fdliqRE5BVEsFimVSjFgi3y+C7LSP/riilnYbE4MgicS + CUqn05RMJpndiqC9E0kxXEgmk2G7gitoRVCjGKduRE4iuABd10nTNAZsLk605iv2Th0xYyW5NHG4GNFc + M0inyUt7xDSRJi/KxPyYNOXzeYpGo3UxsHFP5PsdpMUUCgUWHFcuxntPtAYEHY7SNYPzJJfLMZuLgY17 + mPP6egk6i6RqBg/iwYFXDB/7/Xp+FokEBaYJC7GIB1MBnud3OAamqZ1i4vE4RSKRhnjSrzYKlds8kGju + MxAhlaYg8DDlBRz2qx2LxXyLW/rVBsoPvd9/bR9aShNHmZjfNPnw82oGxzsQzTWDkppRRcPO4CNc5BQW + f48+xKAzkJooCZ3CQs9aNDjjfGvfPVWpo8egw4uy0LHd3D5UqavXoOPLituf2T6wmaCBaZP1Stb2bVp3 + wJXjHauYy+3aNDxnsnYIGg/ogtQ7V+ggTa242xUW40sW68u47ZgavQOBQjt09cDksAAAAABJRU5ErkJg + gg== + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAINJREFUOE9jeE8iAGk4c+bMqvWnYvKOxOQejc6FkhCEzIZwGd69e7dh6+mU4qMb + t57avP305u1wEoQYMAFQQ3LxMSiHGADUALIIB/j//z+UBQdv377FowELePPmzWDT8Pr1a9I0vHr1arBp + ePnyJWkaXrx4QY6GY8eBSRYBoHKYgIEBAO9fpUIbYHqGAAAAAElFTkSuQmCC + + + + 819, 17 + + + 911, 17 + + + 1030, 17 + - iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAKtSURBVFhH1ZhLbxJRFMfnUxBWaglLEhJCQlQ2YlwYJDER - Y20CNTHWGkwUI1LpRittokmrLupjo0YWxCZNiEACCwgLngPMCHwAF27duv47506plFdzp8PDxWHuY7jn - x/mfey/3Cp1OB2T7SRmB9Rr8DyrMlh+qz2F1vfpWwlV8/SYx/2QCfbzarWPhfAEXbhRxV3nh3ppiTw+e - VO6v69C3qox52V/CqbMFPHpWU2H2v8s4c66A59si2m2VcJr2/kuT+X/3uQmBpKGIzAKk+6NvBiq4tlKG - 4FPygqSZZjT6fZEqrsWiChOIzBYm+qY+rzBK3sxSps23dVxcLP3fMv2cRASP5szxMv3QAeLPqDF4ZdrT - AWZkXvLMpt8KyNzA/JouzPicGQnj9/thtVohCAJ7Ul2LnDw5MxTGaDQyiH6jdl4gnpwZgKEIDAPptvFG - iGdqD8CMikoXhjc6J5JJb5g5lmn8X4gpJ/AEpnYul4MoimxmFYtFZlSmNurrnXE8OUMrcJJ3urpcLkSj - UebU5/MxozK1UV/veDw5Qzs190ZJDt1uN9LpNMxmMzMqU9t4mON3be6FLBwOs1U5GAzC6XQelqmN+mTp - 33mJRyZuEJIgFovBYDDA4XDA6/XC4/HAYrHAZDIhHo9rlkkTTDabhc1mYyt1JBJhRmVqoz6tOaMJplqt - MolIlmQyiVQqBbvdjlAodDjLukA824EmmFarhXw+j0QigUajAVmWkclkUCqVBsabeM7wLAVHIkOHcJ4v - 6/3uxs7BIY5uGC4tDYZOb4fjxqNrl6u3lbN2bE/CaeUWYOdDYybRIf8LzgJef2yo9zPrL0UGdOVWGY83 - aljbVGxLVJ9d663r0PfkRQ3XV8vsOuROqIKm1FZhyOgGaTmohmtatnS/gt1PTUgKCDH8BTVx8uPfHR15 - AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAApBJREFUWEfVmM2LUlEYxu9fIbOqRlwKggjS5CajRZgQZDQN6ATRNGFQRubkbGpy + goKmWkwfm4pcSAMDkgq6UFz4ef246f0DWrRt2/rpvufONce5M3LSe8cWP84573nhPLzPe/XeI8iyDGI3 + IyG83kTobp2xfE8d9dbT2luJNfDla5edTzAxL7ZbmD9TxtmrFdxSEm6vKTzaGzWG11PYW1W4EKrixOky + 7j9uqmJ2v0k4tVDGk5ci+n1VoZm8+9xh57/91IFA1lBFjkOIxrVwHZdXahCCindkjV6SWZAr3sWKKiYc + P14xidetWRWj9I1ekllsvmnh3GL1/7bph05sYnht+q4T4+W3TozBa9OOTmxq8Nj0S2FmxPxUMFHM0T1z + qJhQKASHwwFBENhIa728cfD0jK6Yubk5JmIUio/mjmMim6gCekI0eCs0kU2HVUWDtzoT2TRtMTNs00w1 + sAGPdrFYhCiKbF6pVBg0pxjtaXkET8/QL3BmJDYWr9eLRCLB5sFgkEFzitHecC6PTfRPzf1HSQf6fD7k + cjnYbDYGzSl2tBgDXq5isRizLhKJwOPxDOY00p7U/fu9ZPjLVTKZhMVigdvtRiAQgN/vh91uh9VqRSqV + 2pfLY9M/USgU4HQ6WXPH43EGzSlGe8O5hotpNBoDWzKZDLLZLFwuF6LR6OAp0zC8Z3q9HkqlEtLpNNrt + NiRJQj6fR7VaPZBreM/wsK8y9BGul2QWG1t7YuhG4PzSwdKZCV2PXLqhfGsnd7o4uVDG1vu2bqLR0Pnz + njJefWir9zPrz0Um6OL1Gh5sNLG2qfBMVEeN4fUU9h4+beLKao1dh9yM1tHp9lUxBN0gLUfUcpnF0p06 + tj920FWEyLKMPzVx8uMVj26cAAAAAElFTkSuQmCC \ No newline at end of file diff --git a/VizualAlgoGeom/VizualAlgoGeom/VizualAlgoGeom.csproj b/VizualAlgoGeom/VizualAlgoGeom/VizualAlgoGeom.csproj index ab20ba2..ec405cb 100644 --- a/VizualAlgoGeom/VizualAlgoGeom/VizualAlgoGeom.csproj +++ b/VizualAlgoGeom/VizualAlgoGeom/VizualAlgoGeom.csproj @@ -102,6 +102,7 @@ DataStructuresControl.cs + UserControl @@ -110,6 +111,11 @@ + + True + True + ExceptionResources.resx + UserControl @@ -199,6 +205,8 @@ Designer + ResXFileCodeGenerator + ExceptionResources.Designer.cs ExplanationsControl.cs