From d71d76fb29630484f3c0a90f9f49ba8ef9e9d6d3 Mon Sep 17 00:00:00 2001
From: Natalia Bebjakova <xbebjak@fi.muni.cz>
Date: Fri, 8 May 2020 10:12:38 +0200
Subject: [PATCH] gui changes

---
 .../java/cz/fidentis/analyst/gui/Canvas.form  |  30 +-
 .../java/cz/fidentis/analyst/gui/Canvas.java  |  63 +-
 .../analyst/gui/GeneralGLEventListener.java   |  31 +-
 .../fidentis/analyst/gui/SymmetryPanel.form   | 338 ++++++----
 .../fidentis/analyst/gui/SymmetryPanel.java   | 500 ++++++++------
 .../fidentis/analyst/gui/UserInterface.form   | 627 +++++++++---------
 .../fidentis/analyst/gui/UserInterface.java   | 608 ++++++++---------
 .../fidentis/analyst/gui/resources/angle.png  | Bin 0 -> 7607 bytes
 .../fidentis/analyst/gui/resources/close.png  | Bin 2540 -> 2377 bytes
 .../analyst/gui/resources/compareTwoFaces.svg |  85 +++
 .../analyst/gui/resources/curvature.png       | Bin 0 -> 7626 bytes
 .../analyst/gui/resources/distance.png        | Bin 0 -> 6812 bytes
 .../fidentis/analyst/gui/resources/home.png   | Bin 2419 -> 2360 bytes
 .../fidentis/analyst/gui/resources/info.png   | Bin 0 -> 2431 bytes
 .../fidentis/analyst/gui/resources/info2.png  | Bin 0 -> 2446 bytes
 .../analyst/gui/resources/minimize2.png       | Bin 0 -> 2421 bytes
 .../gui/resources/navigationBackground.png    | Bin 2153 -> 2339 bytes
 .../fidentis/analyst/gui/resources/newP.png   | Bin 0 -> 3927 bytes
 .../gui/resources/new_project_opened.png      | Bin 3713 -> 4158 bytes
 .../fidentis/analyst/gui/resources/points.png | Bin 0 -> 6295 bytes
 .../fidentis/analyst/gui/resources/save.png   | Bin 0 -> 2472 bytes
 .../fidentis/analyst/gui/resources/show.png   | Bin 0 -> 2665 bytes
 .../fidentis/analyst/gui/resources/show2.png  | Bin 0 -> 2638 bytes
 .../analyst/gui/resources/wireframe2.png      | Bin 0 -> 3857 bytes
 .../analyst/symmetry/BoundingBox.java         |   5 +-
 .../cz/fidentis/analyst/symmetry/Config.java  |  24 +-
 .../cz/fidentis/analyst/symmetry/Plane.java   |  15 +-
 ...tryCounter.java => SymmetryEstimator.java} | 193 +++---
 MeshModel/pom.xml                             |   6 +
 .../fidentis/analyst/mesh/core/MeshPoint.java |   1 -
 .../analyst/mesh/io/MeshModelExporter.java    | 219 ------
 .../analyst/mesh/io/MeshObjExporter.java      | 119 ++++
 .../analyst/mesh/io/ModelFileFilter.java      |  31 +-
 33 files changed, 1532 insertions(+), 1363 deletions(-)
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/angle.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/compareTwoFaces.svg
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/curvature.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/distance.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/info.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/info2.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/minimize2.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/newP.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/points.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/save.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/show.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/show2.png
 create mode 100644 GUI/src/main/java/cz/fidentis/analyst/gui/resources/wireframe2.png
 rename GUI/src/main/java/cz/fidentis/analyst/symmetry/{SymmetryCounter.java => SymmetryEstimator.java} (82%)
 delete mode 100644 MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshModelExporter.java
 create mode 100644 MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjExporter.java

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.form b/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.form
index f2b81b26..45e7ae46 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.form
@@ -48,6 +48,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/resetButton.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Reset position of model"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
               <Color id="Hand Cursor"/>
             </Property>
@@ -59,7 +60,7 @@
           </Events>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="60" y="70" width="30" height="30"/>
+              <AbsoluteConstraints x="60" y="40" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -68,6 +69,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/upButton.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Rotate up"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -83,7 +85,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="60" y="40" width="30" height="30"/>
+              <AbsoluteConstraints x="60" y="10" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -92,6 +94,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/leftButton.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Rotate left"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -107,7 +110,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="30" y="70" width="30" height="30"/>
+              <AbsoluteConstraints x="30" y="40" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -116,6 +119,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/minus.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Zoom out"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -131,7 +135,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="80" y="130" width="30" height="30"/>
+              <AbsoluteConstraints x="90" y="90" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -140,6 +144,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/downButton.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Rotate down"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -155,7 +160,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="60" y="100" width="30" height="30"/>
+              <AbsoluteConstraints x="60" y="70" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -164,6 +169,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/plus.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Zoom in"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -179,7 +185,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="40" y="130" width="30" height="30"/>
+              <AbsoluteConstraints x="30" y="90" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -191,7 +197,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="30" y="40" width="90" height="90"/>
+              <AbsoluteConstraints x="30" y="10" width="90" height="90"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -200,6 +206,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/loadCanva.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value=""/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
               <Color id="Hand Cursor"/>
             </Property>
@@ -220,6 +227,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/rightButton.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Rotate right"/>
             <Property name="borderPainted" type="boolean" value="false"/>
             <Property name="contentAreaFilled" type="boolean" value="false"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
@@ -235,7 +243,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="90" y="70" width="30" height="30"/>
+              <AbsoluteConstraints x="90" y="40" width="30" height="30"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -244,6 +252,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/whiteBackroundCanvas.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="White backround"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
               <Color id="Hand Cursor"/>
             </Property>
@@ -253,7 +262,7 @@
           </Events>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="50" y="170" width="-1" height="-1"/>
+              <AbsoluteConstraints x="50" y="130" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -262,6 +271,7 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/blackBackroundCanvas.png"/>
             </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Dark background"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
               <Color id="Hand Cursor"/>
             </Property>
@@ -271,7 +281,7 @@
           </Events>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="50" y="240" width="-1" height="-1"/>
+              <AbsoluteConstraints x="50" y="190" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java
index ed28c4df..0715b036 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java
@@ -1,15 +1,16 @@
 package cz.fidentis.analyst.gui;
 
 import cz.fidentis.analyst.mesh.io.ModelFileFilter;
+import cz.fidentis.analyst.mesh.core.MeshModel;
+import cz.fidentis.analyst.mesh.io.MeshObjLoader;
 import javax.media.opengl.GLCapabilities;
 import javax.media.opengl.GLProfile;
 import javax.media.opengl.awt.GLCanvas;
 import com.jogamp.opengl.util.FPSAnimator;
-import cz.fidentis.analyst.mesh.core.MeshModel;
-import cz.fidentis.analyst.mesh.io.MeshObjLoader;
 import java.awt.Color;
 import java.awt.Cursor;
 import java.awt.Dimension;
+import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -19,7 +20,7 @@ import javax.swing.JOptionPane;
 
 /**
  *
- * @author Natalia Bebjakova 
+ * @author Natália Bebjaková 
  * 
  * Canvas for displaying models containing GLCanvas and navigation.
  */
@@ -47,7 +48,17 @@ public class Canvas extends javax.swing.JPanel {
      * original model that is loaded from file   
      */
     protected MeshModel loadedModel;
-
+    
+    protected boolean loaded;   
+    
+    /**
+     * 
+     * @return true if model is loaded on canvas, false otherwise
+     */
+    public boolean isLoaded() {
+        return loaded;
+    }
+    
     /**
      * Creates new form Canva
      */
@@ -179,15 +190,22 @@ public class Canvas extends javax.swing.JPanel {
                 listener.setModel(model);
                 listener.rotationAndSizeRestart();
                 loadModelButton.setVisible(false);
+                loaded = true;
             }           
             } catch (Exception e) {
                 System.out.println(e.getMessage());
                 JOptionPane.showMessageDialog(this, "File doesn't contain any model", "Model is not loaded.",
                         0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/notLoadedModel.png")));
                 System.out.println ("File doesn't contain any model");
-                
-            }; 
-        
+                loaded = false;               
+            };        
+    }
+    
+    /**
+     * reset position of the displayed model
+     */
+    public void resetPosition(){
+        listener.rotationAndSizeRestart();
     }
     
     /**
@@ -208,6 +226,7 @@ public class Canvas extends javax.swing.JPanel {
     public MeshModel getModel() {
         return listener.getModel();
     }
+   
     
     /**
      * This method is called from within the constructor to initialize the form.
@@ -250,6 +269,7 @@ public class Canvas extends javax.swing.JPanel {
         });
 
         resetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/resetButton.png"))); // NOI18N
+        resetButton.setToolTipText("Reset position of model");
         resetButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         resetButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
             public void mouseMoved(java.awt.event.MouseEvent evt) {
@@ -265,9 +285,10 @@ public class Canvas extends javax.swing.JPanel {
             }
         });
         jLayeredPane1.add(resetButton);
-        resetButton.setBounds(60, 70, 30, 30);
+        resetButton.setBounds(60, 40, 30, 30);
 
         upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/upButton.png"))); // NOI18N
+        upNavigationButton.setToolTipText("Rotate up");
         upNavigationButton.setBorderPainted(false);
         upNavigationButton.setContentAreaFilled(false);
         upNavigationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -281,9 +302,10 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(upNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(upNavigationButton);
-        upNavigationButton.setBounds(60, 40, 30, 30);
+        upNavigationButton.setBounds(60, 10, 30, 30);
 
         leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/leftButton.png"))); // NOI18N
+        leftNavigationButton.setToolTipText("Rotate left");
         leftNavigationButton.setBorderPainted(false);
         leftNavigationButton.setContentAreaFilled(false);
         leftNavigationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -297,9 +319,10 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(leftNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(leftNavigationButton);
-        leftNavigationButton.setBounds(30, 70, 30, 30);
+        leftNavigationButton.setBounds(30, 40, 30, 30);
 
         minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/minus.png"))); // NOI18N
+        minusNavigationButton.setToolTipText("Zoom out");
         minusNavigationButton.setBorderPainted(false);
         minusNavigationButton.setContentAreaFilled(false);
         minusNavigationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -313,9 +336,10 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(minusNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(minusNavigationButton);
-        minusNavigationButton.setBounds(80, 130, 30, 30);
+        minusNavigationButton.setBounds(90, 90, 30, 30);
 
         downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/downButton.png"))); // NOI18N
+        downNavigationButton.setToolTipText("Rotate down");
         downNavigationButton.setBorderPainted(false);
         downNavigationButton.setContentAreaFilled(false);
         downNavigationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -329,9 +353,10 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(downNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(downNavigationButton);
-        downNavigationButton.setBounds(60, 100, 30, 30);
+        downNavigationButton.setBounds(60, 70, 30, 30);
 
         plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/plus.png"))); // NOI18N
+        plusNavigationButton.setToolTipText("Zoom in");
         plusNavigationButton.setBorderPainted(false);
         plusNavigationButton.setContentAreaFilled(false);
         plusNavigationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -345,13 +370,14 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(plusNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(plusNavigationButton);
-        plusNavigationButton.setBounds(40, 130, 30, 30);
+        plusNavigationButton.setBounds(30, 90, 30, 30);
 
         jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/navigBackground.png"))); // NOI18N
         jLayeredPane1.add(jLabel1);
-        jLabel1.setBounds(30, 40, 90, 90);
+        jLabel1.setBounds(30, 10, 90, 90);
 
         loadModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/loadCanva.png"))); // NOI18N
+        loadModelButton.setToolTipText("");
         loadModelButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         loadModelButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
             public void mouseMoved(java.awt.event.MouseEvent evt) {
@@ -370,6 +396,7 @@ public class Canvas extends javax.swing.JPanel {
         loadModelButton.setBounds(200, 100, 210, 220);
 
         rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/rightButton.png"))); // NOI18N
+        rightNavigationButton1.setToolTipText("Rotate right");
         rightNavigationButton1.setBorderPainted(false);
         rightNavigationButton1.setContentAreaFilled(false);
         rightNavigationButton1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -383,9 +410,10 @@ public class Canvas extends javax.swing.JPanel {
         });
         jLayeredPane1.setLayer(rightNavigationButton1, javax.swing.JLayeredPane.MODAL_LAYER);
         jLayeredPane1.add(rightNavigationButton1);
-        rightNavigationButton1.setBounds(90, 70, 30, 30);
+        rightNavigationButton1.setBounds(90, 40, 30, 30);
 
         whiteBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/whiteBackroundCanvas.png"))); // NOI18N
+        whiteBackroundButton.setToolTipText("White backround");
         whiteBackroundButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         whiteBackroundButton.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseClicked(java.awt.event.MouseEvent evt) {
@@ -393,9 +421,10 @@ public class Canvas extends javax.swing.JPanel {
             }
         });
         jLayeredPane1.add(whiteBackroundButton);
-        whiteBackroundButton.setBounds(50, 170, 0, 0);
+        whiteBackroundButton.setBounds(50, 130, 56, 56);
 
         blackBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/blackBackroundCanvas.png"))); // NOI18N
+        blackBackroundButton.setToolTipText("Dark background");
         blackBackroundButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         blackBackroundButton.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseClicked(java.awt.event.MouseEvent evt) {
@@ -403,7 +432,7 @@ public class Canvas extends javax.swing.JPanel {
             }
         });
         jLayeredPane1.add(blackBackroundButton);
-        blackBackroundButton.setBounds(50, 240, 0, 0);
+        blackBackroundButton.setBounds(50, 190, 56, 56);
 
         jPanel1.setBackground(new java.awt.Color(0, 0, 0));
         jPanel1.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java
index e115177d..24566d99 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java
@@ -1,7 +1,7 @@
 package cz.fidentis.analyst.gui;
 
-import cz.fidentis.analyst.mesh.core.MeshFacet;
 import cz.fidentis.analyst.mesh.core.MeshModel;
+import cz.fidentis.analyst.mesh.core.MeshFacet;
 import javax.media.opengl.GL;
 import static javax.media.opengl.GL.GL_DEPTH_TEST;
 import static javax.media.opengl.GL.GL_FRONT_AND_BACK;
@@ -19,7 +19,7 @@ import javax.vecmath.Vector3f;
 
 /**
  *
- * @author Natalia Bebjakova
+ * @author Natália Bebjaková
  */
 public class GeneralGLEventListener implements GLEventListener {  
     /**
@@ -78,10 +78,6 @@ public class GeneralGLEventListener implements GLEventListener {
      * Decides if model is diplayed as wire-frame
      */  
     protected boolean wireModel = false;
-    /**
-     * Decides if model is diplayed with textures
-     */
-    protected boolean drawTextures = false;
     /**
      * Decides if the backround will be white
      */
@@ -127,14 +123,6 @@ public class GeneralGLEventListener implements GLEventListener {
         wireModel = drawWire;
     }
        
-    /**
-     *
-     * @param drawTextures Decides if model is displayed with textures
-     */
-    public void setDrawTextures(boolean drawTextures) {
-        this.drawTextures = drawTextures;
-    }
-
     /**
      * 
      * @param whiteBackround Is backround white or not
@@ -215,7 +203,7 @@ public class GeneralGLEventListener implements GLEventListener {
         } else {
             gl.glClearColor(0.25f,0.25f,0.25f,0); 
         }
-            // background for GLCanvas       
+        // background for GLCanvas       
         gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
         gl.glLoadIdentity();
 
@@ -236,13 +224,15 @@ public class GeneralGLEventListener implements GLEventListener {
                 gl.glPolygonMode( GL_FRONT_AND_BACK, GL_FILL); // drawn as full traingles
                 drawWithoutTextures(model);
             }
-        }     
-        gl.glPopMatrix();
+        } 
+            
+        //gl.glPopMatrix();
         gl.glFlush();
     }
     
     /**
      * Loops through the facets and render each of them 
+     * 
      * @param model model of the face
      */
     public void drawWithoutTextures(MeshModel model) {
@@ -253,6 +243,7 @@ public class GeneralGLEventListener implements GLEventListener {
     
     /**
      * Loops through the facet and render all the vertices as they are stored in corner table
+     * 
      * @param facet facet of model
      */
     public void renderFacet(MeshFacet facet) {
@@ -270,6 +261,7 @@ public class GeneralGLEventListener implements GLEventListener {
             gl.glVertex3d(vert.x, vert.y, vert.z);
         }
         gl.glEnd();
+
     }
 
     /**
@@ -278,7 +270,7 @@ public class GeneralGLEventListener implements GLEventListener {
      * @param x x
      * @param y y
      * @param width New width
-     * @param height New Height
+     * @param height New height
      */
     @Override
     public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
@@ -313,7 +305,6 @@ public class GeneralGLEventListener implements GLEventListener {
         zCameraPosition = defaultPosition.z;
         xCameraPosition = defaultPosition.x;
         yCameraPosition = defaultPosition.y;
-
     }    
 
     /**
@@ -379,7 +370,7 @@ public class GeneralGLEventListener implements GLEventListener {
      * @return Y axis
      */
     private Vector3f getYaxis() {
-        Vector3f yAxis = new Vector3f((float) xUpPosition, (float) yUpPosition, (float) zUpPosition);
+         Vector3f yAxis = new Vector3f((float) xUpPosition, (float) yUpPosition, (float) zUpPosition);
         float length = (float) Math.sqrt(yAxis.x * yAxis.x +
                 yAxis.y * yAxis.y + yAxis.z * yAxis.z);
         yAxis.set((yAxis.x / length), (yAxis.y / length), (yAxis.z / length));
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.form b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.form
index 192c40b3..65d04539 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.form
@@ -16,21 +16,12 @@
   <Layout>
     <DimensionLayout dim="0">
       <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="580" max="32767" attributes="0"/>
-          <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="0" attributes="0">
-                  <Component id="symetrySpecificationPanel" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-              </Group>
-          </Group>
+          <Component id="symetrySpecificationPanel" alignment="0" max="32767" attributes="0"/>
       </Group>
     </DimensionLayout>
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="554" max="32767" attributes="0"/>
-          <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
-              <Component id="symetrySpecificationPanel" alignment="0" max="32767" attributes="0"/>
-          </Group>
+          <Component id="symetrySpecificationPanel" alignment="0" max="32767" attributes="0"/>
       </Group>
     </DimensionLayout>
   </Layout>
@@ -45,155 +36,162 @@
       <Layout>
         <DimensionLayout dim="0">
           <Group type="103" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="0" attributes="0">
-                  <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
-                  <Group type="103" groupAlignment="0" attributes="0">
-                      <Group type="102" alignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <Group type="103" groupAlignment="1" attributes="0">
+                      <Group type="102" attributes="0">
                           <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                          <Group type="103" groupAlignment="1" attributes="0">
-                              <Group type="102" alignment="1" attributes="0">
-                                  <Component id="normalAngleSlider" min="-2" pref="200" max="-2" attributes="0"/>
-                                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                                  <Component id="normalTextField" min="-2" pref="46" max="-2" attributes="0"/>
-                              </Group>
-                              <Group type="102" alignment="1" attributes="0">
-                                  <Component id="significantPointSlider" min="-2" max="-2" attributes="0"/>
-                                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                      <Component id="textFieldMinCos" pref="46" max="32767" attributes="0"/>
-                                      <Component id="textFieldCurvature" max="32767" attributes="0"/>
-                                      <Component id="distanceTextField" max="32767" attributes="0"/>
-                                      <Component id="significantTextField" max="32767" attributes="0"/>
-                                  </Group>
-                              </Group>
-                          </Group>
-                          <EmptySpace min="-2" pref="63" max="-2" attributes="0"/>
+                          <Component id="defaultValues" min="-2" max="-2" attributes="0"/>
                       </Group>
                       <Group type="102" attributes="0">
+                          <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
                           <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="minCurvatio" alignment="1" min="-2" max="-2" attributes="0"/>
-                              <Component id="minCurvatio2" alignment="1" min="-2" max="-2" attributes="0"/>
-                              <Component id="minCurvatio4" alignment="1" min="-2" max="-2" attributes="0"/>
-                              <Group type="103" alignment="1" groupAlignment="0" attributes="0">
-                                  <Component id="significantPointLabel" min="-2" max="-2" attributes="0"/>
-                                  <Component id="minCurvatio3" min="-2" max="-2" attributes="0"/>
+                              <Group type="102" attributes="0">
+                                  <EmptySpace min="-2" pref="154" max="-2" attributes="0"/>
+                                  <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
                               </Group>
-                              <Group type="102" alignment="1" attributes="0">
-                                  <Group type="103" groupAlignment="1" attributes="0">
-                                      <Group type="103" groupAlignment="0" attributes="0">
-                                          <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
-                                          <Group type="102" attributes="0">
-                                              <EmptySpace min="-2" pref="80" max="-2" attributes="0"/>
-                                              <Component id="minCurvatio8" min="-2" max="-2" attributes="0"/>
-                                              <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                                              <Component id="averagingCheckBox" min="-2" max="-2" attributes="0"/>
-                                          </Group>
-                                      </Group>
-                                      <Component id="showPlaneLabel" alignment="1" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
+                              <Group type="102" attributes="0">
+                                  <Component id="showPlaneLabel" min="-2" pref="147" max="-2" attributes="0"/>
+                                  <EmptySpace max="32767" attributes="0"/>
+                                  <Component id="originalModelButton" min="-2" pref="181" max="-2" attributes="0"/>
                               </Group>
                           </Group>
+                      </Group>
+                      <Group type="102" attributes="0">
+                          <EmptySpace max="-2" attributes="0"/>
                           <Group type="103" groupAlignment="0" attributes="0">
-                              <Group type="102" alignment="1" attributes="0">
+                              <Group type="102" attributes="0">
+                                  <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
+                                  <Component id="minCurvatio8" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                                  <Component id="averagingCheckBox" min="-2" max="-2" attributes="0"/>
                                   <EmptySpace max="32767" attributes="0"/>
+                                  <Component id="symetryButton" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <Group type="102" attributes="0">
                                   <Group type="103" groupAlignment="0" attributes="0">
-                                      <Component id="symetryButton" alignment="1" min="-2" max="-2" attributes="0"/>
-                                      <Component id="originalModelButton" alignment="1" min="-2" pref="181" max="-2" attributes="0"/>
-                                      <Component id="defaultValues" alignment="1" min="-2" max="-2" attributes="0"/>
+                                      <Component id="infoMinAngleCos" min="-2" max="-2" attributes="0"/>
+                                      <Component id="infoRelDist" alignment="0" min="-2" max="-2" attributes="0"/>
+                                      <Component id="infoNormalAngle" alignment="0" min="-2" max="-2" attributes="0"/>
+                                      <Component id="infoPoints" alignment="0" min="-2" max="-2" attributes="0"/>
+                                      <Component id="infoMinCurv" alignment="0" min="-2" max="-2" attributes="0"/>
                                   </Group>
-                                  <EmptySpace min="-2" pref="63" max="-2" attributes="0"/>
-                              </Group>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <EmptySpace min="-2" pref="56" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="minCurvatio4" pref="157" max="32767" attributes="0"/>
+                                      <Group type="102" alignment="0" attributes="0">
+                                          <Group type="103" groupAlignment="0" attributes="0">
+                                              <Component id="minCurvatio" min="-2" max="-2" attributes="0"/>
+                                              <Component id="minCurvatio3" min="-2" max="-2" attributes="0"/>
+                                              <Component id="minCurvatio2" alignment="0" min="-2" max="-2" attributes="0"/>
+                                              <Component id="significantPointLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                                          </Group>
+                                          <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                                      </Group>
+                                  </Group>
+                                  <EmptySpace max="-2" attributes="0"/>
                                   <Group type="103" groupAlignment="1" attributes="0">
-                                      <Component id="angleCosineSlider" alignment="1" min="-2" pref="200" max="-2" attributes="0"/>
-                                      <Group type="103" groupAlignment="0" attributes="0">
-                                          <Component id="relativeDistanceSlider" alignment="0" min="-2" pref="200" max="-2" attributes="0"/>
-                                          <Component id="curavatureSlider" alignment="0" min="-2" max="-2" attributes="0"/>
+                                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                                          <Component id="curavatureSlider" alignment="1" pref="0" max="32767" attributes="0"/>
+                                          <Component id="relativeDistanceSlider" alignment="1" pref="0" max="32767" attributes="0"/>
+                                          <Component id="significantPointSlider" alignment="1" min="-2" pref="164" max="-2" attributes="0"/>
+                                          <Component id="angleCosineSlider" alignment="1" min="-2" pref="164" max="-2" attributes="0"/>
                                       </Group>
+                                      <Component id="normalAngleSlider" min="-2" pref="164" max="-2" attributes="0"/>
+                                  </Group>
+                                  <EmptySpace type="separate" max="-2" attributes="0"/>
+                                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                                      <Component id="distanceTextField" max="32767" attributes="0"/>
+                                      <Component id="normalTextField" alignment="0" max="32767" attributes="0"/>
+                                      <Component id="significantTextField" min="-2" pref="46" max="-2" attributes="0"/>
+                                      <Component id="textFieldCurvature" min="-2" pref="46" max="-2" attributes="0"/>
+                                      <Component id="textFieldMinCos" min="-2" pref="46" max="-2" attributes="0"/>
                                   </Group>
-                                  <EmptySpace min="0" pref="122" max="32767" attributes="0"/>
                               </Group>
                           </Group>
                       </Group>
                   </Group>
+                  <EmptySpace max="32767" attributes="0"/>
               </Group>
           </Group>
         </DimensionLayout>
         <DimensionLayout dim="1">
           <Group type="103" groupAlignment="0" attributes="0">
               <Group type="102" attributes="0">
-                  <EmptySpace min="-2" pref="72" max="-2" attributes="0"/>
+                  <EmptySpace max="32767" attributes="0"/>
                   <Group type="103" groupAlignment="1" attributes="0">
-                      <Group type="102" attributes="0">
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Group type="103" alignment="0" groupAlignment="0" attributes="0">
-                                  <Component id="minCurvatio" alignment="0" min="-2" pref="26" max="-2" attributes="0"/>
-                                  <Component id="textFieldCurvature" alignment="1" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
-                                  <Component id="curavatureSlider" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                          <EmptySpace min="-2" pref="36" max="-2" attributes="0"/>
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="angleCosineSlider" min="-2" max="-2" attributes="0"/>
-                              <Component id="minCurvatio2" min="-2" pref="26" max="-2" attributes="0"/>
-                          </Group>
+                      <Group type="103" alignment="1" groupAlignment="0" attributes="0">
+                          <Component id="infoPoints" min="-2" max="-2" attributes="0"/>
+                          <Component id="significantPointLabel" min="-2" pref="27" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" alignment="1" groupAlignment="0" attributes="0">
+                          <Component id="significantTextField" min="-2" max="-2" attributes="0"/>
+                          <Component id="significantPointSlider" min="-2" pref="28" max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="1" attributes="0">
+                      <Component id="minCurvatio" min="-2" pref="26" max="-2" attributes="0"/>
+                      <Group type="102" alignment="1" attributes="0">
+                          <Component id="textFieldCurvature" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
                       </Group>
-                      <Component id="textFieldMinCos" min="-2" max="-2" attributes="0"/>
+                      <Component id="infoMinCurv" min="-2" max="-2" attributes="0"/>
+                      <Component id="curavatureSlider" min="-2" pref="26" max="-2" attributes="0"/>
                   </Group>
+                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
                   <Group type="103" groupAlignment="0" attributes="0">
-                      <Group type="102" attributes="0">
-                          <EmptySpace type="separate" max="-2" attributes="0"/>
-                          <Component id="minCurvatio4" max="32767" attributes="0"/>
-                          <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                      <Component id="infoMinAngleCos" alignment="1" min="-2" max="-2" attributes="0"/>
+                      <Component id="minCurvatio2" alignment="1" min="-2" pref="26" max="-2" attributes="0"/>
+                      <Component id="textFieldMinCos" alignment="0" min="-2" max="-2" attributes="0"/>
+                      <Component id="angleCosineSlider" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Group type="102" alignment="0" attributes="0">
+                          <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                              <Component id="normalAngleSlider" max="32767" attributes="0"/>
+                              <Component id="normalTextField" max="32767" attributes="0"/>
+                          </Group>
+                          <EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
+                          <Component id="distanceTextField" min="-2" max="-2" attributes="0"/>
                       </Group>
                       <Group type="102" alignment="0" attributes="0">
-                          <EmptySpace min="-2" pref="34" max="-2" attributes="0"/>
                           <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="normalTextField" min="-2" max="-2" attributes="0"/>
-                              <Component id="normalAngleSlider" min="-2" pref="30" max="-2" attributes="0"/>
+                              <Component id="minCurvatio4" min="-2" pref="27" max="-2" attributes="0"/>
+                              <Component id="infoNormalAngle" min="-2" max="-2" attributes="0"/>
                           </Group>
-                          <EmptySpace pref="34" max="32767" attributes="0"/>
-                      </Group>
-                  </Group>
-                  <Group type="103" groupAlignment="1" attributes="0">
-                      <Component id="minCurvatio3" min="-2" pref="26" max="-2" attributes="0"/>
-                      <Group type="103" alignment="1" groupAlignment="0" max="-2" attributes="0">
-                          <Component id="relativeDistanceSlider" alignment="1" pref="0" max="32767" attributes="0"/>
-                          <Component id="distanceTextField" alignment="1" max="32767" attributes="0"/>
+                          <EmptySpace max="32767" attributes="0"/>
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Component id="infoRelDist" alignment="1" min="-2" max="-2" attributes="0"/>
+                              <Group type="103" alignment="1" groupAlignment="0" attributes="0">
+                                  <Component id="relativeDistanceSlider" min="-2" pref="22" max="-2" attributes="0"/>
+                                  <Component id="minCurvatio3" min="-2" pref="26" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
                       </Group>
                   </Group>
-                  <EmptySpace pref="31" max="32767" attributes="0"/>
-                  <Group type="103" groupAlignment="0" attributes="0">
-                      <Component id="significantTextField" alignment="1" min="-2" max="-2" attributes="0"/>
-                      <Component id="significantPointLabel" alignment="1" min="-2" pref="14" max="-2" attributes="0"/>
-                      <Component id="significantPointSlider" alignment="1" min="-2" max="-2" attributes="0"/>
-                  </Group>
-                  <EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
                   <Component id="defaultValues" min="-2" max="-2" attributes="0"/>
-                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                  <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Group type="102" attributes="0">
+                          <Component id="symetryButton" min="-2" pref="75" max="-2" attributes="0"/>
+                          <EmptySpace max="32767" attributes="0"/>
+                          <Component id="originalModelButton" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace max="32767" attributes="0"/>
+                      </Group>
                       <Group type="102" alignment="0" attributes="0">
                           <Group type="103" groupAlignment="1" attributes="0">
                               <Component id="averagingCheckBox" min="-2" max="-2" attributes="0"/>
                               <Component id="minCurvatio8" min="-2" pref="28" max="-2" attributes="0"/>
                           </Group>
-                          <EmptySpace min="-2" pref="65" max="-2" attributes="0"/>
+                          <EmptySpace pref="53" max="32767" attributes="0"/>
                           <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
-                          <EmptySpace max="32767" attributes="0"/>
+                          <EmptySpace min="-2" pref="45" max="-2" attributes="0"/>
                           <Component id="showPlaneLabel" min="-2" max="-2" attributes="0"/>
-                      </Group>
-                      <Group type="102" alignment="0" attributes="0">
-                          <EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
-                          <Component id="symetryButton" min="-2" pref="75" max="-2" attributes="0"/>
-                          <EmptySpace max="-2" attributes="0"/>
-                          <Component id="originalModelButton" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace pref="27" max="32767" attributes="0"/>
                       </Group>
                   </Group>
-                  <EmptySpace pref="32" max="32767" attributes="0"/>
               </Group>
           </Group>
         </DimensionLayout>
@@ -226,7 +224,7 @@
         <Component class="javax.swing.JLabel" name="minCurvatio">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
@@ -237,7 +235,7 @@
         <Component class="javax.swing.JLabel" name="minCurvatio2">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
@@ -258,12 +256,12 @@
         <Component class="javax.swing.JLabel" name="minCurvatio3">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
             </Property>
-            <Property name="text" type="java.lang.String" value="Max. Relative Distance"/>
+            <Property name="text" type="java.lang.String" value="Relative Distance"/>
           </Properties>
         </Component>
         <Component class="javax.swing.JSlider" name="significantPointSlider">
@@ -280,12 +278,12 @@
         <Component class="javax.swing.JLabel" name="minCurvatio4">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
             </Property>
-            <Property name="text" type="java.lang.String" value="Min. Normal Angle Cosine"/>
+            <Property name="text" type="java.lang.String" value="Normal Angle Cosine"/>
           </Properties>
         </Component>
         <Component class="javax.swing.JSlider" name="relativeDistanceSlider">
@@ -301,12 +299,12 @@
         <Component class="javax.swing.JLabel" name="significantPointLabel">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
             </Property>
-            <Property name="text" type="java.lang.String" value="Significant Point Count"/>
+            <Property name="text" type="java.lang.String" value="Significant Points"/>
           </Properties>
         </Component>
         <Component class="javax.swing.JLabel" name="symetryButton">
@@ -314,6 +312,9 @@
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
               <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/symetryCount.png"/>
             </Property>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
           </Properties>
           <Events>
             <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="symetryButtonMouseMoved"/>
@@ -332,7 +333,7 @@
         </Component>
         <Component class="javax.swing.JTextField" name="textFieldCurvature">
           <Properties>
-            <Property name="text" type="java.lang.String" value="0.8"/>
+            <Property name="text" type="java.lang.String" value="0.5"/>
             <Property name="toolTipText" type="java.lang.String" value=""/>
           </Properties>
         </Component>
@@ -363,12 +364,13 @@
         <Component class="javax.swing.JLabel" name="minCurvatio8">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="1"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
             </Property>
             <Property name="text" type="java.lang.String" value="Averaging"/>
+            <Property name="toolTipText" type="java.lang.String" value="Average planes with highest number of votes"/>
           </Properties>
         </Component>
         <Component class="javax.swing.JLabel" name="jLabel1">
@@ -390,24 +392,30 @@
         </Component>
         <Component class="javax.swing.JLabel" name="showPlaneLabel">
           <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Arial" size="16" style="1"/>
+            </Property>
+            <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="69" green="72" red="14" type="rgb"/>
+            </Property>
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/showPlane.png"/>
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/show2.png"/>
             </Property>
+            <Property name="text" type="java.lang.String" value="Show plane"/>
+            <Property name="toolTipText" type="java.lang.String" value="Show approximate plane of symmetry"/>
             <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
               <Color id="Hand Cursor"/>
             </Property>
             <Property name="doubleBuffered" type="boolean" value="true"/>
           </Properties>
           <Events>
-            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="showPlaneLabelMouseMoved"/>
             <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="showPlaneLabelMouseClicked"/>
-            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="showPlaneLabelMouseExited"/>
           </Events>
         </Component>
         <Component class="javax.swing.JLabel" name="defaultValues">
           <Properties>
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="14" style="0"/>
+              <Font name="Arial" size="14" style="0"/>
             </Property>
             <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="69" green="72" red="14" type="rgb"/>
@@ -421,6 +429,76 @@
             <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="defaultValuesMouseClicked"/>
           </Events>
         </Component>
+        <Component class="javax.swing.JLabel" name="infoPoints">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/info.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Info "/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="infoPointsMouseClicked"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="infoMinAngleCos">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/info.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Info "/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="infoMinAngleCosMouseClicked"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="infoRelDist">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/info.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Info "/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="infoRelDistMouseClicked"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="infoNormalAngle">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/info.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Info "/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="infoNormalAngleMouseClicked"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="infoMinCurv">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/info.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Info "/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="infoMinCurvMouseClicked"/>
+          </Events>
+        </Component>
       </SubComponents>
     </Container>
   </SubComponents>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java
index a276ad3c..2a9889fe 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java
@@ -4,12 +4,10 @@ import static cz.fidentis.analyst.gui.UserInterface.frameMain;
 import cz.fidentis.analyst.mesh.core.MeshModel;
 import cz.fidentis.analyst.symmetry.Config;
 import cz.fidentis.analyst.symmetry.Plane;
-import cz.fidentis.analyst.symmetry.SymmetryCounter;
-import java.awt.Cursor;
+import cz.fidentis.analyst.symmetry.SymmetryEstimator;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.swing.ImageIcon;
-import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JSlider;
 import javax.swing.JTextField;
@@ -23,7 +21,7 @@ import javax.swing.event.ChangeEvent;
  */
 public final class SymmetryPanel extends javax.swing.JPanel {
     /**
-     * Configuration with default values 
+     * Configuration with optional parameters of the algorithm 
      */
     private Config config;
     /**
@@ -33,7 +31,7 @@ public final class SymmetryPanel extends javax.swing.JPanel {
     /**
      * Class that is responsible for computing the symmetry
      */
-    private SymmetryCounter symCounter;
+    private SymmetryEstimator symCounter;
     /**
      * Computed approximate plane of the symmetry
      */
@@ -41,13 +39,14 @@ public final class SymmetryPanel extends javax.swing.JPanel {
 
     /**
      * 
-     * @return GL Canvas
+     * @return GL canvas for displaying the model
      */
     public Canvas getCanvas() {
         return canvas;
     }
 
     /**
+     * Sets canvas for displaying the model
      * 
      * @param canvas GL Canvas
      */
@@ -71,21 +70,6 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         this.config = config;
     }
     
-    /**
-     * 
-     * @return Button for returning original model from loaded file 
-     */
-    public JLabel getOriginalModelButton() {
-        return originalModelButton;
-    }
-    
-    /**
-     * 
-     * @return Label for showing final plane of symmetry
-     */
-    public JLabel getShowPlaneLabel() {
-        return showPlaneLabel;
-    }
         
     /**
      * Sets configuration values according to text fields on panel
@@ -126,12 +110,9 @@ public final class SymmetryPanel extends javax.swing.JPanel {
     }
     
     /**
-     * Creates new form symmetryPanel
+     * Sets values of the sliders according to textFields 
      */
-    public SymmetryPanel() {
-        initComponents();
-        config = Config.getDefault();
-        
+    public void setSliders() {
         setSlider(relativeDistanceSlider, distanceTextField);
         setSlider(curavatureSlider, textFieldCurvature);
         setSlider(angleCosineSlider, textFieldMinCos);
@@ -141,25 +122,44 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         significantPointSlider.addChangeListener((ChangeEvent ce) -> {
             significantTextField.setText("" + significantPointSlider.getValue());
         });
-        originalModelButton.setVisible(false);
-        showPlaneLabel.setVisible(false);
     }
-
+    
+    /**
+     * If plane of symmtery is computed, three new buttons are shown on panel
+     * 
+     * @param isComputed true if plane is computed and shown on model otherwise false
+     */
+    public void showPlaneButtonsOnPanel(boolean isComputed) {
+        originalModelButton.setVisible(isComputed);
+        showPlaneLabel.setVisible(isComputed);
+    }
+    
+    /**
+     * Creates new form symmetryPanel
+     */
+    public SymmetryPanel() {
+        initComponents();
+        config = Config.getDefault();
+        setSliders();
+        
+        showPlaneButtonsOnPanel(false);
+    }
 
     /**
      * Calculate approxy symmetry of the model 
-     * Accuracy of the symmetry plane is influenced by configuration 
+     * Accuracy of the symmetry plane is influenced by configuration represented by config
      * 
      * @throws InterruptedException exception can be thrown beacause of progress monitor
      */
     private void countSymmetry() throws InterruptedException {
         MeshModel model = new MeshModel();
-        symCounter = new SymmetryCounter(canvas.getModel().getFacets().get(0));
-        symCounter.init();
+        canvas.changeModel(canvas.getLoadedModel());
+        symCounter = new SymmetryEstimator(canvas.getModel().getFacets().get(0), config);
         symCounter.setPanel(this);
-        finalPlane = symCounter.getAproxSymmetryPlane(config);
-        SymmetryCounter counted = symCounter.mergeWithPlane(finalPlane);
+        finalPlane = symCounter.getAproxSymmetryPlane();
+        SymmetryEstimator counted = symCounter.mergeWithPlane(finalPlane);
         model.addFacet(counted.getFacet());
+        
         this.canvas.changeModel(model);  
     }
 
@@ -198,6 +198,11 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         originalModelButton = new javax.swing.JLabel();
         showPlaneLabel = new javax.swing.JLabel();
         defaultValues = new javax.swing.JLabel();
+        infoPoints = new javax.swing.JLabel();
+        infoMinAngleCos = new javax.swing.JLabel();
+        infoRelDist = new javax.swing.JLabel();
+        infoNormalAngle = new javax.swing.JLabel();
+        infoMinCurv = new javax.swing.JLabel();
 
         symetrySpecificationPanel.setBackground(new java.awt.Color(176, 230, 226));
 
@@ -213,11 +218,11 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         angleCosineSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         angleCosineSlider.setOpaque(false);
 
-        minCurvatio.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        minCurvatio.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         minCurvatio.setForeground(new java.awt.Color(20, 114, 105));
         minCurvatio.setText("Min. Curvature Ratio");
 
-        minCurvatio2.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        minCurvatio2.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         minCurvatio2.setForeground(new java.awt.Color(20, 114, 105));
         minCurvatio2.setText("Min. Angle Cosine");
 
@@ -226,9 +231,9 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         normalAngleSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         normalAngleSlider.setOpaque(false);
 
-        minCurvatio3.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        minCurvatio3.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         minCurvatio3.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio3.setText("Max. Relative Distance");
+        minCurvatio3.setText("Relative Distance");
 
         significantPointSlider.setMajorTickSpacing(100);
         significantPointSlider.setMaximum(300);
@@ -236,20 +241,21 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         significantPointSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         significantPointSlider.setOpaque(false);
 
-        minCurvatio4.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        minCurvatio4.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         minCurvatio4.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio4.setText("Min. Normal Angle Cosine");
+        minCurvatio4.setText("Normal Angle Cosine");
 
         relativeDistanceSlider.setMaximum(5);
         relativeDistanceSlider.setSnapToTicks(true);
         relativeDistanceSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         relativeDistanceSlider.setOpaque(false);
 
-        significantPointLabel.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        significantPointLabel.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         significantPointLabel.setForeground(new java.awt.Color(20, 114, 105));
-        significantPointLabel.setText("Significant Point Count");
+        significantPointLabel.setText("Significant Points");
 
         symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/symetryCount.png"))); // NOI18N
+        symetryButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         symetryButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
             public void mouseMoved(java.awt.event.MouseEvent evt) {
                 symetryButtonMouseMoved(evt);
@@ -272,7 +278,7 @@ public final class SymmetryPanel extends javax.swing.JPanel {
             }
         });
 
-        textFieldCurvature.setText("0.8");
+        textFieldCurvature.setText("0.5");
         textFieldCurvature.setToolTipText("");
 
         textFieldMinCos.setText("0.985");
@@ -287,9 +293,10 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         significantTextField.setText("200");
         significantTextField.setToolTipText("");
 
-        minCurvatio8.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        minCurvatio8.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
         minCurvatio8.setForeground(new java.awt.Color(20, 114, 105));
         minCurvatio8.setText("Averaging");
+        minCurvatio8.setToolTipText("Average planes with highest number of votes");
 
         originalModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/originalModel.png"))); // NOI18N
         originalModelButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -307,24 +314,20 @@ public final class SymmetryPanel extends javax.swing.JPanel {
             }
         });
 
-        showPlaneLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/showPlane.png"))); // NOI18N
+        showPlaneLabel.setFont(new java.awt.Font("Arial", 1, 16)); // NOI18N
+        showPlaneLabel.setForeground(new java.awt.Color(20, 114, 105));
+        showPlaneLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/show2.png"))); // NOI18N
+        showPlaneLabel.setText("Show plane");
+        showPlaneLabel.setToolTipText("Show approximate plane of symmetry");
         showPlaneLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         showPlaneLabel.setDoubleBuffered(true);
-        showPlaneLabel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                showPlaneLabelMouseMoved(evt);
-            }
-        });
         showPlaneLabel.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseClicked(java.awt.event.MouseEvent evt) {
                 showPlaneLabelMouseClicked(evt);
             }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                showPlaneLabelMouseExited(evt);
