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
+
- 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
+ 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
+
+ 236, 17
+
- iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
- Cv8BNGKaggAAAtNJREFUSEutl0trE1EUxwfyDfIZktImq1CySUoRURSkCymNi1ilqV1kIaQvdxJD86hV
- SNoqaFcFUSpihUIrVHSTZGYyc+/kMZn0kce2X8N/MjJKmmTi5F7uIqvzy++cM+feyxFCKmXy4xdNbYvJ
- bXFzV9zcYbF3xdSOmMgIR9+JWgGEcJUy/fyNTM/xd+fzoVVhcU0MsdidOMLMAu+7z7/bLwDGnf6kwLx6
- W9BUel6jtSphtc9qCKXsfZBuPsh9PZI5JA02mqoUlbYj20UpadXpowi/HJM4ZHNxVTivsUX8jaap5PmW
- cvuhwqEFlp6JyBiTRTvr31AgxbeLd+Y7pCfrDEiyLJdKpWKxiB9dpI0MOxKiV6vVXC7n8XicTidIhhmc
- mJF0TD6fd7vdHMdFo1FVVQ0tZiTDZmJiAphUKtVoNNhnT8dks9nx8XFgkslkFwZIBk6GjY5JJBL1ev16
- A49KMmrjcrmAicfjPTGjOukYnud1TD8b3c+6U5cNatPPZiTS9U5rNpuDh4sVp2E6jUFHdNkMro3172n4
- ThvJ6b86zTrJsNGHTc8pYL0jMPk1TQPDdKYNc6T17T1gMPxjsVi5XDadadZJitK+S/h8vkgk0mq1gNST
- NmDYmMJ6O4FUKBTGxsZQDxxlpjPNFDNoGuGExkDzer12u91ms+G7wUGATHad2cMwTKYRIuLEFEXR4XAE
- AoGrqyuwj4+P9cRaWIOmkQGbnJyEUzgcDgaDFxcXFjDms1yH4WqAjvD7/ZIksXFa6nULAwzlQRrxv9D6
- 1oR0pz/3vfYddk0413qHgoplG6Mjoq+VW0GFw0vm3mMeV3WrJTexbVzShRVh+YXMnZzSqVkhsyefaUpN
- a8sy3M1L+vGLND2XOziU8H4i+5+kqVl+JtQmr2/QNRYbcVZiJPg0fyOQS78X2+8nyAN2dELiaeHlm8IW
- u41oG2nx4FCudN6EvwEadGXrzpDhPAAAAABJRU5ErkJggg==
+ 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
+
+ 316, 17
+
- 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
+ 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
+ 8smp2n1EZ+w/RPZQcJ5dhKAAAAAASUVORK5CYII=
+
+ 398, 17
+
- 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
+ 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
+ SUVORK5CYII=
+
+ 508, 17
+
+
+ 616, 17
+
- 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
+ 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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