-            }
         });
 
-        defaultValues.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
+        defaultValues.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N
         defaultValues.setForeground(new java.awt.Color(20, 114, 105));
         defaultValues.setText("Default values");
         defaultValues.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -334,141 +337,223 @@ public final class SymmetryPanel extends javax.swing.JPanel {
             }
         });
 
+        infoPoints.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/info.png"))); // NOI18N
+        infoPoints.setToolTipText("Info ");
+        infoPoints.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        infoPoints.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                infoPointsMouseClicked(evt);
+            }
+        });
+
+        infoMinAngleCos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/info.png"))); // NOI18N
+        infoMinAngleCos.setToolTipText("Info ");
+        infoMinAngleCos.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        infoMinAngleCos.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                infoMinAngleCosMouseClicked(evt);
+            }
+        });
+
+        infoRelDist.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/info.png"))); // NOI18N
+        infoRelDist.setToolTipText("Info ");
+        infoRelDist.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        infoRelDist.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                infoRelDistMouseClicked(evt);
+            }
+        });
+
+        infoNormalAngle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/info.png"))); // NOI18N
+        infoNormalAngle.setToolTipText("Info ");
+        infoNormalAngle.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        infoNormalAngle.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                infoNormalAngleMouseClicked(evt);
+            }
+        });
+
+        infoMinCurv.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/info.png"))); // NOI18N
+        infoMinCurv.setToolTipText("Info ");
+        infoMinCurv.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        infoMinCurv.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                infoMinCurvMouseClicked(evt);
+            }
+        });
+
         javax.swing.GroupLayout symetrySpecificationPanelLayout = new javax.swing.GroupLayout(symetrySpecificationPanel);
         symetrySpecificationPanel.setLayout(symetrySpecificationPanelLayout);
         symetrySpecificationPanelLayout.setHorizontalGroup(
             symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                .addGap(17, 17, 17)
-                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
                         .addGap(0, 0, Short.MAX_VALUE)
-                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                        .addComponent(defaultValues))
+                    .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
+                        .addGap(17, 17, 17)
+                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                             .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addComponent(normalAngleSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                .addComponent(normalTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))
+                                .addGap(154, 154, 154)
+                                .addComponent(jLabel1))
                             .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addComponent(significantPointSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addComponent(textFieldMinCos, javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)
-                                    .addComponent(textFieldCurvature)
-                                    .addComponent(distanceTextField)
-                                    .addComponent(significantTextField))))
-                        .addGap(63, 63, 63))
+                                .addComponent(showPlaneLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                                .addComponent(originalModelButton, javax.swing.GroupLayout.PREFERRED_SIZE, 181, javax.swing.GroupLayout.PREFERRED_SIZE))))
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
+                        .addContainerGap()
                         .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addComponent(minCurvatio, javax.swing.GroupLayout.Alignment.TRAILING)
-                            .addComponent(minCurvatio2, javax.swing.GroupLayout.Alignment.TRAILING)
-                            .addComponent(minCurvatio4, javax.swing.GroupLayout.Alignment.TRAILING)
-                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addComponent(significantPointLabel)
-                                .addComponent(minCurvatio3))
-                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(jLabel1)
-                                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                            .addGap(80, 80, 80)
-                                            .addComponent(minCurvatio8)
-                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                            .addComponent(averagingCheckBox)))
-                                    .addComponent(showPlaneLabel))
-                                .addGap(9, 9, 9)))
-                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createSequentialGroup()
+                            .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
+                                .addGap(10, 10, 10)
+                                .addComponent(minCurvatio8)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                                .addComponent(averagingCheckBox)
                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                    .addComponent(symetryButton, javax.swing.GroupLayout.Alignment.TRAILING)
-                                    .addComponent(originalModelButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 181, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                    .addComponent(defaultValues, javax.swing.GroupLayout.Alignment.TRAILING))
-                                .addGap(63, 63, 63))
+                                .addComponent(symetryButton))
                             .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addGap(56, 56, 56)
+                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addComponent(infoMinAngleCos)
+                                    .addComponent(infoRelDist)
+                                    .addComponent(infoNormalAngle)
+                                    .addComponent(infoPoints)
+                                    .addComponent(infoMinCurv))
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addComponent(minCurvatio4, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE)
+                                    .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
+                                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                            .addComponent(minCurvatio)
+                                            .addComponent(minCurvatio3)
+                                            .addComponent(minCurvatio2)
+                                            .addComponent(significantPointLabel))
+                                        .addGap(0, 0, Short.MAX_VALUE)))
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                 .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                                    .addComponent(angleCosineSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                        .addComponent(curavatureSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                                .addGap(0, 122, Short.MAX_VALUE))))))
+                                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                                        .addComponent(curavatureSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+                                        .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+                                        .addComponent(significantPointSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                        .addComponent(angleCosineSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE))
+                                    .addComponent(normalAngleSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE))
+                                .addGap(18, 18, 18)
+                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                                    .addComponent(distanceTextField)
+                                    .addComponent(normalTextField)
+                                    .addComponent(significantTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                    .addComponent(textFieldCurvature, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                    .addComponent(textFieldMinCos, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))))))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         symetrySpecificationPanelLayout.setVerticalGroup(
             symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                .addGap(72, 72, 72)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                        .addComponent(infoPoints)
+                        .addComponent(significantPointLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                        .addComponent(significantTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addComponent(significantPointSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                 .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(minCurvatio, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addComponent(minCurvatio, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addComponent(textFieldCurvature, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                            .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addGap(4, 4, 4)
-                                .addComponent(curavatureSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                        .addGap(36, 36, 36)
-                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addComponent(angleCosineSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                            .addComponent(minCurvatio2, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                    .addComponent(textFieldMinCos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addComponent(textFieldCurvature, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(4, 4, 4))
+                    .addComponent(infoMinCurv)
+                    .addComponent(curavatureSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(infoMinAngleCos, javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(minCurvatio2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(textFieldMinCos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(angleCosineSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                 .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                        .addGap(18, 18, 18)
-                        .addComponent(minCurvatio4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                        .addGap(22, 22, 22))
+                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                            .addComponent(normalAngleSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(normalTextField))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                        .addComponent(distanceTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                        .addGap(34, 34, 34)
                         .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addComponent(normalTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                            .addComponent(normalAngleSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)))
-                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                    .addComponent(minCurvatio3, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                        .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
-                        .addComponent(distanceTextField, javax.swing.GroupLayout.Alignment.TRAILING)))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)
-                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(significantTextField, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(significantPointLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(significantPointSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addGap(14, 14, 14)
+                            .addComponent(minCurvatio4, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(infoNormalAngle))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(infoRelDist, javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addComponent(minCurvatio3, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                        .addGap(13, 13, 13)))
                 .addComponent(defaultValues)
-                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                .addGap(17, 17, 17)
+                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
+                        .addComponent(symetryButton, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(originalModelButton)
+                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                     .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
                         .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                             .addComponent(averagingCheckBox)
                             .addComponent(minCurvatio8, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
-                        .addGap(65, 65, 65)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
                         .addComponent(jLabel1)
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                        .addComponent(showPlaneLabel))
-                    .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                        .addGap(3, 3, 3)
-                        .addComponent(symetryButton, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                        .addComponent(originalModelButton)))
-                .addContainerGap(32, Short.MAX_VALUE))
+                        .addGap(45, 45, 45)
+                        .addComponent(showPlaneLabel)
+                        .addContainerGap(27, Short.MAX_VALUE))))
         );
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
         this.setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 580, Short.MAX_VALUE)
-            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                .addGroup(layout.createSequentialGroup()
-                    .addComponent(symetrySpecificationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addGap(0, 0, Short.MAX_VALUE)))
+            .addComponent(symetrySpecificationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 554, Short.MAX_VALUE)
-            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                .addComponent(symetrySpecificationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+            .addComponent(symetrySpecificationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
     }// </editor-fold>//GEN-END:initComponents
 
+    /**
+     * 
+     * @param evt Final computed plane is shown to user
+     */
+    private void showPlaneLabelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_showPlaneLabelMouseClicked
+        JOptionPane.showMessageDialog(frameMain, "Approximate plane of symmetry:  \n" + finalPlane.a + "\n" + finalPlane.b + "\n" + finalPlane.c + "\n" +
+            finalPlane.d + "\n", "Final plane.", 0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/showPlanePane.png")));
+    }//GEN-LAST:event_showPlaneLabelMouseClicked
+
+    /**
+     * 
+     * @param evt Changes button
+     */
+    private void originalModelButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseExited
+        originalModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/originalModel.png")));
+    }//GEN-LAST:event_originalModelButtonMouseExited
+
+    /**
+     * 
+     * @param evt Original model (without plane) is displayed
+     */
+    private void originalModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseClicked
+        canvas.changeModel(canvas.getLoadedModel());
+        showPlaneButtonsOnPanel(false);
+    }//GEN-LAST:event_originalModelButtonMouseClicked
+
+    /**
+     * 
+     * @param evt Changes button
+     */
+    private void originalModelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseMoved
+        originalModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/originalModelPressed.png")));
+    }//GEN-LAST:event_originalModelButtonMouseMoved
+
     /**
      * 
      * @param evt Decides if averaging is ON or OFF
@@ -481,6 +566,10 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         }
     }//GEN-LAST:event_averagingCheckBoxMouseClicked
 
+    /**
+     * 
+     * @param evt Changes button
+     */
     private void symetryButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryButtonMouseExited
         symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/symetryCount.png")));
     }//GEN-LAST:event_symetryButtonMouseExited
@@ -493,15 +582,14 @@ public final class SymmetryPanel extends javax.swing.JPanel {
         setConfigParams();
         if (canvas.getModel().getFacets().isEmpty()){
             JOptionPane.showMessageDialog(frameMain, "You have to load the model.", "Model not loaded",
-                    0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/notLoadedModel.png")));
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/notLoadedModel.png")));
         } else {
             try {
                 countSymmetry();
             } catch (InterruptedException ex) {
                 Logger.getLogger(SymmetryPanel.class.getName()).log(Level.SEVERE, null, ex);
             }
-            originalModelButton.setVisible(true);
-            showPlaneLabel.setVisible(true);
+            showPlaneButtonsOnPanel(true);
         }
     }//GEN-LAST:event_symetryButtonMouseClicked
 
@@ -511,69 +599,98 @@ public final class SymmetryPanel extends javax.swing.JPanel {
     */
     private void symetryButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryButtonMouseMoved
         symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/symetryCountClicked.png")));
-        symetryButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
     }//GEN-LAST:event_symetryButtonMouseMoved
 
     /**
      * 
-     * @param Changes button
+     * @param evt configuration is set to deafult values
      */
-    private void originalModelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseMoved
-        originalModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/originalModelPressed.png")));
-    }//GEN-LAST:event_originalModelButtonMouseMoved
-
-    /**
-     * 
-     * @param evt Changes button
-     */
-    private void originalModelButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseExited
-        originalModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/originalModel.png")));
-    }//GEN-LAST:event_originalModelButtonMouseExited
+    private void defaultValuesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_defaultValuesMouseClicked
+        config = Config.getDefault();
+        setTextFieldsDueToConfig();
+        setSliders();
+    }//GEN-LAST:event_defaultValuesMouseClicked
 
     /**
+     * Shows details about minimum curv ratio parameter
      * 
-     * @param evt Original model (without plane) is displayed
+     * @param evt 
      */
-    private void originalModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_originalModelButtonMouseClicked
-        canvas.changeModel(canvas.getLoadedModel());
-        originalModelButton.setVisible(false);
-        showPlaneLabel.setVisible(false);
-    }//GEN-LAST:event_originalModelButtonMouseClicked
+    private void infoMinCurvMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_infoMinCurvMouseClicked
+        JOptionPane.showMessageDialog(frameMain,
+                "Entered number represents how similar the curvature in two vertices must be\n"
+                        + "to take into account these vertices while counting the plane of approximate symmetry.\n"
+                        + "The higher the number is the more similar they must be.\n\n"
+                        
+                        + "Higher number → fewer pairs of vertices satisfy the criterion → shorter calculation, possibly less accurate result.\n"
+                        + "Lower number → more pairs of vertices satisfy the criterion → longer calculation, possibly more accurate result.",
+                "Minimum curvature ratio",
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/curvature.png")));
+    }//GEN-LAST:event_infoMinCurvMouseClicked
 
     /**
+     * Shows details about maximum relative distance parameter
      * 
-     * @param evt Changes button
-     */
-    private void showPlaneLabelMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_showPlaneLabelMouseMoved
-        showPlaneLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/showPlanePressed.png")));
-    }//GEN-LAST:event_showPlaneLabelMouseMoved
+     * @param evt 
+    */
+    private void infoRelDistMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_infoRelDistMouseClicked
+        JOptionPane.showMessageDialog(frameMain,
+                "Entered number represents how far middle point of two vertices can be from candidate plane of symmetry\n"
+                        + "to give this plane vote. Plane with highest number of votes is plane of approximate symmetry.\n\n"
+                        
+                        + "Higher number → more pairs of vertices satisfy the criterion → longer calculation, possibly more accurate result.\n"
+                        + "Lower number → fewer pairs of vertices satisfy the criterion → shorter calculation, possibly less accurate result.",
+                "Maximum relative distance from plane",
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/distance.png")));
+    }//GEN-LAST:event_infoRelDistMouseClicked
 
     /**
+     * Shows details about significant points parameter
      * 
-     * @param evt Final computed plane is shown to user
+     * @param evt 
      */
-    private void showPlaneLabelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_showPlaneLabelMouseClicked
-        JOptionPane.showMessageDialog(frameMain, "Approximate plane of symmetry:  \n" + finalPlane.a + "\n" + finalPlane.b + "\n" + finalPlane.c + "\n" +
-            finalPlane.d + "\n", "Final plane.", 0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/showPlanePane.png")));
-    }//GEN-LAST:event_showPlaneLabelMouseClicked
+    private void infoPointsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_infoPointsMouseClicked
+        JOptionPane.showMessageDialog(frameMain, 
+                "Entered number represents amount of points of the mesh that are taken into account\n"
+                        + "while counting the plane of approximate symmetry.\n\n"
+                        
+                        + "Higher number → longer calculation, possibly more accurate result.\n"
+                        + "Lower number → shorter calculation, possibly less accurate result.", 
+                "Significant points",
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/points.png")));
+    }//GEN-LAST:event_infoPointsMouseClicked
 
     /**
+     * Shows details about minimum angle cosine parameter
      * 
-     * @param evt Changes button
+     * @param evt 
      */
-    private void showPlaneLabelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_showPlaneLabelMouseExited
-        showPlaneLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/showPlane.png")));
-    }//GEN-LAST:event_showPlaneLabelMouseExited
+    private void infoMinAngleCosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_infoMinAngleCosMouseClicked
+        JOptionPane.showMessageDialog(frameMain,
+                "Entered number represents how large the angle between normal vector of candidate plane and the vector\n"
+                        + "of two vertices can be to take into account these vertices while counting the approximate symmetry.\n\n"
+                        
+                        + "Higher number → fewer pairs of vertices satisfy the criterion → shorter calculation, possibly less accurate result.\n"
+                        + "Lower number → more pairs of vertices satisfy the criterion → longer calculation, possibly more accurate result.",
+                "Minimum angle",
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/angle.png")));
+    }//GEN-LAST:event_infoMinAngleCosMouseClicked
 
     /**
+     * Shows details about minimum normal angle cosine parameter
      * 
-     * @param evt values of configuration back to deafult 
+     * @param evt 
      */
-    private void defaultValuesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_defaultValuesMouseClicked
-        config = Config.getDefault();
-        setTextFieldsDueToConfig();
-    }//GEN-LAST:event_defaultValuesMouseClicked
-    
+    private void infoNormalAngleMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_infoNormalAngleMouseClicked
+        JOptionPane.showMessageDialog(frameMain,
+                "Entered number represents how large the angle between normal vector of candidate plane and vector\n"
+                        + "from subtraction of normal vectors of two vertices can be to take into account these vertices while counting the approximate symmetry.\n\n"
+                        
+                        + "Higher number → fewer pairs of vertices satisfy the criterion → shorter calculation, possibly less accurate result.\n"
+                        + "Lower number → more pairs of vertices satisfy the criterion → longer calculation, possibly more accurate result.",
+                "Minimum normal angle",
+                0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/angle.png")));
+    }//GEN-LAST:event_infoNormalAngleMouseClicked
 
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
@@ -582,6 +699,11 @@ public final class SymmetryPanel extends javax.swing.JPanel {
     private javax.swing.JSlider curavatureSlider;
     private javax.swing.JLabel defaultValues;
     private javax.swing.JTextField distanceTextField;
+    private javax.swing.JLabel infoMinAngleCos;
+    private javax.swing.JLabel infoMinCurv;
+    private javax.swing.JLabel infoNormalAngle;
+    private javax.swing.JLabel infoPoints;
+    private javax.swing.JLabel infoRelDist;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel minCurvatio;
     private javax.swing.JLabel minCurvatio2;
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.form b/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.form
index eb13ba97..7961bb6d 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.form
@@ -3,10 +3,11 @@
 <Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
   <Properties>
     <Property name="defaultCloseOperation" type="int" value="3"/>
-    <Property name="alwaysOnTop" type="boolean" value="true"/>
-    <Property name="autoRequestFocus" type="boolean" value="false"/>
     <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-      <Color blue="69" green="72" red="14" type="rgb"/>
+      <Color blue="a3" green="ae" red="0" type="rgb"/>
+    </Property>
+    <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+      <Color id="Default Cursor"/>
     </Property>
     <Property name="locationByPlatform" type="boolean" value="true"/>
   </Properties>
@@ -30,7 +31,7 @@
     <DimensionLayout dim="0">
       <Group type="103" groupAlignment="0" attributes="0">
           <Component id="topPanel" max="32767" attributes="0"/>
-          <Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
+          <Component id="jPanel1" alignment="1" max="32767" attributes="0"/>
           <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
               <Component id="jPanel2" alignment="0" max="32767" attributes="0"/>
           </Group>
@@ -39,52 +40,159 @@
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
           <Group type="102" alignment="0" attributes="0">
-              <Component id="jPanel1" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="topPanel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace pref="847" max="32767" attributes="0"/>
+              <Component id="jPanel1" min="-2" pref="52" max="-2" attributes="0"/>
+              <EmptySpace type="unrelated" max="-2" attributes="0"/>
+              <Component id="topPanel" min="-2" pref="239" max="-2" attributes="0"/>
+              <EmptySpace min="0" pref="565" max="32767" attributes="0"/>
           </Group>
           <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="1" attributes="0">
-                  <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                  <Component id="jPanel2" min="-2" max="-2" attributes="0"/>
-              </Group>
+              <Component id="jPanel2" alignment="1" max="32767" attributes="0"/>
           </Group>
       </Group>
     </DimensionLayout>
   </Layout>
   <SubComponents>
+    <Container class="javax.swing.JPanel" name="jPanel1">
+      <Properties>
+        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+          <Color blue="69" green="72" red="14" type="rgb"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[1200, 77]"/>
+        </Property>
+      </Properties>
+      <Events>
+        <EventHandler event="mouseDragged" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="jPanel1MouseDragged"/>
+        <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jPanel1MousePressed"/>
+      </Events>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="homeButton" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="newProject" min="-2" pref="149" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="wiredModelButton" min="-2" pref="134" max="-2" attributes="0"/>
+                  <EmptySpace max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Component id="wiredModelButton" alignment="0" max="32767" attributes="0"/>
+              <Component id="newProject" max="32767" attributes="0"/>
+              <Component id="homeButton" alignment="0" pref="52" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="newProject">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="69" green="72" red="14" type="rgb"/>
+            </Property>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Neue Haas Unica Pro" size="18" style="0"/>
+            </Property>
+            <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="ff" green="ff" red="ff" type="rgb"/>
+            </Property>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/newP.png"/>
+            </Property>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+            <Property name="opaque" type="boolean" value="true"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="newProjectMouseMoved"/>
+            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="newProjectMouseExited"/>
+            <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="newProjectMousePressed"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="wiredModelButton">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="69" green="72" red="14" type="rgb"/>
+            </Property>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/wireframe2.png"/>
+            </Property>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+            <Property name="opaque" type="boolean" value="true"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="wiredModelButtonMouseClicked"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="homeButton">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="69" green="72" red="14" type="rgb"/>
+            </Property>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/home.png"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" value="Home"/>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+            <Property name="opaque" type="boolean" value="true"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseMoved"/>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseClicked"/>
+            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseExited"/>
+          </Events>
+        </Component>
+      </SubComponents>
+    </Container>
     <Container class="javax.swing.JPanel" name="topPanel">
       <Properties>
         <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
           <Color blue="69" green="72" red="14" type="rgb"/>
         </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[1200, 266]"/>
+        </Property>
       </Properties>
+      <AccessibilityProperties>
+        <Property name="AccessibleContext.accessibleName" type="java.lang.String" value=""/>
+      </AccessibilityProperties>
 
       <Layout>
         <DimensionLayout dim="0">
           <Group type="103" groupAlignment="0" attributes="0">
               <Group type="102" alignment="0" attributes="0">
-                  <EmptySpace pref="272" max="32767" attributes="0"/>
+                  <EmptySpace pref="99" max="32767" attributes="0"/>
                   <Component id="compareTwo" min="-2" max="-2" attributes="0"/>
                   <EmptySpace min="-2" pref="105" max="-2" attributes="0"/>
                   <Component id="compareDB" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace min="-2" pref="86" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="94" max="-2" attributes="0"/>
                   <Component id="batchProcessing" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace min="-2" pref="97" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="94" max="-2" attributes="0"/>
                   <Component id="symetryEstimator" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace pref="272" max="32767" attributes="0"/>
+                  <EmptySpace pref="98" max="32767" attributes="0"/>
               </Group>
           </Group>
         </DimensionLayout>
         <DimensionLayout dim="1">
           <Group type="103" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="1" attributes="0">
-                  <EmptySpace pref="94" max="32767" attributes="0"/>
-                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+              <Group type="102" attributes="0">
+                  <EmptySpace min="-2" pref="52" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
                       <Component id="symetryEstimator" alignment="1" max="32767" attributes="0"/>
                       <Component id="compareDB" alignment="1" max="32767" attributes="0"/>
-                      <Component id="compareTwo" alignment="1" min="-2" max="-2" attributes="0"/>
+                      <Group type="102" alignment="1" attributes="0">
+                          <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                          <Component id="compareTwo" min="-2" max="-2" attributes="0"/>
+                      </Group>
                       <Component id="batchProcessing" alignment="1" max="32767" attributes="0"/>
                   </Group>
               </Group>
@@ -107,16 +215,17 @@
               <Group type="103" groupAlignment="0" attributes="0">
                   <Group type="102" alignment="0" attributes="0">
                       <EmptySpace max="-2" attributes="0"/>
-                      <Component id="jLabel1" pref="154" max="32767" attributes="0"/>
+                      <Component id="jLabel1" max="32767" attributes="0"/>
                       <EmptySpace max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <Component id="jLabel1" pref="152" max="32767" attributes="0"/>
-                      <EmptySpace max="-2" attributes="0"/>
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="30" max="-2" attributes="0"/>
+                      <Component id="jLabel1" max="32767" attributes="0"/>
+                      <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
@@ -148,25 +257,21 @@
           <Layout>
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Component id="jLabel2" alignment="1" pref="192" max="32767" attributes="0"/>
+                  <Component id="jLabel3" alignment="1" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace max="-2" attributes="0"/>
-                      <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace max="32767" attributes="0"/>
-                  </Group>
+                  <Component id="jLabel3" alignment="1" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
           </Layout>
           <SubComponents>
-            <Component class="javax.swing.JLabel" name="jLabel2">
+            <Component class="javax.swing.JLabel" name="jLabel3">
               <Properties>
                 <Property name="horizontalAlignment" type="int" value="0"/>
                 <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-                  <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"/>
+                  <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/batchProcessingStart.png"/>
                 </Property>
                 <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
                   <Color id="Default Cursor"/>
@@ -188,28 +293,27 @@
           <Layout>
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace max="-2" attributes="0"/>
-                      <Component id="jLabel3" max="32767" attributes="0"/>
-                      <EmptySpace max="-2" attributes="0"/>
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
+                      <Component id="jLabel2" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <Component id="jLabel3" max="32767" attributes="0"/>
+                  <Group type="102" alignment="1" attributes="0">
                       <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel2" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
           </Layout>
           <SubComponents>
-            <Component class="javax.swing.JLabel" name="jLabel3">
+            <Component class="javax.swing.JLabel" name="jLabel2">
               <Properties>
                 <Property name="horizontalAlignment" type="int" value="0"/>
                 <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-                  <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/batchProcessingStart.png"/>
+                  <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"/>
                 </Property>
                 <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
                   <Color id="Default Cursor"/>
@@ -234,18 +338,19 @@
           <Layout>
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
+                  <Group type="102" alignment="1" attributes="0">
                       <EmptySpace max="-2" attributes="0"/>
                       <Component id="jLabel4" max="32767" attributes="0"/>
-                      <EmptySpace max="32767" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
                   <Group type="102" alignment="1" attributes="0">
-                      <Component id="jLabel4" max="32767" attributes="0"/>
-                      <EmptySpace max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="jLabel4" min="-2" pref="137" max="-2" attributes="0"/>
+                      <EmptySpace min="-2" pref="36" max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
@@ -271,153 +376,18 @@
         </Container>
       </SubComponents>
     </Container>
-    <Container class="javax.swing.JPanel" name="jPanel1">
+    <Container class="javax.swing.JPanel" name="jPanel2">
       <Properties>
         <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-          <Color blue="69" green="72" red="14" type="rgb"/>
+          <Color blue="a3" green="ae" red="0" type="rgb"/>
+        </Property>
+        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+          <Font name="Arial" size="13" style="1"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+          <Connection component="Form" name="preferredSize" type="property"/>
         </Property>
       </Properties>
-      <Events>
-        <EventHandler event="mouseDragged" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="jPanel1MouseDragged"/>
-        <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jPanel1MousePressed"/>
-      </Events>
-
-      <Layout>
-        <DimensionLayout dim="0">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="0" attributes="0">
-                  <EmptySpace max="-2" attributes="0"/>
-                  <Component id="homeButton" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace max="-2" attributes="0"/>
-                  <Component id="newProject" min="-2" pref="198" max="-2" attributes="0"/>
-                  <EmptySpace max="-2" attributes="0"/>
-                  <Component id="wiredModelButton" min="-2" pref="187" max="-2" attributes="0"/>
-                  <EmptySpace max="32767" attributes="0"/>
-                  <Component id="minimize" min="-2" max="-2" attributes="0"/>
-                  <EmptySpace max="-2" attributes="0"/>
-                  <Component id="close" min="-2" pref="46" max="-2" attributes="0"/>
-                  <EmptySpace max="-2" attributes="0"/>
-              </Group>
-          </Group>
-        </DimensionLayout>
-        <DimensionLayout dim="1">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <Component id="homeButton" alignment="1" max="32767" attributes="0"/>
-              <Group type="102" alignment="1" attributes="0">
-                  <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                      <Component id="newProject" max="32767" attributes="0"/>
-                      <Component id="close" max="32767" attributes="0"/>
-                      <Component id="wiredModelButton" pref="77" max="32767" attributes="0"/>
-                      <Component id="minimize" max="32767" attributes="0"/>
-                  </Group>
-              </Group>
-          </Group>
-        </DimensionLayout>
-      </Layout>
-      <SubComponents>
-        <Component class="javax.swing.JLabel" name="newProject">
-          <Properties>
-            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="69" green="72" red="14" type="rgb"/>
-            </Property>
-            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-              <Font name="Neue Haas Unica Pro" size="18" style="0"/>
-            </Property>
-            <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="ff" green="ff" red="ff" type="rgb"/>
-            </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/new_project.png"/>
-            </Property>
-            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-              <Color id="Hand Cursor"/>
-            </Property>
-            <Property name="opaque" type="boolean" value="true"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="newProjectMouseMoved"/>
-            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="newProjectMouseExited"/>
-            <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="newProjectMousePressed"/>
-          </Events>
-        </Component>
-        <Component class="javax.swing.JLabel" name="close">
-          <Properties>
-            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="69" green="72" red="14" type="rgb"/>
-            </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/close.png"/>
-            </Property>
-            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-              <Color id="Hand Cursor"/>
-            </Property>
-            <Property name="opaque" type="boolean" value="true"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="closeMouseMoved"/>
-            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="closeMouseExited"/>
-            <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="closeMousePressed"/>
-          </Events>
-        </Component>
-        <Component class="javax.swing.JLabel" name="wiredModelButton">
-          <Properties>
-            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="69" green="72" red="14" type="rgb"/>
-            </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/wireframe.png"/>
-            </Property>
-            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-              <Color id="Hand Cursor"/>
-            </Property>
-            <Property name="opaque" type="boolean" value="true"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="wiredModelButtonMouseClicked"/>
-          </Events>
-        </Component>
-        <Component class="javax.swing.JLabel" name="homeButton">
-          <Properties>
-            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="69" green="72" red="14" type="rgb"/>
-            </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/home.png"/>
-            </Property>
-            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-              <Color id="Hand Cursor"/>
-            </Property>
-            <Property name="opaque" type="boolean" value="true"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseMoved"/>
-            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseClicked"/>
-            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="homeButtonMouseExited"/>
-          </Events>
-        </Component>
-        <Component class="javax.swing.JLabel" name="minimize">
-          <Properties>
-            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-              <Color blue="69" green="72" red="14" type="rgb"/>
-            </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/minimize.png"/>
-            </Property>
-            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-              <Color id="Hand Cursor"/>
-            </Property>
-            <Property name="opaque" type="boolean" value="true"/>
-          </Properties>
-          <Events>
-            <EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="minimizeMouseMoved"/>
-            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="minimizeMouseClicked"/>
-            <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="minimizeMouseExited"/>
-          </Events>
-        </Component>
-      </SubComponents>
-    </Container>
-    <Container class="javax.swing.JPanel" name="jPanel2">
 
       <Layout class="org.netbeans.modules.form.compat2.layouts.DesignCardLayout"/>
       <SubComponents>
@@ -427,6 +397,13 @@
               <Color blue="a3" green="ae" red="0" type="rgb"/>
             </Property>
             <Property name="toolTipText" type="java.lang.String" value=""/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[0, 0]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[1200, 800]"/>
+            </Property>
+            <Property name="requestFocusEnabled" type="boolean" value="false"/>
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignCardLayout" value="org.netbeans.modules.form.compat2.layouts.DesignCardLayout$CardConstraintsDescription">
@@ -438,25 +415,26 @@
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
                   <Group type="102" attributes="0">
-                      <EmptySpace max="-2" attributes="0"/>
-                      <Component id="jPanel3" max="32767" attributes="0"/>
-                      <EmptySpace max="-2" attributes="0"/>
-                  </Group>
-                  <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace min="-2" pref="643" max="-2" attributes="0"/>
-                      <Component id="logo" min="-2" pref="218" max="-2" attributes="0"/>
-                      <EmptySpace max="32767" attributes="0"/>
+                      <EmptySpace pref="81" max="32767" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jPanel3" min="-2" max="-2" attributes="0"/>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="logo" min="-2" pref="218" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="400" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace pref="81" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
                   <Group type="102" attributes="0">
-                      <EmptySpace min="-2" pref="205" max="-2" attributes="0"/>
+                      <EmptySpace pref="133" max="32767" attributes="0"/>
                       <Component id="logo" min="-2" pref="124" max="-2" attributes="0"/>
-                      <EmptySpace min="-2" pref="128" max="-2" attributes="0"/>
+                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
                       <Component id="jPanel3" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace min="-2" pref="200" max="-2" attributes="0"/>
+                      <EmptySpace pref="136" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
@@ -485,21 +463,24 @@
                 <DimensionLayout dim="0">
                   <Group type="103" groupAlignment="0" attributes="0">
                       <Group type="102" alignment="0" attributes="0">
-                          <EmptySpace min="-2" pref="169" max="-2" attributes="0"/>
-                          <Component id="viewerButton" min="-2" max="-2" attributes="0"/>
-                          <EmptySpace pref="237" max="32767" attributes="0"/>
-                          <Component id="jLabel6" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace pref="17" max="32767" attributes="0"/>
+                          <Component id="viewerButton" min="-2" pref="323" max="-2" attributes="0"/>
+                          <EmptySpace type="separate" max="-2" attributes="0"/>
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Component id="compareTwoMain" alignment="1" min="-2" max="-2" attributes="0"/>
+                              <Component id="compareTwoMain1" alignment="1" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <EmptySpace min="-2" max="-2" attributes="0"/>
                           <Group type="103" groupAlignment="0" attributes="0">
                               <Group type="102" attributes="0">
-                                  <EmptySpace min="-2" pref="135" max="-2" attributes="0"/>
-                                  <Component id="compareTwoMain" min="-2" max="-2" attributes="0"/>
+                                  <Component id="JLabel8" max="32767" attributes="0"/>
+                                  <EmptySpace min="-2" pref="62" max="-2" attributes="0"/>
                               </Group>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <EmptySpace min="-2" pref="130" max="-2" attributes="0"/>
-                                  <Component id="compareTwoMain1" min="-2" max="-2" attributes="0"/>
+                              <Group type="102" attributes="0">
+                                  <Component id="JLabel9" min="-2" pref="196" max="-2" attributes="0"/>
+                                  <EmptySpace max="32767" attributes="0"/>
                               </Group>
                           </Group>
-                          <EmptySpace min="-2" pref="81" max="-2" attributes="0"/>
                           <Group type="103" groupAlignment="0" attributes="0">
                               <Component id="batchMain" min="-2" max="-2" attributes="0"/>
                               <Group type="102" attributes="0">
@@ -507,34 +488,43 @@
                                   <Component id="symetryMain" min="-2" max="-2" attributes="0"/>
                               </Group>
                           </Group>
-                          <EmptySpace min="-2" pref="170" max="-2" attributes="0"/>
+                          <EmptySpace pref="42" max="32767" attributes="0"/>
                       </Group>
                   </Group>
                 </DimensionLayout>
                 <DimensionLayout dim="1">
                   <Group type="103" groupAlignment="0" attributes="0">
-                      <Group type="102" alignment="1" attributes="0">
-                          <EmptySpace min="-2" pref="27" max="-2" attributes="0"/>
+                      <Group type="102" attributes="0">
                           <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="jLabel6" alignment="0" max="32767" attributes="0"/>
-                              <Group type="102" alignment="0" attributes="0">
+                              <Group type="102" alignment="1" attributes="0">
+                                  <EmptySpace max="-2" attributes="0"/>
                                   <Group type="103" groupAlignment="1" attributes="0">
-                                      <Component id="compareTwoMain" min="-2" max="-2" attributes="0"/>
-                                      <Component id="batchMain" min="-2" max="-2" attributes="0"/>
+                                      <Group type="103" alignment="1" groupAlignment="0" attributes="0">
+                                          <Component id="JLabel8" min="-2" pref="142" max="-2" attributes="0"/>
+                                          <Component id="compareTwoMain" min="-2" max="-2" attributes="0"/>
+                                      </Group>
+                                      <Group type="102" alignment="1" attributes="0">
+                                          <Component id="batchMain" min="-2" pref="173" max="-2" attributes="0"/>
+                                          <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
+                                      </Group>
                                   </Group>
-                                  <EmptySpace max="32767" attributes="0"/>
                                   <Group type="103" groupAlignment="0" attributes="0">
                                       <Component id="compareTwoMain1" alignment="1" min="-2" max="-2" attributes="0"/>
                                       <Component id="symetryMain" alignment="1" min="-2" max="-2" attributes="0"/>
                                   </Group>
                               </Group>
+                              <Group type="102" alignment="0" attributes="0">
+                                  <EmptySpace min="-2" pref="296" max="-2" attributes="0"/>
+                                  <Component id="JLabel9" max="32767" attributes="0"/>
+                                  <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+                              </Group>
                           </Group>
                           <EmptySpace max="-2" attributes="0"/>
                       </Group>
                       <Group type="102" alignment="1" attributes="0">
-                          <EmptySpace max="32767" attributes="0"/>
+                          <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
                           <Component id="viewerButton" min="-2" max="-2" attributes="0"/>
-                          <EmptySpace min="-2" pref="70" max="-2" attributes="0"/>
+                          <EmptySpace min="-2" pref="41" max="-2" attributes="0"/>
                       </Group>
                   </Group>
                 </DimensionLayout>
@@ -550,31 +540,15 @@
                   <Layout>
                     <DimensionLayout dim="0">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="0" attributes="0">
-                              <EmptySpace min="-2" pref="15" max="-2" attributes="0"/>
-                              <Component id="JLabel8" max="32767" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                          </Group>
+                          <EmptySpace min="0" pref="177" max="32767" attributes="0"/>
                       </Group>
                     </DimensionLayout>
                     <DimensionLayout dim="1">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace min="0" pref="28" max="32767" attributes="0"/>
-                              <Component id="JLabel8" min="-2" pref="142" max="-2" attributes="0"/>
-                          </Group>
+                          <EmptySpace min="0" pref="170" max="32767" attributes="0"/>
                       </Group>
                     </DimensionLayout>
                   </Layout>
-                  <SubComponents>
-                    <Component class="javax.swing.JLabel" name="JLabel8">
-                      <Properties>
-                        <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-                          <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/compareTwoStart.png"/>
-                        </Property>
-                      </Properties>
-                    </Component>
-                  </SubComponents>
                 </Container>
                 <Container class="javax.swing.JPanel" name="compareTwoMain1">
                   <Properties>
@@ -586,34 +560,15 @@
                   <Layout>
                     <DimensionLayout dim="0">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace max="32767" attributes="0"/>
-                              <Component id="JLabel9" min="-2" pref="196" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                          </Group>
+                          <EmptySpace min="0" pref="220" max="32767" attributes="0"/>
                       </Group>
                     </DimensionLayout>
                     <DimensionLayout dim="1">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="JLabel9" pref="156" max="32767" attributes="0"/>
-                          </Group>
+                          <EmptySpace min="0" pref="169" max="32767" attributes="0"/>
                       </Group>
                     </DimensionLayout>
                   </Layout>
-                  <SubComponents>
-                    <Component class="javax.swing.JLabel" name="JLabel9">
-                      <Properties>
-                        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-                          <Color blue="a3" green="ae" red="0" type="rgb"/>
-                        </Property>
-                        <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-                          <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"/>
-                        </Property>
-                      </Properties>
-                    </Component>
-                  </SubComponents>
                 </Container>
                 <Container class="javax.swing.JPanel" name="batchMain">
                   <Properties>
@@ -625,18 +580,19 @@
                   <Layout>
                     <DimensionLayout dim="0">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace max="32767" attributes="0"/>
-                              <Component id="JLabel10" min="-2" max="-2" attributes="0"/>
+                          <Group type="102" alignment="0" attributes="0">
                               <EmptySpace max="-2" attributes="0"/>
+                              <Component id="JLabel10" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="32767" attributes="0"/>
                           </Group>
                       </Group>
                     </DimensionLayout>
                     <DimensionLayout dim="1">
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                              <Component id="JLabel10" min="-2" pref="157" max="-2" attributes="0"/>
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
+                              <Component id="JLabel10" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="32767" attributes="0"/>
                           </Group>
                       </Group>
                     </DimensionLayout>
@@ -667,7 +623,7 @@
                     <DimensionLayout dim="1">
                       <Group type="103" groupAlignment="0" attributes="0">
                           <Group type="102" alignment="1" attributes="0">
-                              <EmptySpace max="-2" attributes="0"/>
+                              <EmptySpace min="-2" max="-2" attributes="0"/>
                               <Component id="JLabel11" pref="167" max="32767" attributes="0"/>
                           </Group>
                       </Group>
@@ -694,13 +650,6 @@
                     </Component>
                   </SubComponents>
                 </Container>
-                <Component class="javax.swing.JLabel" name="jLabel6">
-                  <Properties>
-                    <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-                      <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/divide.png"/>
-                    </Property>
-                  </Properties>
-                </Component>
                 <Component class="javax.swing.JLabel" name="viewerButton">
                   <Properties>
                     <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
@@ -716,6 +665,23 @@
                     <EventHandler event="mouseExited" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="viewerButtonMouseExited"/>
                   </Events>
                 </Component>
+                <Component class="javax.swing.JLabel" name="JLabel8">
+                  <Properties>
+                    <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                      <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/compareTwoStart.png"/>
+                    </Property>
+                  </Properties>
+                </Component>
+                <Component class="javax.swing.JLabel" name="JLabel9">
+                  <Properties>
+                    <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+                      <Color blue="a3" green="ae" red="0" type="rgb"/>
+                    </Property>
+                    <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                      <Image iconType="3" name="/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"/>
+                    </Property>
+                  </Properties>
+                </Component>
               </SubComponents>
             </Container>
           </SubComponents>
@@ -725,6 +691,9 @@
             <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
               <Color blue="a3" green="ae" red="0" type="rgb"/>
             </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[1200, 800]"/>
+            </Property>
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignCardLayout" value="org.netbeans.modules.form.compat2.layouts.DesignCardLayout$CardConstraintsDescription">
@@ -736,35 +705,38 @@
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
                   <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace pref="125" max="32767" attributes="0"/>
+                      <EmptySpace pref="78" max="32767" attributes="0"/>
                       <Component id="viewerPanel" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace pref="94" max="32767" attributes="0"/>
+                      <EmptySpace min="-2" pref="72" max="-2" attributes="0"/>
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Component id="symmetryPanel1" min="-2" pref="580" max="-2" attributes="0"/>
-                          <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
-                              <Component id="reloadModelButton" alignment="0" max="32767" attributes="0"/>
-                              <Component id="exportModelButton" max="32767" attributes="0"/>
-                          </Group>
+                          <Component id="exportModelButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="reloadModelButton" min="-2" max="-2" attributes="0"/>
+                          <Component id="symmetryPanel1" alignment="0" min="-2" pref="461" max="-2" attributes="0"/>
                       </Group>
-                      <EmptySpace pref="81" max="32767" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
                   </Group>
+                  <Component id="filler1" alignment="1" max="32767" attributes="0"/>
+                  <Component id="filler2" alignment="0" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="1" attributes="0">
-                      <EmptySpace min="-2" pref="118" max="-2" attributes="0"/>
-                      <Group type="103" groupAlignment="1" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="filler2" min="-2" pref="58" max="-2" attributes="0"/>
+                      <EmptySpace pref="46" max="32767" attributes="0"/>
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
                           <Group type="102" attributes="0">
                               <Component id="symmetryPanel1" min="-2" max="-2" attributes="0"/>
-                              <EmptySpace pref="189" max="32767" attributes="0"/>
+                              <EmptySpace max="32767" attributes="0"/>
                               <Component id="exportModelButton" min="-2" max="-2" attributes="0"/>
                               <EmptySpace type="separate" max="-2" attributes="0"/>
                               <Component id="reloadModelButton" min="-2" max="-2" attributes="0"/>
                           </Group>
-                          <Component id="viewerPanel" max="32767" attributes="0"/>
+                          <Component id="viewerPanel" min="-2" max="-2" attributes="0"/>
                       </Group>
-                      <EmptySpace min="-2" pref="182" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="filler1" min="-2" pref="51" max="-2" attributes="0"/>
+                      <EmptySpace min="-2" pref="93" max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
@@ -777,7 +749,7 @@
                   <Group type="103" groupAlignment="0" attributes="0">
                       <Group type="102" alignment="0" attributes="0">
                           <EmptySpace max="-2" attributes="0"/>
-                          <Component id="canva1" pref="652" max="32767" attributes="0"/>
+                          <Component id="canvasSymmetryPanel" pref="553" max="32767" attributes="0"/>
                           <EmptySpace max="-2" attributes="0"/>
                       </Group>
                   </Group>
@@ -786,14 +758,14 @@
                   <Group type="103" groupAlignment="0" attributes="0">
                       <Group type="102" alignment="0" attributes="0">
                           <EmptySpace max="-2" attributes="0"/>
-                          <Component id="canva1" max="32767" attributes="0"/>
+                          <Component id="canvasSymmetryPanel" pref="588" max="32767" attributes="0"/>
                           <EmptySpace max="-2" attributes="0"/>
                       </Group>
                   </Group>
                 </DimensionLayout>
               </Layout>
               <SubComponents>
-                <Component class="cz.fidentis.analyst.gui.Canvas" name="canva1">
+                <Component class="cz.fidentis.analyst.gui.Canvas" name="canvasSymmetryPanel">
                 </Component>
               </SubComponents>
             </Container>
@@ -838,6 +810,26 @@
                 </Property>
               </Properties>
             </Component>
+            <Component class="javax.swing.Box$Filler" name="filler1">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[0, 32767]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+              </AuxValues>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler2">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[0, 32767]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+              </AuxValues>
+            </Component>
           </SubComponents>
         </Container>
         <Container class="javax.swing.JPanel" name="modelViewPanel">
@@ -846,7 +838,13 @@
               <Color blue="a3" green="ae" red="0" type="rgb"/>
             </Property>
             <Property name="toolTipText" type="java.lang.String" value=""/>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[1200, 800]"/>
+            </Property>
           </Properties>
+          <AccessibilityProperties>
+            <Property name="AccessibleContext.accessibleName" type="java.lang.String" value=""/>
+          </AccessibilityProperties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignCardLayout" value="org.netbeans.modules.form.compat2.layouts.DesignCardLayout$CardConstraintsDescription">
               <CardConstraints cardName="card4"/>
@@ -856,24 +854,29 @@
           <Layout>
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" attributes="0">
-                      <EmptySpace pref="156" max="32767" attributes="0"/>
+                  <Component id="filler3" alignment="1" max="32767" attributes="0"/>
+                  <Group type="102" alignment="1" attributes="0">
+                      <EmptySpace pref="87" max="32767" attributes="0"/>
                       <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace min="-2" pref="60" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
                       <Component id="reloadModelButton1" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace min="-2" pref="95" max="-2" attributes="0"/>
+                      <EmptySpace pref="95" max="32767" attributes="0"/>
                   </Group>
+                  <Component id="filler4" alignment="0" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" alignment="1" attributes="0">
-                      <EmptySpace pref="169" max="32767" attributes="0"/>
+                  <Group type="102" attributes="0">
+                      <Component id="filler3" min="-2" pref="73" max="-2" attributes="0"/>
+                      <EmptySpace pref="87" max="32767" attributes="0"/>
                       <Group type="103" groupAlignment="1" attributes="0">
+                          <Component id="jPanel4" min="-2" pref="579" max="-2" attributes="0"/>
                           <Component id="reloadModelButton1" min="-2" max="-2" attributes="0"/>
-                          <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
                       </Group>
-                      <EmptySpace pref="224" max="32767" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="filler4" min="-2" pref="31" max="-2" attributes="0"/>
+                      <EmptySpace pref="92" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
@@ -905,26 +908,46 @@
                   <Group type="103" groupAlignment="0" attributes="0">
                       <Group type="102" alignment="0" attributes="0">
                           <EmptySpace max="-2" attributes="0"/>
-                          <Component id="canva2" pref="1040" max="32767" attributes="0"/>
-                          <EmptySpace max="-2" attributes="0"/>
+                          <Component id="canvasModelView" min="-2" pref="795" max="-2" attributes="0"/>
+                          <EmptySpace max="32767" attributes="0"/>
                       </Group>
                   </Group>
                 </DimensionLayout>
                 <DimensionLayout dim="1">
                   <Group type="103" groupAlignment="0" attributes="0">
-                      <Group type="102" alignment="0" attributes="0">
-                          <EmptySpace max="-2" attributes="0"/>
-                          <Component id="canva2" min="-2" pref="778" max="-2" attributes="0"/>
+                      <Group type="102" alignment="1" attributes="0">
                           <EmptySpace max="32767" attributes="0"/>
+                          <Component id="canvasModelView" min="-2" pref="553" max="-2" attributes="0"/>
+                          <EmptySpace min="-2" pref="98" max="-2" attributes="0"/>
                       </Group>
                   </Group>
                 </DimensionLayout>
               </Layout>
               <SubComponents>
-                <Component class="cz.fidentis.analyst.gui.Canvas" name="canva2">
+                <Component class="cz.fidentis.analyst.gui.Canvas" name="canvasModelView">
                 </Component>
               </SubComponents>
             </Container>
+            <Component class="javax.swing.Box$Filler" name="filler3">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[0, 32767]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+              </AuxValues>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler4">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[0, 32767]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+              </AuxValues>
+            </Component>
           </SubComponents>
         </Container>
       </SubComponents>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.java b/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.java
index 0c926049..b28c86ae 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/UserInterface.java
@@ -1,6 +1,6 @@
 package cz.fidentis.analyst.gui;
 
-import cz.fidentis.analyst.mesh.io.MeshModelExporter;
+import cz.fidentis.analyst.mesh.io.MeshObjExporter;
 import java.awt.Color;
 import java.io.IOException;
 import java.util.logging.Level;
@@ -16,7 +16,7 @@ import javax.swing.UnsupportedLookAndFeelException;
 
 /**
  *
- * @author Natalia Bebjakova
+ * @author Natália Bebjaková
  * 
  * Main window of the applicaion
  */
@@ -54,7 +54,8 @@ public class UserInterface extends javax.swing.JFrame {
         initComponents();
         topPanel.setVisible(false);
         actualPanel = startingPanel;
-        symmetryPanel1.setCanvas(canva1);
+        symmetryPanel1.setCanvas(canvasSymmetryPanel);
+        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
     }
 
     /**
@@ -108,53 +109,136 @@ public class UserInterface extends javax.swing.JFrame {
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
 
+        jPanel1 = new javax.swing.JPanel();
+        newProject = new javax.swing.JLabel();
+        wiredModelButton = new javax.swing.JLabel();
+        homeButton = new javax.swing.JLabel();
         topPanel = new javax.swing.JPanel();
         compareTwo = new javax.swing.JPanel();
         jLabel1 = new javax.swing.JLabel();
         compareDB = new javax.swing.JPanel();
-        jLabel2 = new javax.swing.JLabel();
-        batchProcessing = new javax.swing.JPanel();
         jLabel3 = new javax.swing.JLabel();
+        batchProcessing = new javax.swing.JPanel();
+        jLabel2 = new javax.swing.JLabel();
         symetryEstimator = new javax.swing.JPanel();
         jLabel4 = new javax.swing.JLabel();
-        jPanel1 = new javax.swing.JPanel();
-        newProject = new javax.swing.JLabel();
-        close = new javax.swing.JLabel();
-        wiredModelButton = new javax.swing.JLabel();
-        homeButton = new javax.swing.JLabel();
-        minimize = new javax.swing.JLabel();
         jPanel2 = new javax.swing.JPanel();
         startingPanel = new javax.swing.JPanel();
         javax.swing.JLabel logo = new javax.swing.JLabel();
         jPanel3 = new javax.swing.JPanel();
         compareTwoMain = new javax.swing.JPanel();
-        JLabel8 = new javax.swing.JLabel();
         compareTwoMain1 = new javax.swing.JPanel();
-        JLabel9 = new javax.swing.JLabel();
         batchMain = new javax.swing.JPanel();
         JLabel10 = new javax.swing.JLabel();
         symetryMain = new javax.swing.JPanel();
         JLabel11 = new javax.swing.JLabel();
-        jLabel6 = new javax.swing.JLabel();
         viewerButton = new javax.swing.JLabel();
+        JLabel8 = new javax.swing.JLabel();
+        JLabel9 = new javax.swing.JLabel();
         symetryPanel = new javax.swing.JPanel();
         viewerPanel = new javax.swing.JPanel();
-        canva1 = new cz.fidentis.analyst.gui.Canvas();
+        canvasSymmetryPanel = new cz.fidentis.analyst.gui.Canvas();
         reloadModelButton = new javax.swing.JLabel();
         exportModelButton = new javax.swing.JLabel();
         symmetryPanel1 = new cz.fidentis.analyst.gui.SymmetryPanel();
+        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
         modelViewPanel = new javax.swing.JPanel();
         reloadModelButton1 = new javax.swing.JLabel();
         jPanel4 = new javax.swing.JPanel();
-        canva2 = new cz.fidentis.analyst.gui.Canvas();
+        canvasModelView = new cz.fidentis.analyst.gui.Canvas();
+        filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+        filler4 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
-        setAlwaysOnTop(true);
-        setAutoRequestFocus(false);
-        setBackground(new java.awt.Color(20, 114, 105));
+        setBackground(new java.awt.Color(0, 174, 163));
+        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
         setLocationByPlatform(true);
 
+        jPanel1.setBackground(new java.awt.Color(20, 114, 105));
+        jPanel1.setPreferredSize(new java.awt.Dimension(1200, 77));
+        jPanel1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
+            public void mouseDragged(java.awt.event.MouseEvent evt) {
+                jPanel1MouseDragged(evt);
+            }
+        });
+        jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                jPanel1MousePressed(evt);
+            }
+        });
+
+        newProject.setBackground(new java.awt.Color(20, 114, 105));
+        newProject.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 18)); // NOI18N
+        newProject.setForeground(new java.awt.Color(255, 255, 255));
+        newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/newP.png"))); // NOI18N
+        newProject.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        newProject.setOpaque(true);
+        newProject.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
+            public void mouseMoved(java.awt.event.MouseEvent evt) {
+                newProjectMouseMoved(evt);
+            }
+        });
+        newProject.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseExited(java.awt.event.MouseEvent evt) {
+                newProjectMouseExited(evt);
+            }
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                newProjectMousePressed(evt);
+            }
+        });
+
+        wiredModelButton.setBackground(new java.awt.Color(20, 114, 105));
+        wiredModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/wireframe2.png"))); // NOI18N
+        wiredModelButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        wiredModelButton.setOpaque(true);
+        wiredModelButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                wiredModelButtonMouseClicked(evt);
+            }
+        });
+
+        homeButton.setBackground(new java.awt.Color(20, 114, 105));
+        homeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/home.png"))); // NOI18N
+        homeButton.setToolTipText("Home");
+        homeButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        homeButton.setOpaque(true);
+        homeButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
+            public void mouseMoved(java.awt.event.MouseEvent evt) {
+                homeButtonMouseMoved(evt);
+            }
+        });
+        homeButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                homeButtonMouseClicked(evt);
+            }
+            public void mouseExited(java.awt.event.MouseEvent evt) {
+                homeButtonMouseExited(evt);
+            }
+        });
+
+        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+        jPanel1.setLayout(jPanel1Layout);
+        jPanel1Layout.setHorizontalGroup(
+            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(jPanel1Layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(homeButton)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(newProject, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(wiredModelButton, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+        jPanel1Layout.setVerticalGroup(
+            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addComponent(wiredModelButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addComponent(newProject, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addComponent(homeButton, javax.swing.GroupLayout.DEFAULT_SIZE, 52, Short.MAX_VALUE)
+        );
+
         topPanel.setBackground(new java.awt.Color(20, 114, 105));
+        topPanel.setPreferredSize(new java.awt.Dimension(1200, 266));
 
         compareTwo.setBackground(new java.awt.Color(20, 114, 105));
         compareTwo.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@@ -169,58 +253,55 @@ public class UserInterface extends javax.swing.JFrame {
             compareTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(compareTwoLayout.createSequentialGroup()
                 .addContainerGap()
-                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
+                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                 .addContainerGap())
         );
         compareTwoLayout.setVerticalGroup(
             compareTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(compareTwoLayout.createSequentialGroup()
-                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 152, Short.MAX_VALUE)
-                .addContainerGap())
+                .addGap(30, 30, 30)
+                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addGap(28, 28, 28))
         );
 
         compareDB.setBackground(new java.awt.Color(20, 114, 105));
         compareDB.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
 
-        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"))); // NOI18N
-        jLabel2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/batchProcessingStart.png"))); // NOI18N
+        jLabel3.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
 
         javax.swing.GroupLayout compareDBLayout = new javax.swing.GroupLayout(compareDB);
         compareDB.setLayout(compareDBLayout);
         compareDBLayout.setHorizontalGroup(
             compareDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 192, Short.MAX_VALUE)
+            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
         compareDBLayout.setVerticalGroup(
             compareDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(compareDBLayout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(jLabel2)
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
 
         batchProcessing.setBackground(new java.awt.Color(20, 114, 105));
         batchProcessing.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
 
-        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/batchProcessingStart.png"))); // NOI18N
-        jLabel3.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"))); // NOI18N
+        jLabel2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
 
         javax.swing.GroupLayout batchProcessingLayout = new javax.swing.GroupLayout(batchProcessing);
         batchProcessing.setLayout(batchProcessingLayout);
         batchProcessingLayout.setHorizontalGroup(
             batchProcessingLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(batchProcessingLayout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
+                .addGap(26, 26, 26)
+                .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         batchProcessingLayout.setVerticalGroup(
             batchProcessingLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(batchProcessingLayout.createSequentialGroup()
-                .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchProcessingLayout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
         symetryEstimator.setBackground(new java.awt.Color(20, 114, 105));
@@ -252,16 +333,17 @@ public class UserInterface extends javax.swing.JFrame {
         symetryEstimator.setLayout(symetryEstimatorLayout);
         symetryEstimatorLayout.setHorizontalGroup(
             symetryEstimatorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(symetryEstimatorLayout.createSequentialGroup()
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetryEstimatorLayout.createSequentialGroup()
                 .addContainerGap()
                 .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addContainerGap())
         );
         symetryEstimatorLayout.setVerticalGroup(
             symetryEstimatorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetryEstimatorLayout.createSequentialGroup()
-                .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(36, 36, 36))
         );
 
         javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel);
@@ -269,156 +351,39 @@ public class UserInterface extends javax.swing.JFrame {
         topPanelLayout.setHorizontalGroup(
             topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(topPanelLayout.createSequentialGroup()
-                .addContainerGap(272, Short.MAX_VALUE)
+                .addContainerGap(99, Short.MAX_VALUE)
                 .addComponent(compareTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGap(105, 105, 105)
                 .addComponent(compareDB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(86, 86, 86)
+                .addGap(94, 94, 94)
                 .addComponent(batchProcessing, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(97, 97, 97)
+                .addGap(94, 94, 94)
                 .addComponent(symetryEstimator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(272, Short.MAX_VALUE))
+                .addContainerGap(98, Short.MAX_VALUE))
         );
         topPanelLayout.setVerticalGroup(
             topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, topPanelLayout.createSequentialGroup()
-                .addContainerGap(94, Short.MAX_VALUE)
-                .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+            .addGroup(topPanelLayout.createSequentialGroup()
+                .addGap(52, 52, 52)
+                .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addComponent(symetryEstimator, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                     .addComponent(compareDB, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(compareTwo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, topPanelLayout.createSequentialGroup()
+                        .addGap(0, 0, Short.MAX_VALUE)
+                        .addComponent(compareTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                     .addComponent(batchProcessing, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
         );
 
-        jPanel1.setBackground(new java.awt.Color(20, 114, 105));
-        jPanel1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseDragged(java.awt.event.MouseEvent evt) {
-                jPanel1MouseDragged(evt);
-            }
-        });
-        jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                jPanel1MousePressed(evt);
-            }
-        });
-
-        newProject.setBackground(new java.awt.Color(20, 114, 105));
-        newProject.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 18)); // NOI18N
-        newProject.setForeground(new java.awt.Color(255, 255, 255));
-        newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/new_project.png"))); // NOI18N
-        newProject.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        newProject.setOpaque(true);
-        newProject.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                newProjectMouseMoved(evt);
-            }
-        });
-        newProject.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                newProjectMouseExited(evt);
-            }
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                newProjectMousePressed(evt);
-            }
-        });
-
-        close.setBackground(new java.awt.Color(20, 114, 105));
-        close.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/close.png"))); // NOI18N
-        close.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        close.setOpaque(true);
-        close.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                closeMouseMoved(evt);
-            }
-        });
-        close.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                closeMouseExited(evt);
-            }
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                closeMousePressed(evt);
-            }
-        });
-
-        wiredModelButton.setBackground(new java.awt.Color(20, 114, 105));
-        wiredModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/wireframe.png"))); // NOI18N
-        wiredModelButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        wiredModelButton.setOpaque(true);
-        wiredModelButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                wiredModelButtonMouseClicked(evt);
-            }
-        });
-
-        homeButton.setBackground(new java.awt.Color(20, 114, 105));
-        homeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/home.png"))); // NOI18N
-        homeButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        homeButton.setOpaque(true);
-        homeButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                homeButtonMouseMoved(evt);
-            }
-        });
-        homeButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                homeButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                homeButtonMouseExited(evt);
-            }
-        });
-
-        minimize.setBackground(new java.awt.Color(20, 114, 105));
-        minimize.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/minimize.png"))); // NOI18N
-        minimize.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        minimize.setOpaque(true);
-        minimize.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                minimizeMouseMoved(evt);
-            }
-        });
-        minimize.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                minimizeMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                minimizeMouseExited(evt);
-            }
-        });
-
-        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
-        jPanel1.setLayout(jPanel1Layout);
-        jPanel1Layout.setHorizontalGroup(
-            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(jPanel1Layout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(homeButton)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(newProject, javax.swing.GroupLayout.PREFERRED_SIZE, 198, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(wiredModelButton, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addComponent(minimize)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(close, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap())
-        );
-        jPanel1Layout.setVerticalGroup(
-            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(homeButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
-                .addGap(0, 0, Short.MAX_VALUE)
-                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                    .addComponent(newProject, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(close, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(wiredModelButton, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE)
-                    .addComponent(minimize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
-        );
-
+        jPanel2.setBackground(new java.awt.Color(0, 174, 163));
+        jPanel2.setFont(new java.awt.Font("Arial", 1, 13)); // NOI18N
+        jPanel2.setPreferredSize(getPreferredSize());
         jPanel2.setLayout(new java.awt.CardLayout());
 
         startingPanel.setBackground(new java.awt.Color(0, 174, 163));
         startingPanel.setToolTipText("");
+        startingPanel.setMaximumSize(new java.awt.Dimension(0, 0));
+        startingPanel.setPreferredSize(new java.awt.Dimension(1200, 800));
+        startingPanel.setRequestFocusEnabled(false);
 
         logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/logo3.png"))); // NOI18N
 
@@ -427,43 +392,28 @@ public class UserInterface extends javax.swing.JFrame {
 
         compareTwoMain.setBackground(new java.awt.Color(0, 174, 163));
 
-        JLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/compareTwoStart.png"))); // NOI18N
-
         javax.swing.GroupLayout compareTwoMainLayout = new javax.swing.GroupLayout(compareTwoMain);
         compareTwoMain.setLayout(compareTwoMainLayout);
         compareTwoMainLayout.setHorizontalGroup(
             compareTwoMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(compareTwoMainLayout.createSequentialGroup()
-                .addGap(15, 15, 15)
-                .addComponent(JLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
+            .addGap(0, 177, Short.MAX_VALUE)
         );
         compareTwoMainLayout.setVerticalGroup(
             compareTwoMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareTwoMainLayout.createSequentialGroup()
-                .addGap(0, 28, Short.MAX_VALUE)
-                .addComponent(JLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE))
+            .addGap(0, 170, Short.MAX_VALUE)
         );
 
         compareTwoMain1.setBackground(new java.awt.Color(0, 174, 163));
 
-        JLabel9.setBackground(new java.awt.Color(0, 174, 163));
-        JLabel9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"))); // NOI18N
-
         javax.swing.GroupLayout compareTwoMain1Layout = new javax.swing.GroupLayout(compareTwoMain1);
         compareTwoMain1.setLayout(compareTwoMain1Layout);
         compareTwoMain1Layout.setHorizontalGroup(
             compareTwoMain1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareTwoMain1Layout.createSequentialGroup()
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addComponent(JLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap())
+            .addGap(0, 220, Short.MAX_VALUE)
         );
         compareTwoMain1Layout.setVerticalGroup(
             compareTwoMain1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareTwoMain1Layout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(JLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, 156, Short.MAX_VALUE))
+            .addGap(0, 169, Short.MAX_VALUE)
         );
 
         batchMain.setBackground(new java.awt.Color(0, 174, 163));
@@ -474,16 +424,17 @@ public class UserInterface extends javax.swing.JFrame {
         batchMain.setLayout(batchMainLayout);
         batchMainLayout.setHorizontalGroup(
             batchMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchMainLayout.createSequentialGroup()
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addGroup(batchMainLayout.createSequentialGroup()
+                .addContainerGap()
                 .addComponent(JLabel10)
-                .addContainerGap())
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         batchMainLayout.setVerticalGroup(
             batchMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchMainLayout.createSequentialGroup()
-                .addGap(0, 0, Short.MAX_VALUE)
-                .addComponent(JLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE))
+            .addGroup(batchMainLayout.createSequentialGroup()
+                .addGap(25, 25, 25)
+                .addComponent(JLabel10)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
         symetryMain.setBackground(new java.awt.Color(0, 174, 163));
@@ -518,8 +469,6 @@ public class UserInterface extends javax.swing.JFrame {
                 .addComponent(JLabel11, javax.swing.GroupLayout.DEFAULT_SIZE, 167, Short.MAX_VALUE))
         );
 
-        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/divide.png"))); // NOI18N
-
         viewerButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/modelView.png"))); // NOI18N
         viewerButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         viewerButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
@@ -536,49 +485,62 @@ public class UserInterface extends javax.swing.JFrame {
             }
         });
 
+        JLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/compareTwoStart.png"))); // NOI18N
+
+        JLabel9.setBackground(new java.awt.Color(0, 174, 163));
+        JLabel9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/copareWithDatabaseStart.png"))); // NOI18N
+
         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
         jPanel3.setLayout(jPanel3Layout);
         jPanel3Layout.setHorizontalGroup(
             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(jPanel3Layout.createSequentialGroup()
-                .addGap(169, 169, 169)
-                .addComponent(viewerButton)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 237, Short.MAX_VALUE)
-                .addComponent(jLabel6)
+                .addContainerGap(17, Short.MAX_VALUE)
+                .addComponent(viewerButton, javax.swing.GroupLayout.PREFERRED_SIZE, 323, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(18, 18, 18)
+                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(compareTwoMain, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(compareTwoMain1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addGroup(jPanel3Layout.createSequentialGroup()
-                        .addGap(135, 135, 135)
-                        .addComponent(compareTwoMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addComponent(JLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addGap(62, 62, 62))
                     .addGroup(jPanel3Layout.createSequentialGroup()
-                        .addGap(130, 130, 130)
-                        .addComponent(compareTwoMain1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                .addGap(81, 81, 81)
+                        .addComponent(JLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addComponent(batchMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                     .addGroup(jPanel3Layout.createSequentialGroup()
                         .addGap(12, 12, 12)
                         .addComponent(symetryMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                .addGap(170, 170, 170))
+                .addContainerGap(42, Short.MAX_VALUE))
         );
         jPanel3Layout.setVerticalGroup(
             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
-                .addGap(27, 27, 27)
+            .addGroup(jPanel3Layout.createSequentialGroup()
                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addGroup(jPanel3Layout.createSequentialGroup()
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
+                        .addContainerGap()
                         .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                            .addComponent(compareTwoMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                            .addComponent(batchMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(JLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addComponent(compareTwoMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                            .addGroup(jPanel3Layout.createSequentialGroup()
+                                .addComponent(batchMain, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addGap(28, 28, 28)))
                         .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                             .addComponent(compareTwoMain1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                            .addComponent(symetryMain, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                            .addComponent(symetryMain, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                    .addGroup(jPanel3Layout.createSequentialGroup()
+                        .addGap(296, 296, 296)
+                        .addComponent(JLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addGap(8, 8, 8)))
                 .addContainerGap())
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addGap(0, 0, Short.MAX_VALUE)
                 .addComponent(viewerButton)
-                .addGap(70, 70, 70))
+                .addGap(41, 41, 41))
         );
 
         javax.swing.GroupLayout startingPanelLayout = new javax.swing.GroupLayout(startingPanel);
@@ -586,27 +548,28 @@ public class UserInterface extends javax.swing.JFrame {
         startingPanelLayout.setHorizontalGroup(
             startingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(startingPanelLayout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
-            .addGroup(startingPanelLayout.createSequentialGroup()
-                .addGap(643, 643, 643)
-                .addComponent(logo, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addContainerGap(81, Short.MAX_VALUE)
+                .addGroup(startingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, startingPanelLayout.createSequentialGroup()
+                        .addComponent(logo, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(400, 400, 400)))
+                .addContainerGap(81, Short.MAX_VALUE))
         );
         startingPanelLayout.setVerticalGroup(
             startingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(startingPanelLayout.createSequentialGroup()
-                .addGap(205, 205, 205)
+                .addContainerGap(133, Short.MAX_VALUE)
                 .addComponent(logo, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(128, 128, 128)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                 .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(200, 200, 200))
+                .addContainerGap(136, Short.MAX_VALUE))
         );
 
         jPanel2.add(startingPanel, "card3");
 
         symetryPanel.setBackground(new java.awt.Color(0, 174, 163));
+        symetryPanel.setPreferredSize(new java.awt.Dimension(1200, 800));
 
         javax.swing.GroupLayout viewerPanelLayout = new javax.swing.GroupLayout(viewerPanel);
         viewerPanel.setLayout(viewerPanelLayout);
@@ -614,14 +577,14 @@ public class UserInterface extends javax.swing.JFrame {
             viewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(viewerPanelLayout.createSequentialGroup()
                 .addContainerGap()
-                .addComponent(canva1, javax.swing.GroupLayout.DEFAULT_SIZE, 652, Short.MAX_VALUE)
+                .addComponent(canvasSymmetryPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE)
                 .addContainerGap())
         );
         viewerPanelLayout.setVerticalGroup(
             viewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(viewerPanelLayout.createSequentialGroup()
                 .addContainerGap()
-                .addComponent(canva1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(canvasSymmetryPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 588, Short.MAX_VALUE)
                 .addContainerGap())
         );
 
@@ -666,35 +629,40 @@ public class UserInterface extends javax.swing.JFrame {
         symetryPanelLayout.setHorizontalGroup(
             symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(symetryPanelLayout.createSequentialGroup()
-                .addContainerGap(125, Short.MAX_VALUE)
+                .addContainerGap(78, Short.MAX_VALUE)
                 .addComponent(viewerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 94, Short.MAX_VALUE)
+                .addGap(72, 72, 72)
                 .addGroup(symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(symmetryPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 580, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addGroup(symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
-                        .addComponent(reloadModelButton, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                        .addComponent(exportModelButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
-                .addContainerGap(81, Short.MAX_VALUE))
+                    .addComponent(exportModelButton)
+                    .addComponent(reloadModelButton)
+                    .addComponent(symmetryPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 461, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+            .addComponent(filler1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addComponent(filler2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
         symetryPanelLayout.setVerticalGroup(
             symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetryPanelLayout.createSequentialGroup()
-                .addGap(118, 118, 118)
-                .addGroup(symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+            .addGroup(symetryPanelLayout.createSequentialGroup()
+                .addComponent(filler2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
+                .addGroup(symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                     .addGroup(symetryPanelLayout.createSequentialGroup()
                         .addComponent(symmetryPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 189, Short.MAX_VALUE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                         .addComponent(exportModelButton)
                         .addGap(18, 18, 18)
                         .addComponent(reloadModelButton))
-                    .addComponent(viewerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                .addGap(182, 182, 182))
+                    .addComponent(viewerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(93, 93, 93))
         );
 
         jPanel2.add(symetryPanel, "card3");
 
         modelViewPanel.setBackground(new java.awt.Color(0, 174, 163));
         modelViewPanel.setToolTipText("");
+        modelViewPanel.setPreferredSize(new java.awt.Dimension(1200, 800));
 
         reloadModelButton1.setBackground(new java.awt.Color(0, 174, 163));
         reloadModelButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/loadModel.png"))); // NOI18N
@@ -720,62 +688,68 @@ public class UserInterface extends javax.swing.JFrame {
             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(jPanel4Layout.createSequentialGroup()
                 .addContainerGap()
-                .addComponent(canva2, javax.swing.GroupLayout.DEFAULT_SIZE, 1040, Short.MAX_VALUE)
-                .addContainerGap())
+                .addComponent(canvasModelView, javax.swing.GroupLayout.PREFERRED_SIZE, 795, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         jPanel4Layout.setVerticalGroup(
             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(jPanel4Layout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(canva2, javax.swing.GroupLayout.PREFERRED_SIZE, 778, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(canvasModelView, javax.swing.GroupLayout.PREFERRED_SIZE, 553, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(98, 98, 98))
         );
 
         javax.swing.GroupLayout modelViewPanelLayout = new javax.swing.GroupLayout(modelViewPanel);
         modelViewPanel.setLayout(modelViewPanelLayout);
         modelViewPanelLayout.setHorizontalGroup(
             modelViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(modelViewPanelLayout.createSequentialGroup()
-                .addContainerGap(156, Short.MAX_VALUE)
+            .addComponent(filler3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelViewPanelLayout.createSequentialGroup()
+                .addContainerGap(87, Short.MAX_VALUE)
                 .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(60, 60, 60)
+                .addGap(18, 18, 18)
                 .addComponent(reloadModelButton1)
-                .addGap(95, 95, 95))
+                .addContainerGap(95, Short.MAX_VALUE))
+            .addComponent(filler4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
         modelViewPanelLayout.setVerticalGroup(
             modelViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelViewPanelLayout.createSequentialGroup()
-                .addContainerGap(169, Short.MAX_VALUE)
+            .addGroup(modelViewPanelLayout.createSequentialGroup()
+                .addComponent(filler3, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 87, Short.MAX_VALUE)
                 .addGroup(modelViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                    .addComponent(reloadModelButton1)
-                    .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addContainerGap(224, Short.MAX_VALUE))
+                    .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 579, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(reloadModelButton1))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(filler4, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(92, Short.MAX_VALUE))
         );
 
         jPanel2.add(modelViewPanel, "card4");
+        modelViewPanel.getAccessibleContext().setAccessibleName("");
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addComponent(topPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                 .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(layout.createSequentialGroup()
-                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(topPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(847, Short.MAX_VALUE))
+                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                .addComponent(topPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 239, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(0, 565, Short.MAX_VALUE))
             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                    .addGap(0, 0, Short.MAX_VALUE)
-                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
+        topPanel.getAccessibleContext().setAccessibleName("");
+
         pack();
         setLocationRelativeTo(null);
     }// </editor-fold>//GEN-END:initComponents
@@ -798,30 +772,6 @@ public class UserInterface extends javax.swing.JFrame {
         }
     }//GEN-LAST:event_newProjectMouseExited
 
-    /**
-     * 
-     * @param evt Changes back the backround of the close button
-     */
-    private void closeMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMouseMoved
-        setLabelBackround(close);
-    }//GEN-LAST:event_closeMouseMoved
-
-    /**
-     * 
-     * @param evt Changes back the backround of the close button
-     */
-    private void closeMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMouseExited
-        resetLabelBackround(close);
-    }//GEN-LAST:event_closeMouseExited
-
-    /**
-     * 
-     * @param evt Close the application 
-     */
-    private void closeMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMousePressed
-        System.exit(0);
-    }//GEN-LAST:event_closeMousePressed
-
     /**
      * 
      * @param evt While moved with mouse, symmetry label changes 
@@ -839,7 +789,7 @@ public class UserInterface extends javax.swing.JFrame {
             topPanel.setVisible(false);
             pressedNewProject = false;
             switchPanelOnMainPanel(actualPanel);
-            newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/new_project.png")));
+            newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/newP.png")));
         }else{
             topPanel.setVisible(true);
             topPanel.add(jPanel1);
@@ -864,7 +814,9 @@ public class UserInterface extends javax.swing.JFrame {
     private void symetryEstimatorMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryEstimatorMouseClicked
         switchPanelOnMainPanel(symetryPanel);
         topPanel.setVisible(false);
-        newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/new_project.png")));
+        ImageIcon icon = new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/newP.png"));
+        
+        newProject.setIcon(icon);
         resetLabelBackround(newProject);
     }//GEN-LAST:event_symetryEstimatorMouseClicked
 
@@ -908,9 +860,10 @@ public class UserInterface extends javax.swing.JFrame {
      * @param evt Loads the model that will be displayed
      */
     private void reloadModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButtonMouseClicked
-        canva1.loadModel();
-        symmetryPanel1.getOriginalModelButton().setVisible(false);
-        symmetryPanel1.getShowPlaneLabel().setVisible(false);
+        canvasSymmetryPanel.loadModel();
+        if (canvasSymmetryPanel.isLoaded()) {
+            symmetryPanel1.showPlaneButtonsOnPanel(false);
+        } 
     }//GEN-LAST:event_reloadModelButtonMouseClicked
 
     /**
@@ -920,13 +873,13 @@ public class UserInterface extends javax.swing.JFrame {
         if (wiredModelClicked) {
             resetLabelBackround(wiredModelButton);
             wiredModelClicked = false;
-            canva1.setDrawWired(wiredModelClicked);
-            canva2.setDrawWired(wiredModelClicked);
+            canvasSymmetryPanel.setDrawWired(wiredModelClicked);
+            canvasModelView.setDrawWired(wiredModelClicked);
         } else {
             setLabelBackround(wiredModelButton);
             wiredModelClicked = true;
-            canva1.setDrawWired(wiredModelClicked);
-            canva2.setDrawWired(wiredModelClicked);
+            canvasSymmetryPanel.setDrawWired(wiredModelClicked);
+            canvasModelView.setDrawWired(wiredModelClicked);
         }
     }//GEN-LAST:event_wiredModelButtonMouseClicked
 
@@ -967,7 +920,7 @@ public class UserInterface extends javax.swing.JFrame {
      * @param evt Loads the model that will be displayed
      */
     private void reloadModelButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButton1MouseClicked
-        canva2.loadModel();
+        canvasModelView.loadModel();
     }//GEN-LAST:event_reloadModelButton1MouseClicked
 
     /**
@@ -1025,7 +978,7 @@ public class UserInterface extends javax.swing.JFrame {
     private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel4MouseClicked
         switchPanelOnMainPanel(symetryPanel);
         topPanel.setVisible(false);
-        newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/new_project.png")));
+        newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/newP.png")));
         resetLabelBackround(newProject);
     }//GEN-LAST:event_jLabel4MouseClicked
 
@@ -1050,14 +1003,14 @@ public class UserInterface extends javax.swing.JFrame {
      * If there is not loaded model, user is warned
      */
     private void exportModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exportModelButtonMouseClicked
-        if (canva1.getModel().getFacets().isEmpty()){
+        if (canvasSymmetryPanel.getModel().getFacets().isEmpty()){
             JOptionPane.showMessageDialog(frameMain, "You have to load the model.", "Model not loaded",
                     0, new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/notLoadedModel.png")));
         } else {
             JFileChooser chooser = new JFileChooser();
             chooser.showSaveDialog(symetryPanel);
             
-            MeshModelExporter exporter = new MeshModelExporter(canva1.getModel());
+            MeshObjExporter exporter = new MeshObjExporter(canvasSymmetryPanel.getModel());
             try {
                 if (chooser.getSelectedFile() != null) {
                     exporter.exportModelToObj(chooser.getSelectedFile());
@@ -1079,30 +1032,7 @@ public class UserInterface extends javax.swing.JFrame {
         jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/symetryStartP.png")));
     }//GEN-LAST:event_jLabel4MouseExited
 
-    /**
-     * 
-     * @param evt Changes the backround of the minimize button
-     */
-    private void minimizeMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeMouseMoved
-        setLabelBackround(minimize);
-    }//GEN-LAST:event_minimizeMouseMoved
-
-    /**
-     * 
-     * @param evt Changes the backround of the minimize button
-     */
-    private void minimizeMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeMouseExited
-        resetLabelBackround(minimize);
-    }//GEN-LAST:event_minimizeMouseExited
-
-    /**
-     * 
-     * @param evt Minimize the window of the app
-     */
-    private void minimizeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeMouseClicked
-        frameMain.setExtendedState(JFrame.ICONIFIED);
-    }//GEN-LAST:event_minimizeMouseClicked
-   
+  
     /**
      * @param args the command line arguments
      */
@@ -1121,8 +1051,7 @@ public class UserInterface extends javax.swing.JFrame {
             frameMain = new UserInterface();
             frameMain.setBackground(new Color(49,165,154));
             frameMain.pack();
-            frameMain.setVisible(true);
-            
+            frameMain.setVisible(true);           
             //enables to use design of operating system
             try {
                 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
@@ -1141,25 +1070,26 @@ public class UserInterface extends javax.swing.JFrame {
     private javax.swing.JLabel JLabel9;
     private javax.swing.JPanel batchMain;
     private javax.swing.JPanel batchProcessing;
-    private cz.fidentis.analyst.gui.Canvas canva1;
-    private cz.fidentis.analyst.gui.Canvas canva2;
-    private javax.swing.JLabel close;
+    private cz.fidentis.analyst.gui.Canvas canvasModelView;
+    private cz.fidentis.analyst.gui.Canvas canvasSymmetryPanel;
     private javax.swing.JPanel compareDB;
     private javax.swing.JPanel compareTwo;
     private javax.swing.JPanel compareTwoMain;
     private javax.swing.JPanel compareTwoMain1;
     private javax.swing.JLabel exportModelButton;
+    private javax.swing.Box.Filler filler1;
+    private javax.swing.Box.Filler filler2;
+    private javax.swing.Box.Filler filler3;
+    private javax.swing.Box.Filler filler4;
     private javax.swing.JLabel homeButton;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
     private javax.swing.JLabel jLabel3;
     private javax.swing.JLabel jLabel4;
-    private javax.swing.JLabel jLabel6;
     private javax.swing.JPanel jPanel1;
     private javax.swing.JPanel jPanel2;
     private javax.swing.JPanel jPanel3;
     private javax.swing.JPanel jPanel4;
-    private javax.swing.JLabel minimize;
     private javax.swing.JPanel modelViewPanel;
     private javax.swing.JLabel newProject;
     private javax.swing.JLabel reloadModelButton;
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/angle.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/angle.png
new file mode 100644
index 0000000000000000000000000000000000000000..a71d54c818db463afe8bd6eb558dff5c60de4629
GIT binary patch
literal 7607
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
b${&r=30bm<y*b#$f34bB>@v?cbr1VLNqJm6

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/close.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/close.png
index a01fdd3aad41bcc3cdf66278c65a43a61286d22d..bece4b869e31b64d58c4bcaf62ee749dc7fed49e 100644
GIT binary patch
delta 771
zcmaDOd{RiUGr-TCmrII^fq{Y7)59eQNE-pM9tRtc%+mG>+^AT|#BOe7YGP$*IC&wH
zf`Eyxp?Qd*p_Q?bm8q$=fzjlPOwyQwf0*Qz(~Of13``A;bW@B>jdYFDOpJAtk}XVi
zlMR#1Qj$|rQ!Py=+c9gaq@|^pr<x|G=_XsGB<rRoo0#ibrX?rprkN)u0fmiIjLj@3
z_cE)fn3$SdB%36r>6#`R80w}ZnV9M(rKDNvnwpxMCmR{3m>C#ZPQJ>#R+$KeljB&W
z;r?o1wVKSxYNcXiZkb|XkZh!zl$dO+Ym{VSsGDS(WCFCx(!esw*uo;wFnMx3s}z#P
zHV-1anXIHxT;f_*VpX1znrEwIWME{VYk(e*oBh}(FxIcvzLLVg!07Mk;uw<A`1Z!_
z+(Qlmtq*5v@a|~cGC|CPGxMPC1*fP2-GHWO5AKC6_WIop-`161)JaM?JMmA0{^_3|
zWLZ=AE2~Qz<2XCEvmA+LdZf$vaau#g={$w^*BC=WU0fO*L-p6*W^}&wZ<5{Ys*;<^
zE3a@$$Vb}e8h@#Oq0mq&)i5*K%y8z{=O*W`EM`whnyaJM%<zNR&eoym=_ZK>Q=Gq8
z7`<V>Q}^<$ZE!^0i_(tr#*kBerc10(u%!t<6uQ))8Oz}_dD^Kh&#Iiyi2N3v*njlR
z=2dl56{gud6=a=}(kmcnxg^#9=cRkkPej<eUXv*9pErT&QTrcD<J_GsA_AB1e)8?%
z_TViH{}vJT{;9x&-K>E(i{1GrJl!1jb=8&wKPrCt9$h!%nRoV~GfTb;X7}fryU5iz
tpE;0YyN0>qWZu6T4iukzJM4KXuT-&DVV1|%6~J`O;OXk;vd$@?2>|S45+?uv

delta 938
zcmX>p^hQ{*Gr-TCmrII^fq{Y7)59eQNb7+x2OE$K->GfBQL&PV-NMS$*vi;=@<JvB
z0b^YwlMq8=D^o)&BV%m?!^sz!q%j5mFv%-hm>OE7C7PP)CYo5L=_aO{80jXNCz<P-
zr6wC2rKA`b8CguWW7bwlG&f4MG&D@rHAyl~(@ixpG10Y5vPjf5NH#FGFif#XPBAo|
z+{>(@l4@y`Y?f?ps%w;-ma1!LXkwsiVPa{ao0ep3Xl`m`nVM#vGWja=TH+MOvr54|
z*1&2tnUU2>B`Gz{D9zB)K-b93&{#Jm31ow*xuLFkTAHy*T9Q#(a*E|-RE=$}MEEmV
zNujvJwXDRdJR>#FR>{b~$UxTsB_t;|um)_N&F0KlzoJ}k3j+h=Cr=m0kc`H+Gd5<6
zI7+zRkL6HwaTIXv=<Fy{y1~x5^On7$LdT+x`sRf6;)BPoxe4Tm1VwfVvFI|1HE|hw
zY`Eao6Cp9BT5R@%)O<4)<I{5v))t(-^XJFCvo&Y#<awvsUy|GApwnBCC-w1;$)lZ_
zM~W|ZJXZ_dQ_t(;@?=><^UBuX9UL|+e(w~G+4nHKV{%`lz1ncTVQJjo%!9^X-{=(?
zzgksaxyJ9f#gVT0f#!G4xo_R<{A|mvm{Wg(o)>lbuPT>GS?W}GD=GX`O!pdj-9D>D
zdLbvye>-cvPLK7OuF4fZq2r6L?`B*X`gPCIb1h4D&%U{^b8+A5dUM$~KTW@;wtlI|
zx@&bL(EaM^S5*#M%3fL>4ZQtI^=q`lj`WL{7nfdL{rS{;M*jx?#`kp$`HlCthORC=
zy8Oy>>n$gLJ?q=@Z)uq2!v~gkgZEE4wr}-yUz@;JLiREft}R-wzvFM${YPc1YF2$|
zsj^qN_I9>$cA;i#-Hj6lM~+{qu4i1x&bZL8wdRYfh<2?*t%yKmNPlRG)vI=gXKp>t
zZwhxX?$PemWeRUNFFJGifvZ99OgD(63haCoy|!p|{?h(;M&(|$OZRR3Q7sd?f2rsC
znf#2#2dWcN`F9o{2v5-6R<P>Fg&+CzKef9l&ztRLV-Amjo7*4NGyK{rv|HPMSG5o@
P`!RUB`njxgN@xNAL_lwo

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/compareTwoFaces.svg b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/compareTwoFaces.svg
new file mode 100644
index 00000000..358839af
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/compareTwoFaces.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 141.7 141.7" style="enable-background:new 0 0 141.7 141.7;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#147269;}
+	.st1{enable-background:new    ;}
+	.st2{fill:#FFFFFF;}
+	.st3{clip-path:url(#SVGID_2_);fill:#FFFFFF;}
+	.st4{clip-path:url(#SVGID_4_);fill:#FFFFFF;}
+	.st5{fill:none;}
+</style>
+<g>
+	<rect x="5.4" y="5.4" class="st0" width="131" height="131"/>
+	<g class="st1">
+		<path class="st2" d="M35.7,111.7h-0.9c-0.1-0.9-0.7-1.5-1.7-1.5c-1.2,0-1.9,1-1.9,2.6s0.7,2.6,1.9,2.6c1,0,1.6-0.6,1.7-1.6h0.9
+			c-0.1,1.4-1.1,2.3-2.6,2.3c-1.7,0-2.8-1.3-2.8-3.3c0-2.1,1.1-3.3,2.8-3.3C34.7,109.4,35.6,110.4,35.7,111.7z"/>
+		<path class="st2" d="M42.4,112.8c0,2-1.1,3.3-2.9,3.3s-2.9-1.3-2.9-3.3s1.1-3.3,2.9-3.3S42.4,110.7,42.4,112.8z M37.4,112.8
+			c0,1.6,0.8,2.6,2,2.6c1.3,0,2-1,2-2.6s-0.8-2.6-2-2.6C38.2,110.2,37.4,111.2,37.4,112.8z"/>
+		<path class="st2" d="M49.5,116v-3.3c0-0.8,0-1.6,0-2.4h0c-0.3,0.8-0.6,1.6-0.9,2.4l-1.2,3.3h-1l-1.2-3.3c-0.3-0.8-0.6-1.6-0.9-2.4
+			h0c0,0.8,0,1.6,0,2.4v3.3h-0.8v-6.4H45l1.2,3.2c0.3,0.8,0.6,1.6,0.8,2.5h0c0.3-0.8,0.6-1.6,0.8-2.5l1.2-3.2h1.3v6.4H49.5z"/>
+		<path class="st2" d="M54.2,109.6c1.5,0,2.2,0.8,2.2,1.9c0,1.2-0.8,1.9-2.2,1.9h-1.4v2.5H52v-6.4H54.2z M52.9,112.7h1.3
+			c1,0,1.4-0.5,1.4-1.2c0-0.8-0.5-1.2-1.4-1.2h-1.3V112.7z"/>
+		<path class="st2" d="M57.8,114.1l-0.7,1.9h-0.9l2.4-6.4h1.1l2.4,6.4h-0.9l-0.7-1.9H57.8z M60.1,112.8c-0.3-0.9-0.6-1.7-0.9-2.6h0
+			c-0.3,0.9-0.6,1.7-0.9,2.6l-0.2,0.6h2.3L60.1,112.8z"/>
+		<path class="st2" d="M64.9,109.6c1.5,0,2.3,0.6,2.3,1.7c0,0.8-0.5,1.4-1.2,1.6v0c0.5,0.1,0.7,0.4,1,1.2l0.7,1.8h-0.9l-0.6-1.7
+			c-0.3-0.8-0.6-1-1.2-1h-1.1v2.7h-0.8v-6.4H64.9z M63.7,112.6h1.2c1,0,1.4-0.5,1.4-1.2c0-0.7-0.5-1.1-1.5-1.1h-1.1V112.6z"/>
+		<path class="st2" d="M69.5,110.3v2h3.1v0.7h-3.1v2.2h3.4v0.7h-4.2v-6.4h4.1v0.7H69.5z"/>
+		<path class="st2" d="M79.9,111.5c0,1.1-0.7,1.6-1.7,2.1c-1.2,0.7-1.5,1.1-1.5,1.7H80v0.7h-4.2c0-0.1,0-0.1,0-0.2
+			c0-1.2,0.3-1.8,1.8-2.7c0.9-0.5,1.4-0.9,1.4-1.6c0-0.6-0.4-1-1.1-1c-0.8,0-1.1,0.4-1.2,1.2h-0.8c0-1.2,0.8-1.9,2-1.9
+			C79.1,109.8,79.9,110.5,79.9,111.5z"/>
+		<path class="st2" d="M84.2,110.3v2.2h3v0.7h-3v2.7h-0.8v-6.4h4v0.7H84.2z"/>
+		<path class="st2" d="M88.8,114.1l-0.7,1.9h-0.9l2.4-6.4h1.1l2.4,6.4h-0.9l-0.7-1.9H88.8z M91.1,112.8c-0.3-0.9-0.6-1.7-0.9-2.6h0
+			c-0.3,0.9-0.6,1.7-0.9,2.6l-0.2,0.6h2.3L91.1,112.8z"/>
+		<path class="st2" d="M98.8,111.7h-0.9c-0.1-0.9-0.7-1.5-1.7-1.5c-1.2,0-1.9,1-1.9,2.6s0.7,2.6,1.9,2.6c1,0,1.6-0.6,1.7-1.6h0.9
+			c-0.1,1.4-1.1,2.3-2.6,2.3c-1.7,0-2.8-1.3-2.8-3.3c0-2.1,1.1-3.3,2.8-3.3C97.8,109.4,98.7,110.4,98.8,111.7z"/>
+		<path class="st2" d="M100.9,110.3v2h3.1v0.7h-3.1v2.2h3.4v0.7h-4.2v-6.4h4.1v0.7H100.9z"/>
+		<path class="st2" d="M109.6,111.5h-0.8c0-0.9-0.5-1.4-1.5-1.4c-0.8,0-1.3,0.4-1.3,1c0,0.7,0.5,0.9,1.5,1.1
+			c1.2,0.3,2.2,0.6,2.2,1.9c0,1.2-0.9,1.9-2.3,1.9c-1.5,0-2.4-0.8-2.4-2.3h0.9c0,1.1,0.6,1.5,1.5,1.5c0.9,0,1.4-0.4,1.4-1.1
+			c0-0.7-0.5-0.9-1.6-1.2c-1.2-0.3-2.2-0.6-2.2-1.9c0-1,0.8-1.8,2.1-1.8C108.8,109.4,109.6,110.2,109.6,111.5z"/>
+	</g>
+	<g>
+		<g>
+			<g>
+				<defs>
+					<ellipse id="SVGID_1_" cx="49.1" cy="62.4" rx="23.8" ry="29.7"/>
+				</defs>
+				<clipPath id="SVGID_2_">
+					<use xlink:href="#SVGID_1_"  style="overflow:visible;"/>
+				</clipPath>
+				<path class="st3" d="M65.4,68.5c-0.2,0.5-0.5,0.9-0.8,1.3s-0.7,0.6-1.2,0.6c-0.5-0.1-0.9,0.2-1,0.7c-0.1,0.3-0.1,0.7-0.2,1.1
+					c-0.2,3.4-1.4,6.4-3.9,8.8c-0.3,0.3-0.5,0.6-0.5,1.1c0.1,1.9,0,3.8,0.1,5.8c0.1,1.9,0.7,3.5,1.8,4.6c-0.6,0.5-1.3,1-2.1,1.4
+					c-0.2,0.1-0.3,0.1-0.5,0.2c-0.9,0.2-1.8,0.4-2.6,0.5c-1.9,0.1-3.8,0.1-5.7,0c-1.1,0-2.3-0.1-3.4-0.1c-0.7-0.1-1.3-0.1-2-0.3
+					c-1.7-0.3-3.4-0.9-4.8-1.9c0.5-0.6,0.9-1.2,1.2-2s0.4-1.7,0.4-2.6c0.1-1.9,0.1-3.8,0.2-5.8c0-0.2-0.1-0.5-0.3-0.6
+					c-1.6-1.7-2.9-3.6-3.5-5.8c-0.3-1-0.4-2.1-0.6-3.1c-0.1-0.4-0.1-0.8-0.2-1.2c-0.1-0.5-0.5-0.8-1-0.7c-0.7,0.1-1.2-0.3-1.5-0.8
+					c-0.5-0.8-0.9-1.7-1.2-2.5c-0.5-1.4-0.6-2.9-0.5-4.4c0.1-0.8,0.4-1.1,1.2-1.1c0.2,0,0.5-0.1,0.7-0.1c0.9-0.3,0.9-0.5,0.8-1.3
+					c-0.2-2.3-0.5-4.6-0.6-6.9c-0.3-5.4,2.2-9.4,6.7-12.2c6.8-4.3,16.1-2.7,21,3.5c2,2.5,2.9,5.3,2.7,8.5c-0.1,2.3-0.4,4.6-0.6,6.9
+					c-0.1,1.1,0.2,1.4,1.3,1.6c1.2,0.1,1.4,0.4,1.5,1.5C66.5,64.9,66.2,66.7,65.4,68.5z M49.2,50.4c-5.7,0-10.3,6.3-10.3,14.1
+					s4.6,14.1,10.3,14.1s10.3-6.3,10.3-14.1S54.9,50.4,49.2,50.4z"/>
+			</g>
+		</g>
+		<g>
+			<g>
+				<defs>
+					<ellipse id="SVGID_3_" cx="92.8" cy="62.4" rx="23.8" ry="29.7"/>
+				</defs>
+				<clipPath id="SVGID_4_">
+					<use xlink:href="#SVGID_3_"  style="overflow:visible;"/>
+				</clipPath>
+				<path class="st4" d="M109.1,68.5c-0.2,0.5-0.5,0.9-0.8,1.3s-0.7,0.6-1.2,0.6c-0.5-0.1-0.9,0.2-1,0.7c-0.1,0.3-0.1,0.7-0.2,1.1
+					c-0.2,3.4-1.4,6.4-3.9,8.8c-0.3,0.3-0.5,0.6-0.5,1.1c0.1,1.9,0,3.8,0.1,5.8c0.1,1.9,0.7,3.5,1.8,4.6c-0.6,0.5-1.3,1-2.1,1.4
+					c-0.2,0.1-0.3,0.1-0.5,0.2c-0.9,0.2-1.8,0.4-2.6,0.5c-1.9,0.1-3.8,0.1-5.7,0c-1.1,0-2.3-0.1-3.4-0.1c-0.7-0.1-1.3-0.1-2-0.3
+					c-1.7-0.3-3.4-0.9-4.8-1.9c0.5-0.6,0.9-1.2,1.2-2c0.3-0.8,0.4-1.7,0.4-2.6c0.1-1.9,0.1-3.8,0.2-5.8c0-0.2-0.1-0.5-0.3-0.6
+					c-1.6-1.7-2.9-3.6-3.5-5.8c-0.3-1-0.4-2.1-0.6-3.1c-0.1-0.4-0.1-0.8-0.2-1.2c-0.1-0.5-0.5-0.8-1-0.7c-0.7,0.1-1.2-0.3-1.5-0.8
+					c-0.5-0.8-0.9-1.7-1.2-2.5c-0.5-1.4-0.6-2.9-0.5-4.4c0.1-0.8,0.4-1.1,1.2-1.1c0.2,0,0.5-0.1,0.7-0.1c0.9-0.3,0.9-0.5,0.8-1.3
+					c-0.2-2.3-0.5-4.6-0.6-6.9c-0.3-5.4,2.2-9.4,6.7-12.2c6.8-4.3,16.1-2.7,21,3.5c2,2.5,2.9,5.3,2.7,8.5c-0.1,2.3-0.4,4.6-0.6,6.9
+					c-0.1,1.1,0.2,1.4,1.3,1.6c1.2,0.1,1.4,0.4,1.5,1.5C110.2,64.9,109.9,66.8,109.1,68.5z M92.9,50.4c-5.7,0-10.3,6.3-10.3,14.1
+					s4.6,14.1,10.3,14.1s10.3-6.3,10.3-14.1S98.6,50.4,92.9,50.4z"/>
+			</g>
+		</g>
+		<path class="st5" d="M38.4,60.9h72.2H38.4z"/>
+		<rect x="38.4" y="63.7" class="st2" width="68.7" height="3.3"/>
+	</g>
+</g>
+</svg>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/curvature.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/curvature.png
new file mode 100644
index 0000000000000000000000000000000000000000..c19d8f2dfe9ddd708ee75b102dd3f913c1d3bada
GIT binary patch
literal 7626
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
HePaIs!6a1<

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/distance.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/distance.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c31475bd90db4bc0c4deeeef48eaf05256314d4
GIT binary patch
literal 6812
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
ONA|WZHhEV5TmBEaIG82?

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/home.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/home.png
index 97b1fa093f2813822e88d035d808d94b44d5148c..59c019144b4eaf2f737b4234052143586c77d27f 100644
GIT binary patch
delta 518
zcmew?v_ojaK_&qcT|@H_LqjWLQ!67=Z3Cmp7n!6n1^+O~s~8!j8KtC|nCd1Pnp*0n
znVT5uTAHVt>zbJ*SsJA!8k?r1nQpdcKF;Jpj7lYi;u6=g607oz)I3`yBLgD?T?2Ht
zZ1!WDz*w&xGewqxfzi&>#W5tK@$EFjyh9EGuKyRAc*H2UW=!UGDTz@uRXyd{6#Z@j
zbHFc|OpVD_t~(fo&U!Oy3r?AOlef=3ZQhnmv+b?V$DI~t_}b`roi~O{d}CX8#9`Mp
zg?E({TQ*N$vT{ke=jAgoat_~4t*~V;dvlZV^R{1Et}GJu4BmC=oF?;H&bc-S2B@nj
znHm^rGxao<HoK(o_MGix5Kbsw=90qfbEbpAIAOM?;7z8@ey$A+A+1cyLmYmT3np-^
z(NhtOWIQZ1Q9%0ildvG&mm5{?9GJaC-80^DVbH{M&+_))(<d=;t~&fR_)@mt29GBd
zEek$)s=WI5!>wpX%)5mbmG%nm%-r~`{oCW;n*5XA>F<kvS^q?1e$vDn`4hSREM0$3
zMi=a##pX&&oflhHeRhjEBBhta3-jbdrE5Rf&KIx#GBf+HC<739y85}Sb4q9e09*3J
ADgXcg

delta 579
zcmdlX^jT=bK_&qsT|=V~LqjVgODhv&Z3Dx}7n!6n1^+O~t5~F(8d;hpo9Y^+SXk&9
zCYq$^TBeyL>6%!irlq7>8l|L}8E&>`KF;Jyj7lYi;u6=g607oz)I3`yBLgD?T>})i
zOm1Ke*gTufnX&%Kq8m*N42+eYE{-7?jc;!(%sb@3(Ejm%??g=&;T^24QvL?*Pes$z
z#7gETu=Tp@+>~SD=4y3)=<!T&$HWQwZKs8<O-tLm&Am9jNn!7uyZzIatYr*o&s%k`
zVKvi{?Ld?_nNK3Q$e-_yXO(?zt?98E>lwyB9qt@I*d&{9GQZw?!Q+H`KmLj_GRigT
z*57984`*a-J7C9_c$?XIy`lq)Ot8Q<Wr0d|##skUm>=xXyzqsIX-nfzdx3417uJa|
zeQEIJYsqE)qSeU2oba3>@it>~km3Oj3k#PUd<Rw(a9m(eV`Vruo1xc9!GU|m)P@ab
z8>R(wTwuMXs+5zxU^Z)g(Z_e<6_d71y0YJ7Tf?tOVasioOygplr>d*+bl=U>f$o<c
zZJGXLlAox7-fyc@7bMv0zpZHMb&st7amz-Lts|ecBmXMfq#srq?(vh##E;$at}57>
zAvnQ2`AqsPh6k>f+E2S?7iR)h!O>N=q(^eu>o?w-Gm+urT8Uc@bqu+@Q(MZ@dF&a0
Nz|+;wWt~$(69CzU-ueIl

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/info.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/info.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a1bd5107153871284fb876b4bda54f1bafc0f8a
GIT binary patch
literal 2431
zcmcImeQXnD94-Wz<0GJgC^B+8Fv7<5?!Aw;cU##;JLo1Ib1NAT|KPp5x9hpKSMP3X
zH$EmBrV}9>28H+!ApU`$BP1+wBp8to-3(5MBqA7v7$i#|B7>+=-|N~j%ou25lk2^G
z@44sq{NCU5d*8NKS1p@5Y4#+C!!flY;IF~=$MN;VgA?(0d;a_gzU3wYt4)W)InTbv
zrQRuNayW8!YoS%vs^D@-(PK`i>N0YsVhN0PIEqVB38*w6i;z*h7Wa}@dybHVrh3Ub
zA;<(1J`~XcEe5J>sR}7A4T`9eC5wsTl!OUl$bv*F7LA)y%1fqsB|NsLX_81otOhSx
zW(Ooz1*-|4ZXiN%x+n$kEa4WNz{Q9xzldNN;HDWj4LFJc662CMk;r^V9L-R}QjLFU
zCKmqXB_o!VkZ3xYOgfXCQ#a~qAc`W*ur$k37(toMaSNuXxH&J&;76unXbDTx<Alu!
zWxdhzl33|b3bDj6ZQRT(6J9Vn1rs!IGImN?U@$l~G!`31n^t)fj*`(kDzO=AP9VAl
znR=t4pz<aZx8`MoB_g_|n-Tpk+J+zBp-@$Z111`cXnJ{6g+@^n!`vpug0#Mb<TDVo
zbR(qe(QKirvk?iOk62Kr#Z^6NF0}Pz;K&ax<Rx*<L<+DJ!-s%d5_k!KLc4g(5HyHg
zph62~!7M{D0<LZd0Ey=$hA(8;+hASQ!p-*s4F;u(xM{(-f-3x85{q(bnkoq_R0YoE
zp?KBfrXb{1N)#C!5-K8O1OTC1OzXn$`*o$!UI+XAA=9e5f;ooQQW8Xg;W(A0Jc=M<
zO5Q_>vdZC+;_(O~5Lp>z*;W`D?i&~#$!e=oF(WUyJqi!Ql%OzxQe|GCWHl^Og5Y*5
zET_5{7OT1)*QZByBdDu*b-9uA6+U0Jp@+37eqh!tTS8Qn`&>YDxhU2NNJ3Slux`X4
zwwV@#^@vWy>uu9x893d5X5tDrXWFP1J)apxH6raz2`Y9=cuB?f0#eD$v^L5z-(NyQ
zw8;p<q+_^b2xjVGD+vu$R*y?^4-e9JlWxMMv4yj4QS~qiOUY2-C|2eHB?~f-Ya%kD
z%y~QzDA~mS2jQ6|RU$B6kMQ0~lm9)H`?LC;HMnc@{reh>o(gSms6*bO|7pA1{?7JD
z8SY-&lxC)$OJMzQWfza$lCsR;qPYahjev*ZJbajfGTwcV$ngv>LID7Gaau)GyB8N?
z!?FT#XG4L*jsSSGfMF3)G6J$E%(zqlzzD81>ySix>|D~w5yuP`lAgk6mpvRlH1Ut&
zV;9A-9}Ik`K3Z_B)!`Voxx!x-3bdbp<3QE;vKi&4W`8;@IzagqB##F>1HaCSc0E(M
z=VH#S3Ed$2Uf#?HO4ddW?S7kWYl|$L4Em>UnlL$hqBE~eSTy6pbFUWN95~$EeDE7f
zLg&9-Qv_=}{9Rp(o^I&sJvOH!$0)5F*yYIEoqJ~eiP)9FiFNSvV{<-p&YHHVpkwQ`
z19Pi?$?N{$rARM&bIaM%LelX=L;HsO%~j-UHy=9MSa56G?~ch|JXv{W{Px1qrKQJ{
z-wp0HRt8__=`C#OURl+2b9u+UlbzeA_m>|py4<?)nsoWPF!!yfV|8cF0;=!*;MRBf
zE1}spkW2U|_ek%K)9YHTL#>~D`LkFw*fisn!TI}9k8|7CmrkEJJZ1gIf1YD|`f68f
z|LU>2&c53G*LUW#D>hql+sWdYd-IIKz)$--*7Qx^^;Ew6>^d;6xbcru$x!amftK|f
zf85~NcaA%BHE<~qQzyNA;Sspt75cX=OAAVO4E8^Kd`kb-lZxwt&%qQQ*(7hccy|9^
d*T26pwX$yK!L_Y>y6wM673Ed_50|Wc@o(?LG$#N6

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/info2.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/info2.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7f22dbeb4eb56fb7b9b7b9fd9650f094c21e421
GIT binary patch
literal 2446
zcmcIme{2(F81Cj^V>lHe6Ncb%8$@8&`+e6tS4P*4tw84-ji4fMKfbQ#+Ft41){Z}f
z`2(1c0YV50l94DG8o({6fki+AiXl!7B%%a?Kwv-=HAaob;dfnIh8Y7*Y;wK3@1A?!
z=l$O2{l06ht*I)=FUq&sYz5wGPaQmugU9&1;qbq8Qb`b=MntQhGHf<`v2|o6-YRdh
z*>c-8{{nM?Z?355VY{U2GO#DYQHZwL%E}W_NofEkB7=G@;zX}^A3_mLb)xfGAK{C-
zK~Sq+76bE^)%cZV4T_+m<uj17ga`@3z?6_gI219&gcD8jitySR#!(~*F&mty%L<4r
z@YN!2Jq8fg&S474PzW#BNsbUGrWBzFlE(=iCuxizMS>G)0ZIK(7%ip-#5&KcR4jPs
zM1!Uo6>&TskK5z4U60k{q#y`5LE#jIK?G(rM@%V!MU3J!g9jK&OpBVD9ziTdN!A-p
zCkmDJrx1>2Xd^~yn&5=t2`P$`cEU<24fOejhK9o#v|&~@!6+%cgAyD5<|x4HfT1_W
z6j0d&B4%+qSTv}cx)IcGqb>9J7KN&k2^ejRg_6^wDmVy%FyuBMmQ3o4itZSYOg-k;
z^-#J{wdsh6+l@RrUyG=E+?Z<VNx^|fGJz9?H4`wB!U)Ds@*>NKBstwG9?=i=K^Lf!
zDW$;_fe|dMuAd}Dh7lQdIzin8>#7!Lz8k2|Cwe1>DMb|E^*B)|%C2duNKzb4^MJ<y
zr_z|pF#vPO42cmcK?EE!DLW{T)CJ%7=t`qC57ztrrd4$Xa%ARGBsrRsWuCzphLJEX
zzz~>&;z&#ia5AST0S8ShX|~5>8tfY>G?3L&r9wuA<sAwm1u#}2NKBO(7L(P0fUzvk
zD-^AA1SO!z&A4toq{n=^3TKxdIPP`3Yh!vq3&96QT~!6*t#oswz;PI5Cs9OI#DE?P
zOVDOoSgHqjG*WMw9?F2}R%-^VaC54S=7FWDtB{5yy(vnH)e=rrvAh6OG&QUZGR=3F
zP(N)v2q5VYF6oCEdccfJG2p6)CAotK@!Lr^q^6;TQ@o%$2!+CANue>yvWCpc46KPj
z2r}((NF=Q2|0X=etOTV<J%DQ~j{f&l?#}ABrgGcn`}Z{%JQdtpQ2V`w|I>Ci{hjU+
z7wlfklt!wa6;gesvNHy6Nm(Xf(Kr_40qMYK2NS>~8LmD+pc#S@B$g!kvZRWTb|)@C
z1!P5H1x#XT=m?TgVP^{flL1^O0tBa$BsqX9$=WXwA3B#La=<nNg(QdI-ep~8Hcfbw
z*>*t$`XL54)xXa4GB#V*Ca=fkuWtQtbLX52*Vx0$w^w+#Fw9C%^@XjWQAM%QM?R`z
zJnQ;$_{+2S8!JDkEL&B`?`WSq-dxL%!Ca%JTq@anz9%vD>aJ~ve(GNL=a~udv+)f`
z9^q3jbzGjZV)Xi4YG(fGZ1=fg!K{Mzw(ox_+?a?w++hRAuFg~T+I!wU)wAT_5d%9n
zyt-lTjJEr?$&bBpW%L)$tVql5$vMS;%p7%EtC@ZAzKKsh_)_IJU$vpLAIKF;<DL^g
zW{o^OE^kanZ{D~2vt3tSIDWFFtz`G5%8rJo7ezXasTcOQj{SK;@4|UK6R)?f8N2tz
zgL_IwY?6<y+IiHt{tVB~U4$&|D*U?Y(|yLUp5K0bXoH&5<qt01a_W=WKfK%Bxqo%Z
z<n`|zD|w=&v}ww?e3fNCTQhTW!^V9%U5{*ebJ7YCp4vyAeEDjSb-!Bl{)zEpj!o-&
zuIJ*FYa6@Q#lIU~E@m(OynFleXy3<Ft$)Nj`LCQWEbS{ezWKGv3%xtf70184H}|OL
x^@T0N7VcPn?ZC9NMK?T$5A;2I?RQsSc3^Ge$i&t;ebyI~x3b2wr(($qe*^tgHz@!B

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/minimize2.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/minimize2.png
new file mode 100644
index 0000000000000000000000000000000000000000..22d4076e421401ca5da769a129b79c0afb850a5c
GIT binary patch
literal 2421
zcmcImTWB0r7~X(d4HUGrc)`ms0j;)Y=bSV5vD=XBrp<yI({wQreDKUUXEsB2XQnfg
z?xsE&MJa;#Ahr)x(I+3IMIS;%w1f)2ctL%P#iCdc4Dqp`7SHUhX-U&4bzyd9&V2Lz
z-~a#LIcJVfP8{4m_`qN;m)l+*FHMQ_bJ=m{9pe9&weM%d>8@z}*+h&T$c}-XZx%;#
zxoyAu)tPjr@{~ivMxL<H<@r`466joR-*77;bdINz%WHm6kk>vvCrdsn$kTcSR-z)G
z^~aCJ{P3}fDm^wwZ6*)zm-e+BLD1kSky?#<kT|V^+~#$}bvCTXQX7)a737gDpfppN
zl!{@@B|UEdiZm>lb{-kf#@b#9Lu4w@RFDcFa-iX;w$%N}B3jHmXR36d8%x|3<k>Wh
z97Sn1oB5`i596AGY}-~KRxkzv0g{CvB`pvnLp_EPPiX8%sUHSX#z@?7J}t;XX(xq7
z)Ta%SZka^Elop8;l!sYLJz%A>IkeH}qmy*(sEE?lyCHE>U5L0c#glM8rhM!u57MDt
zuxK_+!(=wRfwunRYZNlt4;anI^>%p}Rd}5@1a~5^sI4z@iZLf?7+1rv-fPrkFQQZ|
zO1r21fQ8NE@k~z_&Pyca1zGgW1_%SFRgvZBs-voVvgW}Kv?5%<NJ@HO3<VM(vx<;|
zHAfR*d=(rr-&@!Uv{G@(L6VYy@^Yyl3sHIBXO7`P$~_GN&2S;mO-%(B(J>%UL#n|k
zM#O6C67QEnI-k`cd%t5^7E-~{uchM}7((6D0b;5S7}9j$GOhz%<vLV3L)g-LY){9&
zm^Y-po;6d&1S7XGHK^dh)Z+jlq0iE63wW-IOdZ?YGnp)1jav-sVO$BBsIIzxyj(0!
z#-Zoe#e-z(;HXp{D;mf)41n`UmKb%sFm4cGGrvJ<T#15OW_lq*q&w~>qQeW_X>^z$
z>0Z@+sqIaN&}>Q+WSV(_3qhS>e}gh_Euqf)%~>u;H*rY^mV{o~BrzYUiI&{NgUXGh
zC*<hn!d>oR57`i4L##2(%{rl*2$-IyYMzTd%Isd^|AX*uN$D&JYFw<Xiu~VG*_zd_
z?ZFKv-@os{#;GXTg4*$xa=q=Y`nxwrM#SvROqq21IZA5%&hFoMN)i)u8zBxfSM>nL
zng(pwA^=jTT8LScA$4C{Mcuy{m+L}TLxv7ajx3;Bng@t0Rx)m@8q{o}BV=xsi(}8F
zM7IIaRSaCDF+e<<1D7M$@}R*GLhHEN3Ong4o7bg{T(@P3q}oGbAIvWM8?d<PZ{a);
z-ipNr{m2`;9?InglyYgL+B&uR<8t}7LwApTXTC3;ogaFXTsd^|<@;WQl66V?;oui9
z?D*j4(do4-zr~;I{pRaX`QxXZ5ALy^i9WnIv;5H_z5UC<*LU55feVZGpILcl=|bbl
zmllSPoLfy+{#-gSwC(uCZ&w~(J~e0k_1e9U{W|c~*|*L&S6`v><!vXAfLGU^2rjQI
uo%#FicQ3s+@!1J?{`@UebX``T59~gD&&Mmfc5Kf+jLKsZrPHI&Fa85K3?JzL

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/navigationBackground.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/navigationBackground.png
index 9ee9bf944a70150bf7b0cf97ba9697eaf0c1ffdc..5c432124583a2fd332c0b3e59a65860362dd830e 100644
GIT binary patch
delta 1076
zcmaDUuvkd3Gr-TCmrII^fq{Y7)59eQNIQWr2OE%l9K!HoqM|qx+lGx+O-uqNx`yT<
zhNf0V7FI@v+6G3G&oIei3jSm&Q%N&RNlP^{Gt@OUGBD9iwlFc*wKOzK(lxO(H8wL(
zHZ)8#PnkTKSzFn_EXB+MsKngdJXzP&(!^5N(mXjyH__PKBGJgmG{xA!bn-)H6_vy^
zQ?n!s(==U+WOGy96cdva-9(d=6rh8Ql1)-f6U~!=&e3EEBTnIBmKcemlr*cHOoieS
z*Rm3;#N?99{5)Hw;>5Dai7axi=4l2-smX?Bx~Ylg7P^+ECT6;chGyovX%?2LCP}I0
zmMMnDN>IJ!8L2>>Mg~R(x(0?o6k=pxWnyGyVmbLBi<KT!QF2CNUV3VZt&+ZyzMX;%
zKFd9b2|R3;V?@sp7IQ%i`zQZmiL0OOVY7yTfl1QS#WAE}&f7VAvqTa_+U85vceG}x
z?_@L-pK!_Rq}aVS0Rf$4#Ryij4T_--92L@HoE}_?z2XZhm<>aDG=(lajX1M=QwxjG
z=Q`ua=QbOTZu&6KnBUm?@XvjBwUjg*Sa}+z9|(T%&-8O&<M{*Z3DO_TWd+||-`i0y
z;cDr&D)H^^ZL?d$4|p}+;nZH0xRmStQbYb4Ryhmj^A9;97{0|ezB5j8sN`I6?11D8
zv5z<AT#wS--eLW0&$X<bt|B|dw+F615}T~%DX8SyA)*-6;(=fs(tWhua{bn*?dSK*
zXP?%feqgP3T5n@|-!i?E#j_?psNetPC-05Kta*l#XU;ILZ`^*s*?qe40mTh$IZVq#
zUGA`kHJZ=ec2!pSL9D1C^8@8@`=kHFj~(ciideQ^Xo2Oor&>yN4E?*_ElcKG)nT#l
z=cYHt%T3?*UC+~+=syk9HE@wd%Oo4V&0V#u{^r7K<$YNR>tE~TF;tswa5X;gMmsrS
zHCtI@Z{O^flXw%hpXau*Z&VECwz({CHSLes`umTU{$Q#(wB^b3do%5~yg#~s#=_0z
z-<hx8bbUH0BKzs&rAWSq+jmHJ(b<jjw@!;bqF)@Bz4eaLzS*CnR!_CJ>=XkA?ff+H
z{LC;zuLh&?-tPyhfU)p;RpQaw%s*#SkNxv_%zu<sO|`+=rwdpRFnGH9xvX<aXaWGN
CK!|Gq

delta 1053
zcmZ21^in{vGr-TCmrII^fq{Y7)59eQNXLON2OE%Fb!l<lL`88XR;i6vO-urYx(0?J
zMg~@<mR2Sf+6IP`&oIei3jSm&Q!z@hFf%bqPS#CKGd9#UNj9<6O|mda)3q>7G&8U?
zF-)>BPM$oOSz9?NHO<I0#aP!oF*#A!!o<Wx*V4k&T-U(T$i&FlEXBYg(QNWVW)<QL
z)MN=GPGKag%;fzn4wI*{Mb=xhP7-8bVEXFm;uumf=j~m4@908_qaQ!FT(VrcG=ISk
zOScv$cE>x>%h&B|@vG&WduLX;z+JC&Q5i4RXm|6=Cw+C!N(uV4-`{$~X;#ZUo9B;g
z=ZBvC{6qD}`+s>XM?AiHeDmb<?AvMcILmE*ivQor(-YoIlF>2zqQg8X_Ud!_`mTj4
z^BFDJHmsUq|4`<Dn@dbO|GO0aHE*2dWi_ndXtOPESO3X&Ann_o`WtJ?yp~oR+b?`(
zj%w}lE9*b1%xCy9)3%(C<%5Y*T`KRHx?}4XR9<Y{blL0Kfj1w{PkyeeRJ#4mhyF<*
zhWXY0$!ni~P~y{ngiO?<@u6I!udBRE6RTLCPKt;PPrsI3H77MfJ@R_;U8WsO1%_{#
ze(mKxuflvFd&*-z{r`2lb$b~67~Z%YS$@*|4`;OO>f7#{`J`=C+!^lOlNIM#Afv$g
zf%U9K*!Kx@nJYvE7w^trC;#w;WLRL7a(%?PuKMfmE?Z^GGFZRTjml8>;A7kqkblX@
zzUhg?f#k1hy2Zk4K5l25J^z1-0*ceIyBtl)CB}lqaf@2>tQhpJMsK;0%6_1+s$0zJ
z!@|(st$r?Z80&8Y=U-B)7A$-wEnIYWzoDX%8-rOup7_S67EYB<-w7IgEUqcdKPT3Z
z%Mc%!H)qp-=PA=}Gi+0f*Q<RMTkE~&?x$Mc{?P6G41U>FYi4eb_T!DJJ+OV27$bwp
zAD17QE;Z+*p4m%wSnTOI+>MQ>M-xnG-|stbd&iZ#n-0gTo{x5Um3Q-@{)ID_xm|AR
z`eyxj#q`Vb*%`~ZDgVAFIeb1_8g5WLP3>KX{iODsK4(|vlc%R_-c$75@JqVs`M|!b
zvFB^fw>PCsf8y}NM}C9MwOsW{wv%cnIZt}5+9nrn{7dIMi@3*Mwky9l*(PlYzXZ(j
N44$rjF6*2UngBZ%xSs$3

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/newP.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/newP.png
new file mode 100644
index 0000000000000000000000000000000000000000..611e3282a43bb46c6b4583c9689f086f7427dcc9
GIT binary patch
literal 3927
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

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/new_project_opened.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/new_project_opened.png
index 5153298ce42cfa57c92a04b9f5ac697acf7193ce..654a545fe4d667f11afd19971b83935d211ed8dc 100644
GIT binary patch
delta 2559
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

delta 2092
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

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/points.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/points.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae2d15472049301b20749ba8085bec7babcacbda
GIT binary patch
literal 6295
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
OV71#0$1y#4<bMFJGPyGV

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/save.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/save.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b48efd200d2a740f65066ba59af377f83c2f930
GIT binary patch
literal 2472
zcmcImeQXnD7%!5{F#<6-5L|%URfLJx`{>=ZccF~69kdDE#x@wp7`u<R>$$eq-QCu1
zMvW6l251PVGl3~8gg+Qx(a0DG%s9Y^5H#aM`SK$g0U>D6VHo&c*NtJuKogr>@A}^F
ze$VfDp5JqCn~DnNjLLX2!(y?F^838S@H_z?S?Ou;yD9sr5Il{D`4;IGi_K~t!xEcw
z>nxT>H!7tIjfH`^yrf2Kf~<<bmWae4+G3fJn}`WgH82nnR4GvxdTs9k6j5XsTE+y3
zK+FR|imyQfB@G3oQbV=G$!P9OWJZFA1QB2eNFoxB>U_e5CV6>yZ7$;|l7tx5E;P>!
zh%5{gAs$r&2xDV0iKHpS!P!Wb;3)c8gd#`>PB?JVju9kJu)Li^QXdpX)8rsu?46y8
z1%J8FkYU7l9FNE2wz%D<YE?MNaU4!iI7ML)f$8;8Lr7pz-P*_C1-hguF+)+Kh{-63
zYOUcyq0-(IBC&qjsGcelEEt{;VmN6d%#`|ofxytvNTeUF8~JrGN=omb#CmCc4B*8;
zS8Fv1<kx|yVeJbR3#o>xht&IM>%V=ELRsn$7^~I7$@0h&4#FS;xpjyollo%3M+1VP
zYNe_g?rT(0Uqr;?L8g@{QCW@aIi{Wz9C!r-xKP+L4kIaypi4;y&(J(cPB)uJ^g;vB
z1+riWePD{f2nHkAQj*{)f+v~j1a%jz%1W^QVW5Ek?~m$+5S4)6>q4O@o1(}(2r^C)
z5Hv=}b^!w<EnrU8VaMzY%`t$L2-+?sb;0Mos#I&%!F;~gw6ZEej{aKmBqa)>z&J2L
zggLT+rZG-}Y><p&gOuP1I>bJ<LQR2lBZLRCnyO^TNHY$nL<>QTkq8o#MVi4xImlrQ
z<8VlnU1kZ2Ly^02J!)9h0;&wFYah7o_jrmlHK>H)4ZV1d8}a9RSdwE|jIxm^B1?Qw
z)gl74nGzAI03M50nWl#_V7fj<haIj@jZq1xNnM2%B<W3Fkj#;Ap_1tZAfu^eWsovI
zTtdCH@eqKdL%5_DrmI0CE@&XH3by0{9>nh_T^H(x7EU=h*-1zgCJK@rqePm-L`I}x
zPdI`T?M|maLVx^k!c)vrNQhPe_-@6~|DMXjS^eHr?mK+{z6XP+f}1bYUT@+5wB22Q
z_svKioL<wEda9ppp{l>LGY20@Q6yl~SO#+d(uvufbkH153Im*-CTLDzNYXJQsUoaA
zhzn3bQ4$yq6Bs*m1WC)75aa+R0#bAa305XaasXG7wO1lObS_EcfNcf}NiM;?%e?I0
zG~ti_Z5KqLA2hhBUbw6#ES6#0{ocG%U(>HAb5{rQG7n!rzQpZ)pI9*MmuXiny_Mc_
z+MV6L`8_IQz2B&N{F!-2#*S!qyT32oR++VVnfsO3PQJU~Y<kz)BPCb%CH7o>VQ-;V
zdinD&H|Redy?Lx<{n0)7TfROqe_m!<&Zh1$Qeu8{SNF!V=i9Brx89zzZPo&0`kFhF
z#uVSOCVVxzujZo(OV9Z-+M4Ri$B!wxIQo!h<y7)iOZC<65wDBvrndO_^kWwv`}kt{
zHSgopy2JC^vWm~{+;Azob4lA9=XN;HKT+J=Wi9{WDqFrZt#aa|%E;)>_SW-%E|*(6
z*M}#M%qhS+_N;C>v%jplt0(xWx~9E#9I;&G4C|)0PqsDqt`lP2h3|~T6(@G|tjOF_
zGiC4bos;n&|5)YUcj)O`2luzPz7s!%@9wGS{2_d;BP`vnOFMY8VphqE*|m#mV~<SM
zLur>kbgg{#%u6d*4QIc-)7GAmQ}EY~*%x-DP0Z|W+|}MXlRh=-#%`!`L+1zUhK-zH
z+47Ag!0dQ)xbv&Ej>f`q2Rf?4pDmudEOY8}zx`aZb!_9gw<|<x@$YTc+(^UekvFH7
a^%Sn?(AwvY%X;4YFXhiK@NRckHvSFuvQu#Y

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/show.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/show.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4f8369e688f9e43e8e9c59b17dad800bb445674
GIT binary patch
literal 2665
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

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/show2.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/show2.png
new file mode 100644
index 0000000000000000000000000000000000000000..df03fc3580d3becc5d74644bf5ceeac4e7b74100
GIT binary patch
literal 2638
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

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/resources/wireframe2.png b/GUI/src/main/java/cz/fidentis/analyst/gui/resources/wireframe2.png
new file mode 100644
index 0000000000000000000000000000000000000000..40be817688e82594ba6ae92510324c6d9538c500
GIT binary patch
literal 3857
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
MS6{&q=f$c228G-2*#H0l

literal 0
HcmV?d00001

diff --git a/GUI/src/main/java/cz/fidentis/analyst/symmetry/BoundingBox.java b/GUI/src/main/java/cz/fidentis/analyst/symmetry/BoundingBox.java
index 0a1f577d..74228951 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/symmetry/BoundingBox.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/symmetry/BoundingBox.java
@@ -8,7 +8,7 @@ import javax.vecmath.Vector3d;
  * @author Natália Bebjaková
  * 
  * Represent min-max box.
- * It is automatically maintained by given point array.
+ * It is automatically maintained by given point array of the model.
  * 
  */
 
@@ -90,7 +90,7 @@ public class BoundingBox {
     */
     private void ValidateMinMax() {
         minPoint = new MeshPoint(new Vector3d(Double.MAX_VALUE,Double.MAX_VALUE,Double.MAX_VALUE), null, null);
-        maxPoint = new MeshPoint(new Vector3d(Double.MIN_VALUE,Double.MIN_VALUE,Double.MIN_VALUE), null, null);
+        maxPoint = new MeshPoint(new Vector3d(-100000.0,-100000.0,-100000.0), null, null);
  
         for (int i = 0; i < points.size(); i++) {
             MeshPoint point = points.get(i);
@@ -129,6 +129,7 @@ public class BoundingBox {
     
     /**
      * Returns description of BoundignBox.
+     * 
      * @return String representation of the bounding box
      */
     @Override
diff --git a/GUI/src/main/java/cz/fidentis/analyst/symmetry/Config.java b/GUI/src/main/java/cz/fidentis/analyst/symmetry/Config.java
index 63ce184e..ed08d5aa 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/symmetry/Config.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/symmetry/Config.java
@@ -2,7 +2,7 @@ package cz.fidentis.analyst.symmetry;
 
 /**
  *
- * @author Natalia Bebjakova
+ * @author Natália Bebjaková
  * 
  * Representation of configuration for symmetry estimate.
  * Default numbers are given due to the best results on tested data.
@@ -10,7 +10,7 @@ package cz.fidentis.analyst.symmetry;
  * better impact on results in estimate of symmetry. 
  */
 public class Config {
-    private static final double DEFAULT_MIN_CURV_RATIO = 0.8;
+    private static final double DEFAULT_MIN_CURV_RATIO = 0.5;
     private static final double DEFAULT_MIN_ANGLE_COS = 0.985;
     private static final double DEFAULT_MIN_NORM_ANGLE_COS = 0.985;
     private static final double DEFAULT_MAX_REL_DISTANCE = 1.0 / 100.0;
@@ -102,7 +102,6 @@ public class Config {
 
     /**
      * Returns number of vertices with the highest Gaussian curvature.
-     * It is optional parameter.
      * 
      * @return number of significant points for computing the symmetry 
      */
@@ -138,7 +137,7 @@ public class Config {
     }
 
     /**
-     * Gives default values of configuration.
+     * Creates new configuration with default values 
      * 
      * @return configuration with default values
      */
@@ -154,4 +153,21 @@ public class Config {
 
         return conf;
     }
+    
+    /**
+     * 
+     * @return String representation of configuration
+     */
+    @Override 
+    public String toString() {
+        String str = "PARAMETERS: ";
+        str += "\n";
+        str += "Min curvature ratio: " + minCurvRatio + "\n";
+        str += "Min angle cosine: " + minAngleCos + "\n";
+        str += "Min norm angle cosine: " + minNormAngleCos + "\n";
+        str += "Max relative distance: " + maxRelDistance + "\n";
+        str += "Significant points: " + significantPointCount + "\n";
+        str += "Averaging: " + averaging + "\n";
+        return str;
+    }
 }
\ No newline at end of file
diff --git a/GUI/src/main/java/cz/fidentis/analyst/symmetry/Plane.java b/GUI/src/main/java/cz/fidentis/analyst/symmetry/Plane.java
index b4a30323..2b1e66f7 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/symmetry/Plane.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/symmetry/Plane.java
@@ -52,9 +52,9 @@ public class Plane {
      * @param scale distance of points given by bounding box
      * @return plane represented as mesh 
      */
-    public static SymmetryCounter createPlaneMesh(MeshPoint centroid, MeshPoint a, MeshPoint b, double scale) {
+    public static SymmetryEstimator createPlaneMesh(MeshPoint centroid, MeshPoint a, MeshPoint b, double scale) {
         facet = new MeshFacet();
-        SymmetryCounter planeMesh = new SymmetryCounter(facet);
+        SymmetryEstimator planeMesh = new SymmetryEstimator(facet, Config.getDefault());
         
         MeshPoint[] points = new MeshPoint[4];
         
@@ -84,5 +84,14 @@ public class Plane {
         }
         return planeMesh;
     }
- 
+    
+    /**
+     * Returns string description of the plane
+     * 
+     * @return description of the plane
+     */
+    @Override
+    public String toString(){
+        return "APPROXIMATE PLANE:\n" + a + "\n" + b + "\n" + c + "\n" + d + "\n";
+    }
 }
diff --git a/GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryCounter.java b/GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java
similarity index 82%
rename from GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryCounter.java
rename to GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java
index 19fbd548..dcd04061 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryCounter.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java
@@ -1,6 +1,5 @@
 package cz.fidentis.analyst.symmetry;
 
-import static cz.fidentis.analyst.gui.UserInterface.frameMain;
 import cz.fidentis.analyst.mesh.core.CornerTableRow;
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 import cz.fidentis.analyst.mesh.core.MeshPoint;
@@ -18,12 +17,13 @@ import javax.vecmath.Vector3d;
  *
  * @author Natália Bebjaková
  * 
- * Main class for computing approximate plane of symmetry of the 3D model. 
+ * Main class for computing approximate plane of symmetry of the 3D model.
+ * For computing the symmetry, for every 
  * Default values of the configuration are given due to the best results on tested objects.
  * On many different 3D models, it exists other values of config that will have better impact on result. 
  * 
  */
-public class SymmetryCounter {
+public class SymmetryEstimator {
     /**
      * Facet of the model on which symmetry is computed 
      */
@@ -44,6 +44,16 @@ public class SymmetryCounter {
      * panel for configuration of symmetry counting 
      */
     private JPanel panel;
+    
+    private final Config config;
+
+    /**
+     * 
+     * @return configuration of optional parameters of the algorithm
+     */
+    public Config getConfig() {
+        return config;
+    }
 
     /**
      * 
@@ -74,9 +84,16 @@ public class SymmetryCounter {
      * Creates new class for computing symmetry
      * 
      * @param f facet on which symmetry will be computed 
+     * @param config configuration of optional parameters of the algorithm
      */
-    public SymmetryCounter(MeshFacet f) {
+    public SymmetryEstimator(MeshFacet f, Config config) {
         this.facet = f;
+        this.config = config;
+        
+        initTriangles();
+        initArrayOfTriangleVertexAreas();
+
+        boundingBox = new BoundingBox(facet.getVertices());
     }
     
     /**
@@ -125,15 +142,6 @@ public class SymmetryCounter {
             public double v3Area;
     }
    
-    /**
-     * Initialize values necessary for computing
-     */
-    public void init() {
-        initTriangles();
-        initArrayOfTriangleVertexAreas();
-        boundingBox = new BoundingBox(facet.getVertices());
-    }
-    
     /**
      * Computes triangles of facet from corner table
      */
@@ -144,11 +152,11 @@ public class SymmetryCounter {
                     facet.getCornerTable().getRow(i + 1).getVertexIndex(),
                     facet.getCornerTable().getRow(i + 2).getVertexIndex());
             triangles[(i / 3)] = t;
-        }     
+        }
     }
     
     /**
-     * Calculates new normals of the points
+     * Calculates new normals of the points for models that do not have normals
      * 
      * @return new normals represented as mesh points so that math operations can be done 
      */
@@ -177,7 +185,8 @@ public class SymmetryCounter {
      * @return triangle neighbours of given index of vertex
      */
     public List<Integer> getNeighbours(int pointIndex) {
-        return facet.getCornerTable().getTriangleIndexesByVertexIndex(pointIndex);
+        List<Integer> neighbours = facet.getCornerTable().getTriangleIndexesByVertexIndex(pointIndex);
+        return neighbours;
     }
     
     /**
@@ -221,9 +230,9 @@ public class SymmetryCounter {
             return area;
         }
         if (d2 < 0) {
-            area.v3Area = ((v3Half.subtractPosition(tVertex1)).crossProduct(v2Half.subtractPosition(tVertex1))).abs() / 2;
-            area.v2Area = ((v1Half.subtractPosition(tVertex3)).crossProduct(v2Half.subtractPosition(tVertex3))).abs() / 2;
-            area.v1Area = (((v2Half.subtractPosition(tVertex2)).crossProduct(v1Half.subtractPosition(tVertex2))).abs() / 2) + 
+            area.v1Area = ((v3Half.subtractPosition(tVertex1)).crossProduct(v2Half.subtractPosition(tVertex1))).abs() / 2;
+            area.v3Area = ((v1Half.subtractPosition(tVertex3)).crossProduct(v2Half.subtractPosition(tVertex3))).abs() / 2;
+            area.v2Area = (((v2Half.subtractPosition(tVertex2)).crossProduct(v1Half.subtractPosition(tVertex2))).abs() / 2) + 
                     (((v2Half.subtractPosition(tVertex2)).crossProduct(v3Half.subtractPosition(tVertex2))).abs() / 2);
             return area;
         }
@@ -363,7 +372,7 @@ public class SymmetryCounter {
             return new MeshPoint(new Vector3d(), new Vector3d(), new Vector3d());
         }
         double areaSum = 0;
-        MeshPoint pointSum = new MeshPoint((new Vector3d(0.0, 0.0, 0.0)), null, null);
+        MeshPoint pointSum = new MeshPoint(new Vector3d(), new Vector3d(), new Vector3d());
         for (int i = 0; i < trianglesNeighbours.size(); i++) {
             Triangle t = triangles[trianglesNeighbours.get(i)];
             Triangle tNext = triangles[trianglesNeighbours.get((i + 1) % trianglesNeighbours.size())];
@@ -397,7 +406,7 @@ public class SymmetryCounter {
     
     /**
      * Gaussian curvature in a vertex of a triangle mesh.
-     * It can only be estimated beacuse triangle mesh is not a continuous
+     * It can only be estimated because triangle mesh is not a continuous
      * but discrete representation of surface.
      * 
      * @param centerIndex index of vertex in which gaussian curvature is computed
@@ -410,13 +419,12 @@ public class SymmetryCounter {
         if (triangleNeighbours.isEmpty()) {
             return Double.NaN;
         }
-        
         double sum = 2 * Math.PI;
         double areaSum = 0;
 
         for (int i = 0; i < triangleNeighbours.size(); i++) {
-            MeshPoint v1 = new MeshPoint(new Vector3d(), null, null);
-            MeshPoint v2 = new MeshPoint(new Vector3d(), null, null);
+            MeshPoint v1 = new MeshPoint(new Vector3d(), new Vector3d(), new Vector3d());
+            MeshPoint v2 = new MeshPoint(new Vector3d(), new Vector3d(), new Vector3d());
             Triangle t = triangles[triangleNeighbours.get(i)];
             
             MeshPoint tVertex1 = facet.getVertices().get(t.vertex1);
@@ -446,11 +454,11 @@ public class SymmetryCounter {
             areaSum += area;
             v1 = v1.dividePosition(v1.abs());
             v2 = v2.dividePosition(v2.abs());
-
+            
             sum -= Math.acos(v1.dotProduct(v2));
         } 
-        return sum * (1.0 / areaSum);
-       
+        double value = sum * (1.0 / areaSum);
+        return value;
     }
 
     /**
@@ -485,14 +493,14 @@ public class SymmetryCounter {
      * 
      * @param plane Plane for which votes are computed
      * @param curvatures significant curvatures chosen for computing
-     * @param points significant point chosen for computing
+     * @param points significant points chosen for computing
      * @param minCurvRatio optional parameter from configuration
      * @param minAngleCos optional parameter from configuration
      * @param minNormAngleCos optional parameter from configuration
      * @param maxDist optional parameter from configuration
      * @return total votes given to plane while computing the symmetry
      */
-    private int GetVotes(Plane plane,
+    private int getVotes(Plane plane,
             ArrayList<Double> curvatures,
             ArrayList<Integer> points,
             double minCurvRatio,
@@ -502,7 +510,7 @@ public class SymmetryCounter {
         
         plane.normalize();
         
-        MeshPoint normal = new MeshPoint((new Vector3d(plane.a, plane.b, plane.c)),null, null);
+        MeshPoint normal = new MeshPoint((new Vector3d(plane.a, plane.b, plane.c)),new Vector3d(), new Vector3d());
         double d = plane.d;
         double maxCurvRatio = 1.0 / minCurvRatio;
         int votes = 0;
@@ -518,37 +526,15 @@ public class SymmetryCounter {
                     double cos = vec.dotProduct(normal);
  
                     MeshPoint ni;
-                    
-                    /*if (facet.getVertices().get(points.get(i)).getNormal() != null) {
-                        ni = new MeshPoint(new Vector3d(facet.getVertices().get(points.get(i)).getNormal().x,
-                            facet.getVertices().get(points.get(i)).getNormal().y,
-                            facet.getVertices().get(points.get(i)).getNormal().z), null, null);
-                    } else {
-                        ni = new MeshPoint (new Vector3d(normals[points.get(i)].getPosition().x,normals[points.get(i)].getPosition().y,
-                           normals[points.get(i)].getPosition().z), null, null);
-                    }
-                    
-                    ni = ni.divide(ni.abs());
-                    
-                    MeshPoint nj;
-                    if (facet.getVertices().get(points.get(j)).getNormal() != null) {
-                        nj = new MeshPoint(new Vector3d(facet.getVertices().get(points.get(j)).getNormal().x,
-                            facet.getVertices().get(points.get(j)).getNormal().y,
-                            facet.getVertices().get(points.get(j)).getNormal().z), null, null); 
-                    } else {
-                        nj = new MeshPoint (new Vector3d(normals[points.get(j)].getPosition().x,normals[points.get(j)].getPosition().y,
-                               normals[points.get(j)].getPosition().z), null, null);
-                    }*/
-                   
-                        
+            
                     ni = new MeshPoint (new Vector3d(normals[points.get(i)].getPosition().x,normals[points.get(i)].getPosition().y,
-                           normals[points.get(i)].getPosition().z), null, null);
+                           normals[points.get(i)].getPosition().z), new Vector3d(), new Vector3d());
                         
                     ni = ni.dividePosition(ni.abs());
                         
                     MeshPoint nj;
                     nj = new MeshPoint (new Vector3d(normals[points.get(j)].getPosition().x,normals[points.get(j)].getPosition().y,
-                               normals[points.get(j)].getPosition().z), null, null);
+                               normals[points.get(j)].getPosition().z), new Vector3d(), new Vector3d());
                     nj = nj.dividePosition(nj.abs());
 
                     MeshPoint normVec = ni.subtractPosition(nj);
@@ -575,17 +561,18 @@ public class SymmetryCounter {
     
     /**
      * 
-     * @param conf Configuration for computing
+     * 
      * @return approximate plane of symmtetry
      */
-    public Plane getAproxSymmetryPlane(Config conf) {
+    public Plane getAproxSymmetryPlane() {
+        
         UIManager.put("ProgressMonitor.progressText", "Counting symmetry...");
  
         ArrayList<AproxSymmetryPlane> planes = new ArrayList<>();
         MeshPoint[] normals = CalculateNormals();
         double[] curvatures = new double[facet.getNumberOfVertices()];
         for (int i = 0; i < facet.getNumberOfVertices(); i++) {
-            if (facet.getNumberOfVertices() > 2000) {
+            if (facet.getNumberOfVertices() == 2500) {
                 curvatures[i] = this.getMaxCurvature(i);
             } else {
                 curvatures[i] = this.getGaussianCurvature(i);
@@ -600,11 +587,11 @@ public class SymmetryCounter {
         }
         Collections.sort(sortedCurvatures);
            
-        if(conf.getSignificantPointCount() > facet.getNumberOfVertices()) {
-            conf.setSignificantPointCount((facet.getNumberOfVertices()) - 1);
+        if(config.getSignificantPointCount() > facet.getNumberOfVertices()) {
+            config.setSignificantPointCount((facet.getNumberOfVertices()) - 1);
         }
-        double bottomCurvature = sortedCurvatures.get(sortedCurvatures.size() - 1 - conf.getSignificantPointCount());   
-      
+        double bottomCurvature = sortedCurvatures.get(sortedCurvatures.size() - 1 - config.getSignificantPointCount());   
+        
         ArrayList<Integer> significantPoints = new ArrayList<>();
         ArrayList<Double> significantCurvatures = new ArrayList<>();
         
@@ -627,7 +614,7 @@ public class SymmetryCounter {
         for (int i = 0; i < significantPoints.size(); i++) {
             for (int j = 0; j < significantPoints.size(); j++) {
                 if (i != j) {
-                    double minRatio = conf.getMinCurvRatio();
+                    double minRatio = config.getMinCurvRatio();
                     double maxRatio = 1.0 / minRatio;
                     if (significantCurvatures.get(i) / significantCurvatures.get(j) >= minRatio && significantCurvatures.get(i) /
                             significantCurvatures.get(j) <= maxRatio) {
@@ -640,56 +627,37 @@ public class SymmetryCounter {
                         normal = normal.dividePosition(normal.abs());
                         double d = -(normal.getPosition().x * avrg.getPosition().x) -
                                 (normal.getPosition().y * avrg.getPosition().y) - (normal.getPosition().z * avrg.getPosition().z);
-                              
+                       
                         MeshPoint ni;
-                        /*if (facet.getVertex(significantPoints.get(i)).getNormal() != null) {
-                            ni = new MeshPoint(new Vector3d(facet.getVertex(significantPoints.get(i)).getNormal().x,
-                                facet.getVertex(significantPoints.get(i)).getNormal().y,
-                                facet.getVertex(significantPoints.get(i)).getNormal().z),null, null);
-                        } else {
-                            ni = new MeshPoint (new Vector3d(normals[significantPoints.get(i)].getPosition().x,normals[significantPoints.get(i)].getPosition().y,
-                                normals[significantPoints.get(i)].getPosition().z), null, null);
-                        }
-                        ni = ni.divide(ni.abs());
-                        
-                        MeshPoint nj;
-                        if(facet.getVertex(significantPoints.get(j)).getNormal() != null) {
-                            nj = new MeshPoint(new Vector3d(facet.getVertex(significantPoints.get(j)).getNormal().x,
-                                facet.getVertex(significantPoints.get(j)).getNormal().y,
-                                facet.getVertex(significantPoints.get(j)).getNormal().z),null, null);
-                        } else {
-                            nj = new MeshPoint (new Vector3d(normals[significantPoints.get(j)].getPosition().x,normals[significantPoints.get(j)].getPosition().y,
-                            normals[significantPoints.get(j)].getPosition().z), null, null);
-                        }
-                        
-                        nj = nj.divide(nj.abs());*/
-                        
-                        ni = new MeshPoint (new Vector3d(normals[significantPoints.get(i)].getPosition().x,normals[significantPoints.get(i)].getPosition().y,
-                                normals[significantPoints.get(i)].getPosition().z), null, null);
+                        ni = new MeshPoint (new Vector3d(normals[significantPoints.get(i)].getPosition().x,
+                                normals[significantPoints.get(i)].getPosition().y,
+                                normals[significantPoints.get(i)].getPosition().z),
+                                new Vector3d(), new Vector3d());
                         
                         ni = ni.dividePosition(ni.abs());
                         
                         MeshPoint nj;
-                        nj = new MeshPoint (new Vector3d(normals[significantPoints.get(j)].getPosition().x,normals[significantPoints.get(j)].getPosition().y,
-                            normals[significantPoints.get(j)].getPosition().z), null, null);
-                        
+                        nj = new MeshPoint (new Vector3d(normals[significantPoints.get(j)].getPosition().x,
+                                normals[significantPoints.get(j)].getPosition().y,
+                                normals[significantPoints.get(j)].getPosition().z),
+                                new Vector3d(), new Vector3d());
+                       
                         nj = nj.dividePosition(nj.abs());
                         
                         MeshPoint normVec = ni.subtractPosition(nj);
                         normVec = normVec.dividePosition(normVec.abs());
                         double normCos = normVec.dotProduct(normal);
 
-                        if (Math.abs(normCos) >= conf.getMinNormAngleCos()) {
+                        if (Math.abs(normCos) >= config.getMinNormAngleCos()) {
                             
                             Plane newPlane = new Plane(normal.getPosition().x, normal.getPosition().y, normal.getPosition().z, d);
-                            int currentVotes = GetVotes(
-                                newPlane, 
+                            int currentVotes = getVotes(newPlane, 
                                 significantCurvatures, 
                                 significantPoints, 
-                                0.5, 
-                                conf.getMinAngleCos(), 
-                                conf.getMinNormAngleCos(), 
-                                boundingBox.getMaxDiag() * conf.getMaxRelDistance());
+                                config.getMinCurvRatio(), 
+                                config.getMinAngleCos(), 
+                                config.getMinNormAngleCos(), 
+                                boundingBox.getMaxDiag() * config.getMaxRelDistance());
                             
 
                             planes.add(new AproxSymmetryPlane(newPlane, currentVotes));
@@ -705,7 +673,7 @@ public class SymmetryCounter {
             }
             progressMonitor.setNote("Task step: " + (int) ((i + 1) * percentsPerStep));
             progressMonitor.setProgress(i);
-        };
+        }
         
         Collections.sort(planes);
         ArrayList<AproxSymmetryPlane> finalPlanes = new ArrayList<>();
@@ -715,10 +683,9 @@ public class SymmetryCounter {
             }
         }
         Plane finalPlane = new Plane(0, 0, 0, 0);
-        //v plane nic neni 
-        MeshPoint refDir = new MeshPoint(new Vector3d(finalPlanes.get(0).a, finalPlanes.get(0).b, finalPlanes.get(0).c), null, null);
+        MeshPoint refDir = new MeshPoint(new Vector3d(finalPlanes.get(0).a, finalPlanes.get(0).b, finalPlanes.get(0).c), new Vector3d(), new Vector3d());
         for (int i = 0; i < finalPlanes.size(); i++) {
-            MeshPoint normDir = new MeshPoint(new Vector3d(finalPlanes.get(i).a, finalPlanes.get(i).b, finalPlanes.get(i).c), null, null);
+            MeshPoint normDir = new MeshPoint(new Vector3d(finalPlanes.get(i).a, finalPlanes.get(i).b, finalPlanes.get(i).c), new Vector3d(), new Vector3d());
             if (normDir.dotProduct(refDir) < 0) {
                 finalPlane.a -= finalPlanes.get(i).a;
                 finalPlane.b -= finalPlanes.get(i).b;
@@ -733,11 +700,10 @@ public class SymmetryCounter {
             }
         }
         finalPlane.normalize();
-        if (conf.isAveraging()){
+        if (config.isAveraging()){
             plane = finalPlane;
         }
-        JOptionPane.showMessageDialog(frameMain, "Final plane: " + plane.a + " " + plane.b + " " + plane.c + " " +
-                plane.d + "\n" + "Votes: " + lastVotes, "Symmetry estimate done.", 0,
+        JOptionPane.showMessageDialog(panel, "Symmetry estimate done.", "Done", 0,
                 new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/exportedModel.png")));
 
         progressMonitor.close();
@@ -749,8 +715,8 @@ public class SymmetryCounter {
      * @param plane Plane computed as symmetry plane
      * @return mesh that represents facet with computed plane of approximate symmetry
      */
-    public SymmetryCounter mergeWithPlane(Plane plane) {
-        MeshPoint normal = new MeshPoint(new Vector3d(plane.a, plane.b, plane.c), null, null);
+    public SymmetryEstimator mergeWithPlane(Plane plane) {
+        MeshPoint normal = new MeshPoint(new Vector3d(plane.a, plane.b, plane.c), new Vector3d(), new Vector3d());
         MeshPoint midPoint = boundingBox.getMidPoint();
 
         double alpha = -((plane.a * midPoint.getPosition().x) + 
@@ -764,12 +730,12 @@ public class SymmetryCounter {
                 midPointOnPlane.getPosition().z + plane.d;
 
         MeshPoint a;
-        if (Math.abs(normal.dotProduct(new MeshPoint(new Vector3d(0.0, 1.0, 0.0), null, null))) 
-                > Math.abs(normal.dotProduct(new MeshPoint(new Vector3d (1.0, 0.0, 0.0), null, null)))) {
-                a = normal.crossProduct(new MeshPoint(new Vector3d(1.0, 0.0, 0.0), null, null));
+        if (Math.abs(normal.dotProduct(new MeshPoint(new Vector3d(0.0, 1.0, 0.0), new Vector3d(), new Vector3d()))) 
+                > Math.abs(normal.dotProduct(new MeshPoint(new Vector3d (1.0, 0.0, 0.0), new Vector3d(), new Vector3d())))) {
+                a = normal.crossProduct(new MeshPoint(new Vector3d(1.0, 0.0, 0.0), new Vector3d(), new Vector3d()));
         }
         else {
-            a = normal.crossProduct(new MeshPoint(new Vector3d(0.0, 1.0, 0.0), null, null));
+            a = normal.crossProduct(new MeshPoint(new Vector3d(0.0, 1.0, 0.0), new Vector3d(), new Vector3d()));
         }
         a = a.dividePosition(a.abs());
 
@@ -777,10 +743,9 @@ public class SymmetryCounter {
         b = b.dividePosition(b.abs());
        
 
-        SymmetryCounter planeMesh = Plane.createPlaneMesh(midPointOnPlane, a, b,
+        SymmetryEstimator planeMesh = Plane.createPlaneMesh(midPointOnPlane, a, b,
                 (boundingBox.getMaxPoint().subtractPosition(boundingBox.getMinPoint())).getPosition().x);
 
-
         return mergeMeshWith(planeMesh);
     }
     
@@ -789,7 +754,7 @@ public class SymmetryCounter {
      * @param s mesh that will be merged
      * @return mesh with merged vertices from both meshes 
      */
-    public SymmetryCounter mergeMeshWith(SymmetryCounter s) {
+    public SymmetryEstimator mergeMeshWith(SymmetryEstimator s) {
         CornerTableRow row1 = new CornerTableRow(facet.getNumberOfVertices(), -1);
         CornerTableRow row2 = new CornerTableRow(facet.getNumberOfVertices() + 1, facet.getNumberOfVertices() + 3);
         CornerTableRow row3 = new CornerTableRow(facet.getNumberOfVertices() + 2, -1);
diff --git a/MeshModel/pom.xml b/MeshModel/pom.xml
index f9ee0adf..b35bd962 100644
--- a/MeshModel/pom.xml
+++ b/MeshModel/pom.xml
@@ -100,6 +100,12 @@
             <version>RELEASE</version>
             <scope>test</scope>
         </dependency>
+	<dependency>
+            <groupId>cz.findetis</groupId>
+            <artifactId>GUI</artifactId>
+            <version>2.0</version>
+            <type>jar</type>
+        </dependency>
     </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java
index f38c39c0..dee4a81d 100644
--- a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java
+++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java
@@ -5,7 +5,6 @@ import javax.vecmath.Vector3d;
  *
  * @author Matej Lukeš
  */
-//prerobenee
 public class MeshPoint {
     protected Vector3d position, normal, texCoord;
 
diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshModelExporter.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshModelExporter.java
deleted file mode 100644
index a7e93a34..00000000
--- a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshModelExporter.java
+++ /dev/null
@@ -1,219 +0,0 @@
-package cz.fidentis.analyst.mesh.io;
-/**
- * @author Natália Bebjaková
- * <p>
- * Creates new directory and exports model to .obj file in this created directory
- * Exports model's vertices and normals, if there are some
- */
-
-import cz.fidentis.analyst.mesh.core.MeshFacet;
-import cz.fidentis.analyst.mesh.core.MeshModel;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
-import java.util.Locale;
-
-/**
- * @author Natalia Bebjakova
- */
-public class MeshModelExporter {
-    /**
-     * Helping representation of triangle in symmetry estimate
-     *
-     * @author Natalia Bebjakova
-     */
-    private class Triangle {
-        private int vertex1;
-        private int vertex2;
-        private int vertex3;
-
-        /**
-         * Creates new triangle
-         *
-         * @param v1 first vertex
-         * @param v2 second vertex
-         * @param v3 third vertex
-         */
-        Triangle(int v1, int v2, int v3) {
-            this.vertex1 = v1;
-            this.vertex2 = v2;
-            this.vertex3 = v3;
-        }
-
-        /**
-         * @return first vertex of triangle
-         */
-        public int getVertex1() {
-            return vertex1;
-        }
-
-        /**
-         * @param vertex1 new vertex
-         */
-        public void setVertex1(int vertex1) {
-            this.vertex1 = vertex1;
-        }
-
-        /**
-         * @return second vertex of triangle
-         */
-        public int getVertex2() {
-            return vertex2;
-        }
-
-        /**
-         * @param vertex2 new vertex
-         */
-        public void setVertex2(int vertex2) {
-            this.vertex2 = vertex2;
-        }
-
-        /**
-         * @return third vertex of triangle
-         */
-        public int getVertex3() {
-            return vertex3;
-        }
-
-        /**
-         * @param vertex3 new vertex
-         */
-        public void setVertex3(int vertex3) {
-            this.vertex3 = vertex3;
-        }
-
-        /**
-         * Triangles are same if they have same vertices
-         *
-         * @param obj other triangle
-         * @return true if two triangles are same
-         */
-        @Override
-        public boolean equals(Object obj) {
-            if (!(obj instanceof Triangle)) {
-                return false;
-            }
-            Triangle t = (Triangle) obj;
-            return ((this.vertex1 == t.vertex1) || (this.vertex1 == t.vertex2) || (this.vertex1 == t.vertex3)) &&
-                    ((this.vertex2 == t.vertex1) || (this.vertex2 == t.vertex2) || (this.vertex2 == t.vertex3)) &&
-                    ((this.vertex3 == t.vertex1) || (this.vertex3 == t.vertex2) || (this.vertex3 == t.vertex3));
-        }
-
-        /**
-         * @return hascode of the triangle
-         */
-        @Override
-        public int hashCode() {
-            return (this.vertex1 * 100 ^ this.vertex2 * 100 ^ this.vertex3);
-        }
-    }
-
-    /**
-     * Model to be exported
-     */
-    private MeshModel model;
-
-    /**
-     * @param model model to be exported.
-     */
-    public MeshModelExporter(MeshModel model) {
-        this.model = model;
-    }
-
-    /**
-     * @param exportFile exported file name
-     * @throws IOException Error
-     */
-    public void exportModelToObj(File exportFile) throws IOException {
-        for (MeshFacet facet : model.getFacets()) {
-            exportFacetToObj(facet, exportFile);
-        }
-    }
-
-    /**
-     * Export model to OBJ file.
-     *
-     * @param facet      Facet of the model to be exported, so far every model has one
-     * @param exportFile file for exporting.
-     * @throws IOException Error
-     */
-    public void exportFacetToObj(MeshFacet facet, File exportFile) throws IOException {
-        int formatIndex = exportFile.getName().lastIndexOf(".");
-        String fileName; //name that is writen to file
-
-        if (formatIndex < 0) {
-            fileName = exportFile.getName();
-        } else {
-            fileName = exportFile.getName().substring(0, formatIndex);
-        }
-
-        File exportDirectory = new File(exportFile.getParent() + File.separator + fileName);
-        exportDirectory.mkdir(); //creates new directory
-
-        exportFile = new File(exportDirectory + File.separator + fileName + ".obj");
-
-        try (BufferedWriter out = new BufferedWriter(new FileWriter(exportFile))) {
-
-            out.write("mtllib " + fileName + ".mtl" + "\n");
-
-            DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.getDefault());
-            otherSymbols.setDecimalSeparator('.');  //dot as separator for decimal numbers
-            DecimalFormat df = new DecimalFormat("#.####", otherSymbols);
-
-            //writes vertices of the facet to file
-            for (int j = 0; j < facet.getNumberOfVertices(); j++) {
-                out.write("v " + df.format(facet.getVertices().get(j).getPosition().x) + " "
-                        + df.format(facet.getVertices().get(j).getPosition().y) + " "
-                        + df.format(facet.getVertices().get(j).getPosition().z) + "\n");
-            }
-            out.write("#" + facet.getNumberOfVertices() + " vertices" + "\n");
-
-            //detects if first vertex has normal
-            boolean hasAllNormals = facet.getVertices().get(0).getNormal() != null;
-
-            //writes normals if there are any 
-            for (int i = 0; i < facet.getNumberOfVertices(); i++) {
-                if (facet.getVertex(i).getNormal() != null) {
-                    out.write("vn " + df.format(facet.getVertices().get(i).getNormal().x) + " "
-                            + df.format(facet.getVertices().get(i).getNormal().y) + " "
-                            + df.format(facet.getVertices().get(i).getNormal().z) + "\n");
-                }
-            }
-
-            //computes triangles of facet
-            Triangle[] triangles = new Triangle[facet.getCornerTable().getSize() / 3];
-            for (int i = 0; i < facet.getCornerTable().getSize(); i += 3) {
-                Triangle t = new Triangle(facet.getCornerTable().getRow(i).getVertexIndex(),
-                        facet.getCornerTable().getRow(i + 1).getVertexIndex(),
-                        facet.getCornerTable().getRow(i + 2).getVertexIndex());
-                triangles[(i / 3)] = t;
-            }
-
-            //writes triangles of facet
-            writeTrianglesOfFacet(triangles, out, facet, hasAllNormals);
-            out.write("\n");
-        }
-    }
-
-    private void writeTrianglesOfFacet(Triangle[] triangles,
-                                       BufferedWriter out,
-                                       MeshFacet facet,
-                                       boolean hasAllNormals) throws IOException {
-        for (Triangle triangle : triangles) {
-            out.write("f ");
-            if (facet.getVertex(triangle.getVertex1()).getNormal() != null && hasAllNormals) {
-                out.write((triangle.getVertex1() + 1) + "//" + (triangle.getVertex1() + 1) + " "
-                        + (triangle.getVertex2() + 1) + "//" + (triangle.getVertex2() + 1) + " "
-                        + (triangle.getVertex3() + 1) + "//" + (triangle.getVertex3() + 1) + "\n");
-            } else {
-                out.write((triangle.getVertex1() + 1) + " " + (triangle.getVertex2() + 1) +
-                        " " + (triangle.getVertex3() + 1) + "\n");
-            }
-        }
-    }
-}
-
diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjExporter.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjExporter.java
new file mode 100644
index 00000000..87e04920
--- /dev/null
+++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/MeshObjExporter.java
@@ -0,0 +1,119 @@
+package cz.fidentis.analyst.mesh.io;
+
+import cz.fidentis.analyst.mesh.core.MeshFacet;
+import cz.fidentis.analyst.mesh.core.MeshModel;
+import cz.fidentis.analyst.symmetry.Triangle;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
+/**
+ * Utility class for exporting model to .obj file (vertices, normals and triangles)
+ * 
+ * @author Natalia Bebjakova
+ */
+public class MeshObjExporter {
+    /**
+     * Model to be exported
+     */
+    MeshModel model;
+    
+    /**
+     *
+     * @param model model to be exported.
+     */
+    public MeshObjExporter(MeshModel model) {
+        this.model = model;
+    }
+    
+    /**
+     * Exports all facets of the model to .obj file
+     * 
+     * @param exportFile File to which model is exported
+     * @throws IOException 
+     */
+    public void exportModelToObj(File exportFile) throws IOException {
+        for(MeshFacet facet : model.getFacets()) {
+            exportFacetToObj(facet, exportFile);
+        }
+    }
+
+    /**
+     * Exports facet to OBJ file.
+     * It writes vertices, normals and triangles to file
+     * 
+     * @param facet Facet of the model to be exported, so far every model has one
+     * @param exportFile file for exporting.
+     * @throws java.io.IOException 
+     */
+    public void exportFacetToObj(MeshFacet facet, File exportFile) throws IOException {
+        int formatIndex = exportFile.getName().lastIndexOf(".");
+        String fileName; //name that is writen to file
+        
+        if (formatIndex < 0) {
+            fileName = exportFile.getName();
+        } else {
+            fileName = exportFile.getName().substring(0, formatIndex);
+        }
+
+        exportFile = new File(exportFile.getParent() + File.separator + fileName + ".obj");
+        
+        try (FileWriter fstream = new FileWriter(exportFile);
+        BufferedWriter out = new BufferedWriter(fstream);) {
+           
+            DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.getDefault());
+            otherSymbols.setDecimalSeparator('.');  //dot as separator for decimal numbers
+            DecimalFormat df = new DecimalFormat("#.####", otherSymbols);
+             
+            //writes vertices of the facet to file
+            for (int j = 0; j < facet.getNumberOfVertices(); j++) {
+                out.write("v " + df.format(facet.getVertices().get(j).getPosition().x) + " " 
+                        + df.format(facet.getVertices().get(j).getPosition().y) + " " 
+                        + df.format(facet.getVertices().get(j).getPosition().z) + "\n");
+            }
+            
+            //detects if first vertex has normal
+            boolean hasAllNormals = facet.getVertices().get(0).getNormal() != null;
+            
+            //writes normals if there are any 
+            for (int i = 0; i < facet.getNumberOfVertices(); i++) {
+                if(facet.getVertex(i).getNormal() != null) {
+                out.write("vn " + df.format(facet.getVertices().get(i).getNormal().x) + " "
+                        + df.format(facet.getVertices().get(i).getNormal().y) + " "
+                        + df.format(facet.getVertices().get(i).getNormal().z) + "\n");
+                }
+            }
+            
+            //computes triangles of facet
+            Triangle[] triangles = new Triangle[facet.getCornerTable().getSize() / 3];
+            for (int i = 0; i < facet.getCornerTable().getSize(); i += 3) {
+                Triangle t = new Triangle(facet.getCornerTable().getRow(i).getVertexIndex(),
+                    facet.getCornerTable().getRow(i + 1).getVertexIndex(),
+                    facet.getCornerTable().getRow(i + 2).getVertexIndex());
+                triangles[(i / 3)] = t;
+            }
+            
+            //writes triangles of facet
+            for (Triangle triangle : triangles) {
+                out.write("f ");
+                if (facet.getVertex(triangle.getVertex1()).getNormal() != null && hasAllNormals) {
+                    out.write((triangle.getVertex1() + 1) + "//" + (triangle.getVertex1() + 1) + " "
+                            + (triangle.getVertex2() + 1) + "//" + (triangle.getVertex2() + 1) + " "
+                            + (triangle.getVertex3() + 1) + "//" + (triangle.getVertex3() + 1) + "\n"); 
+                } else {
+                    out.write((triangle.getVertex1() + 1) + " " + (triangle.getVertex2() + 1) +
+                            " " + (triangle.getVertex3() + 1) + "\n");   
+                }
+            }
+            out.write("#" + triangles.length + " triangles" + "\n");
+            out.write("\n");
+            out.close();
+            fstream.close();
+        }
+    }
+}
+
diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java
index 7eec1eff..2507d877 100644
--- a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java
+++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java
@@ -1,43 +1,48 @@
 package cz.fidentis.analyst.mesh.io;
 
-import java.io.File;
 import javax.swing.filechooser.FileFilter;
+import java.io.File;
 
 /**
- * @author Natalia Bebjakova
- * <p>
- * Enables to choose just extensions we want in the filechooser
+ * @author Natália Bebjaková
+ * 
+ * Class that enables to choose just extensions we want in the filechooser 
  */
 public class ModelFileFilter extends FileFilter {
 
     private final String[] extension;
     private final String description;
-
+    
     /**
-     * @param extension   Extentions of files
+     * 
+     * @param extension Extentions of files
      * @param description Description
      */
-    public ModelFileFilter(String[] extension, String description) {
+    public ModelFileFilter(String[] extension, String description)
+    {
         this.extension = extension;
         this.description = description;
     }
 
     /**
-     * @param f File
-     * @return Whether file has chosen extension or not
+     * 
+     * @param f File 
+     * @return Whether file has chosen extension or not 
      */
     @Override
-    public boolean accept(File f) {
+    public boolean accept(File f)
+    {
         boolean accepted = false;
-        for (int i = 0; i < extension.length; i++) {
-            if (f.isDirectory() || f.getName().endsWith(extension[i])) {
+        for (String extension1 : extension) {
+            if (f.isDirectory() || f.getName().endsWith(extension1)) {
                 accepted = true;
             }
         }
         return accepted;
     }
-
+    
     /**
+     * 
      * @return description
      */
     @Override
-- 
GitLab