diff --git a/GUI/GUI.iml b/GUI/GUI.iml
new file mode 100644
index 0000000000000000000000000000000000000000..0d65c1a1d59c3a0442954dbca08b2beecdca97ab
--- /dev/null
+++ b/GUI/GUI.iml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.netbeans.api:org-netbeans-api-annotations-common:RELEASE82" level="project" />
+    <orderEntry type="module" module-name="MeshModel" />
+    <orderEntry type="library" name="Maven: java3d:j3d-core-utils:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: java3d:vecmath:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: java3d:j3d-core:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.mokiat:java-data-front:v2.0.0" level="project" />
+    <orderEntry type="library" name="Maven: javax.vecmath:vecmath:1.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jogamp.jogl:jogl-all-mobile:2.0.2-rc12" level="project" />
+    <orderEntry type="library" name="Maven: org.jogamp.jogl:jogl-all:2.0-rc11" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/GUI/pom.xml b/GUI/pom.xml
index dc7ff66d386df55cb29c5d2e7af9474a3c52dd66..704b5e6fe0e711659ed6335215307ed72571e82b 100644
--- a/GUI/pom.xml
+++ b/GUI/pom.xml
@@ -56,22 +56,6 @@
             <artifactId>org-netbeans-api-annotations-common</artifactId>
             <version>${netbeans.version}</version>
         </dependency>
-        <dependency>
-            <groupId>cz.findetis</groupId>
-            <artifactId>MeshModel</artifactId>
-            <version>2.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jogamp.jogl</groupId>
-            <artifactId>jogl-all-mobile</artifactId>
-            <version>2.0.2-rc12</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jogamp.jogl</groupId>
-            <artifactId>jogl-all</artifactId>
-            <version>2.0-rc11</version>
-        </dependency>
     </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java
deleted file mode 100644
index be3b9a8fb55183d3cfbfecd716907b90b2e23679..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/Canvas.java
+++ /dev/null
@@ -1,629 +0,0 @@
-package cz.fidentis.analyst.gui;
-
-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.io.File;
-import java.util.Timer;
-import java.util.TimerTask;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-
-/**
- *
- * @author Natalia Bebjakova
- *
- * Canvas for displaying models containing GLCanvas and navigation.
- */
-public class Canvas extends javax.swing.JPanel {
-    protected GLCanvas glCanvas;
-    protected long startClickTime = 0;
-
-    protected TimerTask task;
-    protected Timer timer;
-
-    protected GeneralGLEventListener listener;
-
-    private static final int FPS = 60; // animator's target frames per second
-    private final FPSAnimator animator;
-
-    protected boolean drawWireModel;  // decides if model is displayed as wire-frame
-
-    /**
-     * Creates new form Canvas
-     */
-    public Canvas() {
-        initComponents();
-
-        // gl version 2 is used
-        GLCapabilities capabilities = new GLCapabilities(GLProfile.get(GLProfile.GL2));
-        capabilities.setDoubleBuffered(true);
-
-        // creates new glCanvas panel for displaying model
-        glCanvas = new GLCanvas(capabilities);
-        jPanel1.add(glCanvas);
-        glCanvas.setVisible(false);
-        glCanvas.setBackground(Color.black);
-
-        // enables glCanvas to react to events
-        glCanvas.requestFocusInWindow();
-        glCanvas.setSize(getWidth() - getInsets().left - getInsets().right, getHeight() - getInsets().top - getInsets().bottom);
-
-        // enables animated transition
-        animator = new FPSAnimator(glCanvas, FPS, true);
-        animator.start();
-
-        // listener enables to display and manipulate with the model
-        listener = new GeneralGLEventListener(this);
-
-        // hand cursor when moving mouse on components
-        setCursorOnComponents();
-
-        this.validate();
-    }
-
-    /**
-     * Sets hand cursor when moving mouse on components
-     */
-    private void setCursorOnComponents() {
-        loadModelButton.setLocation(this.getWidth() / 2, this.getHeight() / 2);
-        downNavigationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        leftNavigationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        upNavigationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        plusNavigationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        minusNavigationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        loadModelButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        rightNavigationButton1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-    }
-
-    /**
-     * Changing the size of glCanvas
-     * @param d New size of glCanvas
-     */
-    public void resizeCanvas(Dimension d) {
-        jPanel1.setSize(d);
-        glCanvas.setSize(d);
-        this.validate();
-        this.repaint();
-        loadModelButton.setLocation(this.getWidth() / 2 - 35, this.getHeight() / 2 - 40);
-    }
-
-    /**
-     *
-     * @param v Decides if button for loading model is visible
-     */
-    public void setImportLabelVisible(Boolean v) {
-        loadModelButton.setVisible(v);
-    }
-
-    /**
-     * Loads model selected in file chooser by user
-     */
-    public void loadModel () {
-        String[] extensions = new String[2];
-        extensions[0] = "obj";
-        extensions[1] = "OBJ";
-
-        //enables to shows just .obj files in file chooser
-        ModelFileFilter filter = new ModelFileFilter(extensions, "*.obj");
-        JFileChooser jFileChooser1 = new JFileChooser();
-        jFileChooser1.setPreferredSize(new Dimension (800,500));
-
-        jFileChooser1.addChoosableFileFilter(filter);
-
-        //file chooser will appear on top of glCanvas
-        jFileChooser1.showOpenDialog(this);
-        jFileChooser1.setDialogTitle("Import obj file");
-
-        File[] fileArray = new File[1];
-        //saves selected file by user as first element in array
-        fileArray[0] = jFileChooser1.getSelectedFile();
-
-        if (fileArray.length <= 0) {
-            System.out.print("No file chosen.");
-        } else {
-            this.addModel(fileArray[0]);
-        }
-        glCanvas.setVisible(true);
-    }
-
-    /**
-     * Loads the model in .obj format from file and adds this model to listener for displaying.
-     * If file does not contain 3D model or model is not correct, shows dialog with message
-     *
-     * @param file File from which model will be read
-     */
-    private void addModel (final File file) {
-        try {
-            //static class MeshObjLaoder reads .obj file into model
-            MeshModel model = MeshObjLoader.read(new File (file.getPath()));
-            if (model != null) {
-                // listener enables to manipulate and interact with model
-                listener.setCameraPosition(0, 0, 300);
-                glCanvas.addGLEventListener(listener);
-                listener.setModels(model);
-                loadModelButton.setVisible(false);
-            }
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            JOptionPane pane = new JOptionPane();
-            pane.showMessageDialog(this, "File doesn't contain any model");
-            System.out.println ("File doesn't contain any model");
-
-        };
-
-    }
-
-    /**
-     * This method is called from within the constructor to initialize the form.
-     * WARNING: Do NOT modify this code. The content of this method is always
-     * regenerated by the Form Editor.
-     */
-    @SuppressWarnings("unchecked")
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        jLayeredPane1 = new javax.swing.JLayeredPane();
-        resetButton = new javax.swing.JLabel();
-        upNavigationButton = new javax.swing.JButton();
-        leftNavigationButton = new javax.swing.JButton();
-        minusNavigationButton = new javax.swing.JButton();
-        downNavigationButton = new javax.swing.JButton();
-        plusNavigationButton = new javax.swing.JButton();
-        jLabel1 = new javax.swing.JLabel();
-        loadModelButton = new javax.swing.JLabel();
-        rightNavigationButton1 = new javax.swing.JButton();
-        jPanel1 = new javax.swing.JPanel();
-
-        setBackground(new java.awt.Color(0, 0, 0));
-        setLayout(new java.awt.BorderLayout());
-
-        jLayeredPane1.setBackground(new java.awt.Color(0, 0, 0));
-        jLayeredPane1.setOpaque(true);
-        jLayeredPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
-            public void componentResized(java.awt.event.ComponentEvent evt) {
-                jLayeredPane1ComponentResized(evt);
-            }
-            public void componentShown(java.awt.event.ComponentEvent evt) {
-                jLayeredPane1ComponentShown(evt);
-            }
-        });
-
-        resetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/resetButton.png"))); // NOI18N
-        resetButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                resetButtonMouseMoved(evt);
-            }
-        });
-        resetButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                resetButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                resetButtonMouseExited(evt);
-            }
-        });
-        jLayeredPane1.add(resetButton);
-        resetButton.setBounds(60, 70, 40, 30);
-
-        upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/upButton.png"))); // NOI18N
-        upNavigationButton.setBorderPainted(false);
-        upNavigationButton.setContentAreaFilled(false);
-        upNavigationButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                upNavigationButtonMousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                upNavigationButtonMouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(upNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(upNavigationButton);
-        upNavigationButton.setBounds(60, 40, 30, 30);
-
-        leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/leftButton.png"))); // NOI18N
-        leftNavigationButton.setBorderPainted(false);
-        leftNavigationButton.setContentAreaFilled(false);
-        leftNavigationButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                leftNavigationButtonMousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                leftNavigationButtonMouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(leftNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(leftNavigationButton);
-        leftNavigationButton.setBounds(30, 70, 30, 30);
-
-        minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/minus.png"))); // NOI18N
-        minusNavigationButton.setBorderPainted(false);
-        minusNavigationButton.setContentAreaFilled(false);
-        minusNavigationButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                minusNavigationButtonMousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                minusNavigationButtonMouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(minusNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(minusNavigationButton);
-        minusNavigationButton.setBounds(80, 130, 30, 30);
-
-        downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/downButton.png"))); // NOI18N
-        downNavigationButton.setBorderPainted(false);
-        downNavigationButton.setContentAreaFilled(false);
-        downNavigationButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                downNavigationButtonMousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                downNavigationButtonMouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(downNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(downNavigationButton);
-        downNavigationButton.setBounds(60, 100, 30, 30);
-
-        plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/plus.png"))); // NOI18N
-        plusNavigationButton.setBorderPainted(false);
-        plusNavigationButton.setContentAreaFilled(false);
-        plusNavigationButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                plusNavigationButtonMousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                plusNavigationButtonMouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(plusNavigationButton, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(plusNavigationButton);
-        plusNavigationButton.setBounds(40, 130, 30, 30);
-
-        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/navigBackground.png"))); // NOI18N
-        jLayeredPane1.add(jLabel1);
-        jLabel1.setBounds(30, 40, 90, 90);
-
-        loadModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/loadCanva.png"))); // NOI18N
-        loadModelButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                loadModelButtonMouseMoved(evt);
-            }
-        });
-        loadModelButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                loadModelButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                loadModelButtonMouseExited(evt);
-            }
-        });
-        jLayeredPane1.add(loadModelButton);
-        loadModelButton.setBounds(190, 80, 210, 220);
-
-        rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/rightButton.png"))); // NOI18N
-        rightNavigationButton1.setBorderPainted(false);
-        rightNavigationButton1.setContentAreaFilled(false);
-        rightNavigationButton1.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mousePressed(java.awt.event.MouseEvent evt) {
-                rightNavigationButton1MousePressed(evt);
-            }
-            public void mouseReleased(java.awt.event.MouseEvent evt) {
-                rightNavigationButton1MouseReleased(evt);
-            }
-        });
-        jLayeredPane1.setLayer(rightNavigationButton1, javax.swing.JLayeredPane.MODAL_LAYER);
-        jLayeredPane1.add(rightNavigationButton1);
-        rightNavigationButton1.setBounds(90, 70, 30, 30);
-
-        jPanel1.setBackground(new java.awt.Color(0, 0, 0));
-        jPanel1.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
-            public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
-                jPanel1MouseWheelMoved(evt);
-            }
-        });
-        jPanel1.setLayout(new java.awt.BorderLayout());
-        jLayeredPane1.add(jPanel1);
-        jPanel1.setBounds(0, 0, 0, 0);
-
-        add(jLayeredPane1, java.awt.BorderLayout.CENTER);
-    }// </editor-fold>//GEN-END:initComponents
-
-    /**
-     *
-     * @param evt Resizing glCanvas cantaining components
-     */
-    private void jLayeredPane1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jLayeredPane1ComponentResized
-        jPanel1.setBounds(0, 0, jLayeredPane1.getWidth(), jLayeredPane1.getHeight());
-        glCanvas.setBounds(jLayeredPane1.getX(), jLayeredPane1.getY(), jLayeredPane1.getWidth(), jLayeredPane1.getHeight());
-        loadModelButton.setLocation(this.getWidth() / 2 - 35, this.getHeight() / 2 - 40);
-    }//GEN-LAST:event_jLayeredPane1ComponentResized
-
-    /**
-     *
-     * @param evt Showing glCanvas cantaining components
-     */
-    private void jLayeredPane1ComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jLayeredPane1ComponentShown
-        jPanel1.setBounds(0, 0, jLayeredPane1.getWidth(), jLayeredPane1.getHeight());
-        glCanvas.setBounds(jLayeredPane1.getX(), jLayeredPane1.getY(), jLayeredPane1.getWidth(), jLayeredPane1.getHeight());
-        loadModelButton.setLocation(this.getWidth() / 2 - 35, this.getHeight() / 2 - 40);
-    }//GEN-LAST:event_jLayeredPane1ComponentShown
-
-    /**
-     *
-     * @param evt Enables to rotate left the model when left navigation button is pressed
-     */
-    private void leftNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftNavigationButtonMousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.rotateLeft(2);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/leftButtonPressed.png")));
-    }//GEN-LAST:event_leftNavigationButtonMousePressed
-
-    /**
-     *
-     * @param evt Enables to rotate up the model when up navigation button is pressed
-     */
-    private void upNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_upNavigationButtonMousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.rotateUp(2);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/upButtonPressed.png")));
-    }//GEN-LAST:event_upNavigationButtonMousePressed
-
-    /**
-     *
-     * @param evt Enables to rotate down the model when down navigation button is pressed
-     */
-    private void downNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_downNavigationButtonMousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.rotateDown(2);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/downButtonPressed.png")));
-    }//GEN-LAST:event_downNavigationButtonMousePressed
-
-    /**
-     *
-     * @param evt Enables to zoom in the model when plus navigation button is pressed
-     */
-    private void plusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_plusNavigationButtonMousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.zoomIn(3);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/plusPressed.png")));
-    }//GEN-LAST:event_plusNavigationButtonMousePressed
-
-    /**
-     *
-     * @param evt Enables to zoom out the model when minus navigation button is pressed
-     */
-    private void minusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minusNavigationButtonMousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.zoomOut(3);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/minusPressed.png")));
-    }//GEN-LAST:event_minusNavigationButtonMousePressed
-
-    /**
-     *
-     * @param evt Stops rotating left
-     */
-    private void leftNavigationButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftNavigationButtonMouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.rotateLeft(22.5);
-        }
-        startClickTime = 0;
-        leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/leftButton.png")));
-    }//GEN-LAST:event_leftNavigationButtonMouseReleased
-
-    /**
-     *
-     * @param evt Stops rotating up
-     */
-    private void upNavigationButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_upNavigationButtonMouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.rotateUp(22.5);
-        }
-        startClickTime = 0;
-        upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/upButton.png")));
-    }//GEN-LAST:event_upNavigationButtonMouseReleased
-
-    /**
-     *
-     * @param evt Stops rotating down
-     */
-    private void downNavigationButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_downNavigationButtonMouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.rotateDown(22.5);
-        }
-        startClickTime = 0;
-        downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/downButton.png")));
-    }//GEN-LAST:event_downNavigationButtonMouseReleased
-
-    /**
-     *
-     * @param evt Stops zooming in
-     */
-    private void plusNavigationButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_plusNavigationButtonMouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.zoomIn(30);
-        }
-        startClickTime = 0;
-        plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/plus.png")));
-    }//GEN-LAST:event_plusNavigationButtonMouseReleased
-
-    /**
-     *
-     * @param evt  Stops zooming out
-     */
-    private void minusNavigationButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minusNavigationButtonMouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.zoomOut(30);
-        }
-        startClickTime = 0;
-        minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/minus.png")));
-    }//GEN-LAST:event_minusNavigationButtonMouseReleased
-
-    /**
-     *
-     * @param evt Laoding the .obj file when button pressed
-     */
-    private void loadModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_loadModelButtonMouseClicked
-        loadModel();
-    }//GEN-LAST:event_loadModelButtonMouseClicked
-
-    /**
-     *
-     * @param evt Enables to zoom in and out the model by mouse wheeling
-     */
-    private void jPanel1MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_jPanel1MouseWheelMoved
-        if (evt.getWheelRotation() > 0) {
-            listener.zoomIn(-5 * evt.getWheelRotation());
-        } else {
-            listener.zoomOut(5 * evt.getWheelRotation());
-        }
-    }//GEN-LAST:event_jPanel1MouseWheelMoved
-
-    /**
-     *
-     * @param evt Design is reacting to mouse movement
-     */
-    private void loadModelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_loadModelButtonMouseMoved
-        loadModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/loadCanvaClicked.png")));
-    }//GEN-LAST:event_loadModelButtonMouseMoved
-
-    /**
-     *
-     * @param evt Design is reacting to mouse movement
-     */
-    private void loadModelButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_loadModelButtonMouseExited
-        loadModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/loadCanva.png")));
-    }//GEN-LAST:event_loadModelButtonMouseExited
-
-    /**
-     *
-     * @param evt Enables to rotate down the model when down navigation button is pressed
-     */
-    private void rightNavigationButton1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightNavigationButton1MousePressed
-        timer = new Timer();
-        startClickTime = System.currentTimeMillis();
-        task = new TimerTask() {
-            @Override
-            public void run() {
-                listener.rotateRight(2);
-            }
-        };
-        timer.schedule(task, 500, 100);
-        rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/rightButtonPressed.png")));
-    }//GEN-LAST:event_rightNavigationButton1MousePressed
-
-    /**
-     *
-     * @param evt Stops rotating right
-     */
-    private void rightNavigationButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightNavigationButton1MouseReleased
-        timer.cancel();
-        if ((System.currentTimeMillis() - startClickTime) < 500) {
-            listener.rotateRight(22.5);
-        }
-        startClickTime = 0;
-        rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/rightButton.png")));
-    }//GEN-LAST:event_rightNavigationButton1MouseReleased
-
-    /**
-     *
-     * @param evt Position of model on glCanvas is set to starting position
-     */
-    private void resetButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseClicked
-        listener.rotationAndSizeRestart();
-    }//GEN-LAST:event_resetButtonMouseClicked
-
-    /**
-     *
-     * @param evt Design is reacting to mouse movement
-     */
-    private void resetButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseMoved
-        resetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/resetButtonPressed.png")));
-        resetButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-    }//GEN-LAST:event_resetButtonMouseMoved
-
-    /**
-     *
-     * @param evt Design is reacting to mouse movement
-     */
-    private void resetButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseExited
-        resetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/resetButton.png")));
-    }//GEN-LAST:event_resetButtonMouseExited
-
-    /**
-     *
-     * @param drawWire Decides if model is displayed as wife-frame
-     */
-    public void setDrawWired(boolean drawWire) {
-        drawWireModel = drawWire;
-    }
-    /**
-     *
-     * @return Returns if model is displayed as wife-frame
-     */
-    public boolean getDrawWired(){
-        return drawWireModel;
-    }
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JButton downNavigationButton;
-    private javax.swing.JLabel jLabel1;
-    private javax.swing.JLayeredPane jLayeredPane1;
-    private javax.swing.JPanel jPanel1;
-    private javax.swing.JButton leftNavigationButton;
-    private javax.swing.JLabel loadModelButton;
-    private javax.swing.JButton minusNavigationButton;
-    private javax.swing.JButton plusNavigationButton;
-    private javax.swing.JLabel resetButton;
-    private javax.swing.JButton rightNavigationButton1;
-    private javax.swing.JButton upNavigationButton;
-    // End of variables declaration//GEN-END:variables
-}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java
deleted file mode 100644
index b3f1378addd8f1c73f685eab5e7ea60a10385344..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/GeneralGLEventListener.java
+++ /dev/null
@@ -1,511 +0,0 @@
-package cz.fidentis.analyst.gui;
-
-import cz.fidentis.analyst.mesh.core.MeshFacet;
-import cz.fidentis.analyst.mesh.core.MeshModel;
-import java.util.ArrayList;
-import javax.media.opengl.GL;
-import static javax.media.opengl.GL.GL_DEPTH_TEST;
-import static javax.media.opengl.GL.GL_FRONT_AND_BACK;
-import static javax.media.opengl.GL.GL_VIEWPORT;
-import javax.media.opengl.GL2;
-import static javax.media.opengl.GL2GL3.GL_FILL;
-import static javax.media.opengl.GL2GL3.GL_LINE;
-import javax.media.opengl.GLAutoDrawable;
-import javax.media.opengl.GLEventListener;
-import static javax.media.opengl.fixedfunc.GLMatrixFunc.GL_MODELVIEW_MATRIX;
-import static javax.media.opengl.fixedfunc.GLMatrixFunc.GL_PROJECTION_MATRIX;
-import javax.media.opengl.glu.GLU;
-import javax.vecmath.Vector3d;
-import javax.vecmath.Vector3f;
-
-/**
- *
- * @author Natalia Bebjakova
- */
-public class GeneralGLEventListener implements GLEventListener {
-    /**
-     * Color behind the model is black
-     */
-    protected static float[] backgroundColor = {0.8f, 0.8f, 0.8f, 0.0f};
-    /**
-     * array of models that are displayed (just one so far)
-     */
-    private ArrayList<MeshModel> models = new ArrayList<>();
-    /**
-     * GLCanvas which listener belongs to
-     */
-    protected Canvas glCanvas;
-    /**
-     * GLU object.
-     */
-    protected GLU glu;
-    protected GL2 gl;
-
-    /**
-     * The last viewport.
-     */
-    protected int[] viewport = new int[4];
-    /**
-     * The last model matrix.
-     */
-    protected float[] modelViewMatrix = new float[16];
-    /**
-     * The last projection matrix.
-     */
-    protected float[] projectionMatrix = new float[16];
-    /**
-     * The X coordinate of the last known mouse position during the scene rotation.
-     */
-    int mouseX = 0;
-    /**
-     * The Y coordinate of the last know mouse position during the scene rotation.
-     */
-    int mouseY = 0;
-
-    protected Vector3f defaultPosition = new Vector3f(0, 0, 300);
-    protected Vector3f currentPosition = new Vector3f(0, 0, 300);
-
-    protected double zCenter = 0;
-    protected double xCenter = 0;
-    protected double yCenter = 0;
-
-    protected double zCameraPosition;
-    protected double xCameraPosition;
-    protected double yCameraPosition;
-
-    protected double zUpPosition = 0;
-    protected double xUpPosition = 0;
-    protected double yUpPosition = 1;
-
-    /**
-     * Decides if model is diplayed as wire-frame
-     */
-    protected boolean wireModel = false;
-    /**
-     * Decides if model is diplayed with textures
-     */
-    protected boolean drawTextures = false;
-
-    /**
-     * Creates new EventListener
-     * @param canvas GLCanvas which listener belongs to
-     */
-    public GeneralGLEventListener(Canvas canvas) {
-        this.glCanvas = canvas;
-    }
-    /**
-     * Invoked when main frame is created
-     * @param glad Glad object
-     */
-    @Override
-    public void init(GLAutoDrawable glad) {
-
-        this.gl = (GL2) glad.getGL();
-        glu = new GLU();
-
-        gl.setSwapInterval(1);
-        gl.glEnable(GL2.GL_LIGHTING);
-        gl.glEnable(GL2.GL_LIGHT0);
-        gl.glEnable(GL2.GL_DEPTH_TEST);
-        gl.glClearColor(0,0,0,0);     // background for GLCanvas
-        gl.glClear(GL2.GL_COLOR_BUFFER_BIT);
-
-        gl.glShadeModel(GL2.GL_SMOOTH);    // use smooth shading
-
-        gl.glDepthFunc(GL2.GL_LESS);
-        gl.glDepthRange(0.0, 1.0);
-        gl.glEnable(GL_DEPTH_TEST);
-
-        gl.glEnable(GL2.GL_NORMALIZE);
-        gl.glDisable(GL2.GL_CULL_FACE);
-    }
-
-    /**
-     * Invoked when main frame is closed
-     * @param glad Glad object
-     */
-    @Override
-    public void dispose(GLAutoDrawable glad) {
-    }
-
-
-    /**
-     * Invoked every frame.
-     * @param glad Glad object
-     */
-    @Override
-    public void display(GLAutoDrawable glad) {
-        wireModel = glCanvas.getDrawWired(); // is wire-frame or not
-        gl.glClearColor(0,0,0,0);     // background for GLCanvas
-        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-        gl.glLoadIdentity();
-
-        // sets model to proper position
-        glu.gluLookAt(xCameraPosition, yCameraPosition, zCameraPosition, xCenter, yCenter, zCenter, xUpPosition, yUpPosition, zUpPosition);
-
-        gl.glShadeModel(GL2.GL_SMOOTH);
-        gl.glGetIntegerv(GL_VIEWPORT, viewport, 0);
-        gl.glGetFloatv(GL_MODELVIEW_MATRIX, modelViewMatrix, 0);
-        gl.glGetFloatv(GL_PROJECTION_MATRIX, projectionMatrix, 0);
-
-        //if there is any model, draw
-        if (models.get(0) != null) {
-            if (wireModel) {
-                gl.glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
-                drawWithoutTextures(models.get(0));
-            } else {
-                gl.glPolygonMode( GL_FRONT_AND_BACK, GL_FILL);
-                drawWithoutTextures(models.get(0));
-            }
-        }
-
-        gl.glPopMatrix();
-        gl.glFlush();
-
-
-        /*if (drawTextures) {
-         gl.glCallList(modelDL);
-         } else {
-         gl.glCallList(modelDLwithoutTxt);
-         }*/
-
-    }
-    public void drawWithoutTextures(MeshModel model) {
-        for (int i = 0; i < model.getFacets().size(); i++) {
-            renderFacet(model.getFacets().get(i));
-        }
-    }
-    
-    private void renderFacet(MeshFacet facet) {
-        gl.glBegin(GL2.GL_TRIANGLES); //vertices are rendered as triangles
-     
-        // get the normal and tex coords indicies for face i      
-        for (int v = 0; v < facet.getCornerTable().getSize(); v++) {           
-            Vector3d norm = facet.getVertices().get(facet.getCornerTable().getRow(v).getVertexIndex()).getNormal(); // render the normals
-            gl.glNormal3d(norm.getX(), norm.getY(), norm.getZ());
-
-            Vector3d vert = facet.getVertices().get(facet.getCornerTable().getRow(v).getVertexIndex()).getPosition();  // render the vertices
-            gl.glVertex3d(vert.getX(), vert.getY(), vert.getZ());
-        }
-        gl.glEnd();
-    }
-
-    /**
-     * Prepared for future textures
-     */
-    /*public void reloadTextures() {
-        for (int i = 0; i < models.size(); i++) {
-            if (models.get(i) != null) {
-                if (models.get(i).getMatrials() != null) {
-                    for (int j = 0; j < models.get(i).getMatrials().getMatrials().size(); j++) {
-                        models.get(i).getMatrials().reloadTextures(gl);
-                    }
-                }
-            }
-        }
-
-    }*/
-
-    /**
-     *
-     * @param glad Glad object
-     * @param x x
-     * @param y y
-     * @param width New width
-     * @param height New Height
-     */
-    @Override
-    public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
-
-        if (height == 0) {
-            height = 1;    // to avoid division by 0 in aspect ratio below
-        }
-        gl.glViewport(x, y, width, height);  // size of drawing area
-
-        float h = (float) height / (float) width;
-
-        gl.glMatrixMode(GL2.GL_PROJECTION);
-        gl.glLoadIdentity();
-
-        glu.gluPerspective(65, width / (float) height, 5.0f, 1500.0f);
-        gl.glMatrixMode(GL2.GL_MODELVIEW);
-        gl.glLoadIdentity();
-
-        gl.glTranslatef(0.0f, 0.0f, -40.0f);
-    }
-
-    /**
-     *
-     * @param model Set model to be displayed
-     */
-    public void setModels(MeshModel model) {
-        models.add(0, model);
-    }
-
-    /**
-     *
-     * @param models Set models to be displayed
-     */
-    public void setModels(ArrayList<MeshModel> models) {
-        this.models = models;
-    }
-
-    /**
-     *
-     * @return Returns displayed model
-     */
-    public MeshModel getModel() {
-        return models.get(0);
-    }
-
-    /**
-     * Removes all models
-     */
-    public void removeModel() {
-        models.clear();
-    }
-
-    /**
-     *
-     * @param x New x position
-     * @param y New y position
-     * @param z New z position
-     */
-    public void setCameraPosition(float x, float y, float z) {
-        currentPosition.setX(x);
-        currentPosition.setY(y);
-        currentPosition.setZ(z);
-
-        setNewCameraPosition(currentPosition);
-        zCameraPosition = defaultPosition.getZ();
-        xCameraPosition = defaultPosition.getX();
-        yCameraPosition = defaultPosition.getY();
-
-    }
-
-
-    /**
-     *
-     * @param position New position of camera
-     */
-    public void setNewCameraPosition(Vector3f position) {
-        xCameraPosition = position.getX();
-        yCameraPosition = position.getY();
-        zCameraPosition = position.getZ();
-
-    }
-
-    /**
-     *
-     * @param degree degree of rotation
-     */
-    public void rotateUp(double degree) {
-
-        rotate(-degree, 0);
-
-    }
-
-    /**
-     *
-     * @param degree degree of rotation
-     */
-    public void rotateDown(double degree) {
-        rotate(degree, 0);
-    }
-
-    /**
-     *
-     * @param degree degree of rotation
-     */
-    public void rotateLeft(double degree) {
-
-        rotate(0, degree);
-
-    }
-
-    /**
-     *
-     * @param degree degree of rotation
-     */
-    public void rotateRight(double degree) {
-        rotate(0, -degree);
-
-    }
-
-    private Vector3f getXaxis() {
-        Vector3f xAxis = new Vector3f((float) ((yCameraPosition - yCenter) * zUpPosition - (zCameraPosition - zCenter) * yUpPosition),
-                (float) ((zCameraPosition - zCenter) * xUpPosition - (xCameraPosition - xCenter) * zUpPosition),
-                (float) ((xCameraPosition - xCenter) * yUpPosition - xUpPosition * (yCameraPosition - yCenter)));
-
-        float length = (float) Math.sqrt(xAxis.getX() * xAxis.getX() + xAxis.getY() * xAxis.getY() + xAxis.getZ() * xAxis.getZ());
-        xAxis.setX(xAxis.getX() / length);
-        xAxis.setY(xAxis.getY() / length);
-        xAxis.setZ(xAxis.getZ() / length);
-        return xAxis;
-    }
-
-    private Vector3f getYaxis() {
-        Vector3f yAxis = new Vector3f((float) xUpPosition, (float) yUpPosition, (float) zUpPosition);
-        float length = (float) Math.sqrt(yAxis.getX() * yAxis.getX() + yAxis.getY() * yAxis.getY() + yAxis.getZ() * yAxis.getZ());
-        yAxis.setX(yAxis.getX() / length);
-        yAxis.setY(yAxis.getY() / length);
-        yAxis.setZ(yAxis.getZ() / length);
-
-        return yAxis;
-    }
-
-    /**
-     * Rotates object around axes that apear as horizontal and vertical axe on
-     * screen (paralel to the sceen edges), intersecting at the center of
-     * screen( i.e head center).
-     *
-     * @param xAngle angle around vertical axe on screen
-     * @param yAngle angle around horizontal axe on screen
-     */
-    public void rotate(double xAngle, double yAngle) {
-        Vector3f xAxis = getXaxis();
-        Vector3f yAxis = getYaxis();
-
-        Vector3f point = new Vector3f((float) xCameraPosition, (float) yCameraPosition, (float) zCameraPosition);
-
-        Vector3f camera = rotateAroundAxe(point, xAxis, Math.toRadians(xAngle));
-        camera = rotateAroundAxe(camera, yAxis, Math.toRadians(yAngle));
-
-        point = new Vector3f((float) xUpPosition, (float) yUpPosition, (float) zUpPosition);
-
-        Vector3f up = rotateAroundAxe(point, xAxis, Math.toRadians(xAngle));
-        up = rotateAroundAxe(up, yAxis, Math.toRadians(yAngle));
-
-        xUpPosition = up.getX();
-        yUpPosition = up.getY();
-        zUpPosition = up.getZ();
-
-        setNewCameraPosition(camera);
-    }
-
-    public void move(double xShift, double yShift) {
-        Vector3f xAxis = getXaxis();
-        Vector3f yAxis = getYaxis();
-
-        Vector3f shift = new Vector3f((float) (xAxis.x * xShift + yAxis.x * yShift), (float) (xAxis.y * xShift + yAxis.y * yShift), (float) (xAxis.z * xShift + yAxis.z * yShift));
-        Vector3f camera = new Vector3f((float) xCameraPosition + shift.x, (float) yCameraPosition + shift.y, (float) zCameraPosition + shift.z);
-        xCenter += shift.x;
-        yCenter += shift.y;
-        zCenter += shift.z;
-
-        setNewCameraPosition(camera);
-
-    }
-
-    /**
-     * Calculate the new position f point from given angle and rotation axe.
-     *
-     * @param point original position
-     * @param u vector of rotation axe
-     * @param angle angle of rotation
-     * @return new position
-     */
-    public Vector3f rotateAroundAxe(Vector3f point, Vector3f u, double angle) {
-        Vector3f p;
-        float x = (float) ((Math.cos(angle) + u.getX() * u.getX() * (1 - Math.cos(angle))) * point.getX()
-                + (u.getX() * u.getY() * (1 - Math.cos(angle)) - u.getZ() * Math.sin(angle)) * point.getY()
-                + (u.getX() * u.getZ() * (1 - Math.cos(angle)) + u.getY() * Math.sin(angle)) * point.getZ());
-        float y = (float) ((u.getX() * u.getY() * (1 - Math.cos(angle)) + u.getZ() * Math.sin(angle)) * point.getX()
-                + (Math.cos(angle) + u.getY() * u.getY() * (1 - Math.cos(angle))) * point.getY()
-                + (u.getY() * u.getZ() * (1 - Math.cos(angle)) - u.getX() * Math.sin(angle)) * point.getZ());
-        float z = (float) ((u.getX() * u.getZ() * (1 - Math.cos(angle)) - u.getY() * Math.sin(angle)) * point.getX()
-                + (u.getY() * u.getZ() * (1 - Math.cos(angle)) + u.getX() * Math.sin(angle)) * point.getY()
-                + (Math.cos(angle) + u.getZ() * u.getZ() * (1 - Math.cos(angle))) * point.getZ());
-        p = new Vector3f(x, y, z);
-
-        return p;
-
-    }
-
-    /**
-     * Sets model to the starting position
-     */
-    public void rotationAndSizeRestart() {
-
-        xUpPosition = 0;
-        yUpPosition = 1;
-        zUpPosition = 0;
-
-        setNewCameraPosition(defaultPosition);
-        xCenter = 0;
-        yCenter = 0;
-        zCenter = 0;
-    }
-
-    /**
-     *
-     * @param distance Distance to be zoom in
-     */
-    public void zoomIn(double distance) {
-        double x = xCameraPosition - xCenter;
-        double y = yCameraPosition - yCenter;
-        double z = zCameraPosition - zCenter;
-        double sqrt = Math.sqrt(x * x + y * y + z * z);
-
-        if (sqrt > 0) {
-            xCameraPosition = xCenter + ((sqrt - distance) * x / sqrt);
-            yCameraPosition = yCenter + ((sqrt - distance) * y / sqrt);
-            zCameraPosition = zCenter + ((sqrt - distance) * z / sqrt);
-        }
-
-    }
-
-    /**
-     *
-     * @param distance Distance to be zoom out
-     */
-    public void zoomOut(double distance) {
-        double x = xCameraPosition - xCenter;
-        double y = yCameraPosition - yCenter;
-        double z = zCameraPosition - zCenter;
-        double sqrt = Math.sqrt(x * x + y * y + z * z);
-
-        if (sqrt == 0) {
-            sqrt = 1;
-        }
-
-        xCameraPosition = xCenter + ((sqrt + distance) * x / sqrt);
-        yCameraPosition = yCenter + ((sqrt + distance) * y / sqrt);
-        zCameraPosition = zCenter + ((sqrt + distance) * z / sqrt);
-    }
-
-    /**
-     *
-     * @return Returns backround color of the listener
-     */
-    public static float[] getBackgroundColor() {
-        return backgroundColor;
-    }
-
-    /**
-     *
-     * @param backgroundColor backround color of the listener
-     */
-    public static void setBackgroundColor(float[] backgroundColor) {
-        GeneralGLEventListener.backgroundColor = backgroundColor;
-    }
-
-    /**
-     *
-     * @param drawWire Decides if model is displayed as wire-frame
-     */
-    public void setWireMode(boolean drawWire) {
-        wireModel = drawWire;
-    }
-
-
-    /**
-     *
-     * @param drawTextures Decides if model is displayed with textures
-     */
-    public void setDrawTextures(boolean drawTextures) {
-        this.drawTextures = drawTextures;
-    }
-
-}
-
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/Interface.java b/GUI/src/main/java/cz/fidentis/analyst/gui/Interface.java
deleted file mode 100644
index 2f5f4c4fbd750f971d66d439acadb38fc128690e..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/Interface.java
+++ /dev/null
@@ -1,1367 +0,0 @@
-package cz.fidentis.analyst.gui;
-
-import java.awt.Color;
-import java.awt.Cursor;
-import javax.swing.BorderFactory;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.UIManager;
-
-/**
- *
- * @author Natalia Bebjakova
- *
- * Main window of the applicaion
- */
-
-public class Interface extends javax.swing.JFrame {
-    boolean pressedNewProject = false;
-    boolean maximizePressed = false;
-    boolean wiredModelClicked = false;
-    private JPanel actualPanel;
-
-    public static JFrame frameMain; //main frame of the application
-    int xMouse;
-    int yMouse;
-
-    /**
-     * Creates new form Interface
-     */
-    public Interface() {
-        //this.setUndecorated(true);
-        initComponents();
-        topPanel.setVisible(false);
-        setCursorOnComponents();
-        actualPanel = startingPanel;
-    }
-    /**
-     * Sets hand cursor when moving mouse on components
-     */
-    private void setCursorOnComponents() {
-        newProject.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        texture.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        close.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        maximize.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        JLabel11.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        jLabel4.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        symetryMain.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        reloadModelButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        wiredModelButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        homeButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        viewerButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        reloadModelButton1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-    }
-
-    /**
-     * Enables to switch between panels
-     * @param panel New panel that will be visible
-     */
-    private void switchPanelOnMainPanel(JPanel panel) {
-        actualPanel = panel;
-        jPanel2.removeAll();
-        jPanel2.repaint();
-        jPanel2.revalidate();
-        jPanel2.add(panel);
-        jPanel2.repaint();
-        jPanel2.revalidate();
-        panel.add(jPanel1);
-        jPanel1.setVisible(true);
-        /*if(maximizePressed) {
-            frameMain.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
-        }*/
-    }
-
-    /**
-     * Changes backround of labels to darker green color
-     * @param jl label of which backround changes
-     */
-    public void setLabelBackround(JLabel jl) {
-        jl.setBackground(new Color(11,56,49));
-    }
-    public void resetLabelBackround(JLabel jl) {
-        jl.setBackground(new Color(20,114,105));
-    }
-
-    /**
-     * Changes backround of panel to brighter color and adds border
-     * @param jp panel of which backround changes
-     */
-    public void setPanelBackround(JPanel jp) {
-        jp.setBackground(new Color(11,56,49));
-        jp.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 4, Color.WHITE));
-    }
-    public void resetPanelBackround(JPanel jp) {
-        jp.setBackground(new Color(20,114,105));
-        jp.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 0, Color.WHITE));
-    }
-
-    /**
-     * Changes backround of panel to darker color and adds border
-     * @param jp panel of which backround changes
-     */
-    public void setPanelBackroundMain(JPanel jp) {
-        jp.setBackground(new Color(106,198,187));
-        jp.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 4, Color.WHITE));
-    }
-    public void resetPanelBackroundMain(JPanel jp) {
-        jp.setBackground(new Color(0,174,163));
-        jp.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 0, Color.WHITE));
-    }
-
-    /**
-     * This method is called from within the constructor to initialize the form.
-     * WARNING: Do NOT modify this code. The content of this method is always
-     * regenerated by the Form Editor.
-     */
-
-
-    @SuppressWarnings("unchecked")
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        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();
-        symetryEstimator = new javax.swing.JPanel();
-        jLabel4 = new javax.swing.JLabel();
-        jPanel1 = new javax.swing.JPanel();
-        newProject = new javax.swing.JLabel();
-        texture = new javax.swing.JLabel();
-        close = new javax.swing.JLabel();
-        maximize = new javax.swing.JLabel();
-        wiredModelButton = new javax.swing.JLabel();
-        homeButton = 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();
-        symetryPanel = new javax.swing.JPanel();
-        viewerPanel = new javax.swing.JPanel();
-        canva1 = new cz.fidentis.analyst.gui.Canvas();
-        reloadModelButton = new javax.swing.JLabel();
-        symetrySpecificationPanel = new javax.swing.JPanel();
-        curavatureSlider = new javax.swing.JSlider();
-        angleCosineSlider = new javax.swing.JSlider();
-        minCurvatio = new javax.swing.JLabel();
-        minCurvatio2 = new javax.swing.JLabel();
-        normalAngleSlider = new javax.swing.JSlider();
-        minCurvatio3 = new javax.swing.JLabel();
-        significantPointSlider = new javax.swing.JSlider();
-        minCurvatio4 = new javax.swing.JLabel();
-        relativeDistanceSlider = new javax.swing.JSlider();
-        significantPointLabel = new javax.swing.JLabel();
-        symetryButton = new javax.swing.JLabel();
-        minCurvatio7 = new javax.swing.JLabel();
-        averagingCheckBox = new javax.swing.JCheckBox();
-        modelViewPanel = new javax.swing.JPanel();
-        reloadModelButton1 = new javax.swing.JLabel();
-        jPanel4 = new javax.swing.JPanel();
-        canva2 = new cz.fidentis.analyst.gui.Canvas();
-
-        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
-        setAlwaysOnTop(true);
-        setAutoRequestFocus(false);
-        setBackground(new java.awt.Color(20, 114, 105));
-        setLocationByPlatform(true);
-
-        topPanel.setBackground(new java.awt.Color(20, 114, 105));
-
-        compareTwo.setBackground(new java.awt.Color(20, 114, 105));
-        compareTwo.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                compareTwoMouseMoved(evt);
-            }
-        });
-        compareTwo.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                compareTwoMouseExited(evt);
-            }
-        });
-
-        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/compareTwo.png"))); // NOI18N
-
-        javax.swing.GroupLayout compareTwoLayout = new javax.swing.GroupLayout(compareTwo);
-        compareTwo.setLayout(compareTwoLayout);
-        compareTwoLayout.setHorizontalGroup(
-                compareTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareTwoLayout.createSequentialGroup()
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
-                                .addContainerGap())
-        );
-        compareTwoLayout.setVerticalGroup(
-                compareTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareTwoLayout.createSequentialGroup()
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addContainerGap())
-        );
-
-        compareDB.setBackground(new java.awt.Color(20, 114, 105));
-        compareDB.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                compareDBMouseMoved(evt);
-            }
-        });
-        compareDB.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                compareDBMouseExited(evt);
-            }
-        });
-
-        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/copareWithDatabase.png"))); // NOI18N
-
-        javax.swing.GroupLayout compareDBLayout = new javax.swing.GroupLayout(compareDB);
-        compareDB.setLayout(compareDBLayout);
-        compareDBLayout.setHorizontalGroup(
-                compareDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(compareDBLayout.createSequentialGroup()
-                                .addContainerGap()
-                                .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 162, Short.MAX_VALUE))
-        );
-        compareDBLayout.setVerticalGroup(
-                compareDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, compareDBLayout.createSequentialGroup()
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(jLabel2)
-                                .addContainerGap())
-        );
-
-        batchProcessing.setBackground(new java.awt.Color(20, 114, 105));
-        batchProcessing.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                batchProcessingMouseMoved(evt);
-            }
-        });
-        batchProcessing.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                batchProcessingMouseExited(evt);
-            }
-        });
-
-        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/batchProcessing.png"))); // NOI18N
-
-        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())
-        );
-        batchProcessingLayout.setVerticalGroup(
-                batchProcessingLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchProcessingLayout.createSequentialGroup()
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(jLabel3)
-                                .addContainerGap())
-        );
-
-        symetryEstimator.setBackground(new java.awt.Color(20, 114, 105));
-        symetryEstimator.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                symetryEstimatorMouseMoved(evt);
-            }
-        });
-        symetryEstimator.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                symetryEstimatorMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                symetryEstimatorMouseExited(evt);
-            }
-        });
-
-        jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
-        jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/symetry.png"))); // NOI18N
-        jLabel4.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                maximizeMouseMoved1(evt);
-            }
-        });
-        jLabel4.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                jLabel4MouseClicked(evt);
-            }
-        });
-
-        javax.swing.GroupLayout symetryEstimatorLayout = new javax.swing.GroupLayout(symetryEstimator);
-        symetryEstimator.setLayout(symetryEstimatorLayout);
-        symetryEstimatorLayout.setHorizontalGroup(
-                symetryEstimatorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(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))
-        );
-        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())
-        );
-
-        javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel);
-        topPanel.setLayout(topPanelLayout);
-        topPanelLayout.setHorizontalGroup(
-                topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(topPanelLayout.createSequentialGroup()
-                                .addContainerGap(339, 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)
-                                .addComponent(batchProcessing, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGap(97, 97, 97)
-                                .addComponent(symetryEstimator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addContainerGap(338, 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)
-                                        .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)
-                                        .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("/resources/new_project.png"))); // NOI18N
-        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);
-            }
-        });
-
-        texture.setBackground(new java.awt.Color(20, 114, 105));
-        texture.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/texture2.png"))); // NOI18N
-        texture.setOpaque(true);
-        texture.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                textureMouseMoved(evt);
-            }
-        });
-        texture.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                textureMouseExited(evt);
-            }
-        });
-
-        close.setBackground(new java.awt.Color(20, 114, 105));
-        close.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/close.png"))); // NOI18N
-        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);
-            }
-        });
-
-        maximize.setBackground(new java.awt.Color(20, 114, 105));
-        maximize.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/maximize.png"))); // NOI18N
-        maximize.setOpaque(true);
-        maximize.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                maximizeMouseMoved(evt);
-            }
-        });
-        maximize.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                maximizeMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                maximizeMouseExited(evt);
-            }
-        });
-
-        wiredModelButton.setBackground(new java.awt.Color(20, 114, 105));
-        wiredModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/wireframe.png"))); // NOI18N
-        wiredModelButton.setOpaque(true);
-        wiredModelButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                wiredModelButtonMouseMoved(evt);
-            }
-        });
-        wiredModelButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                wiredModelButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                wiredModelButtonMouseExited(evt);
-            }
-        });
-
-        homeButton.setBackground(new java.awt.Color(20, 114, 105));
-        homeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/home.png"))); // NOI18N
-        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, 198, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(texture)
-                                .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(maximize)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(close)
-                                .addContainerGap())
-        );
-        jPanel1Layout.setVerticalGroup(
-                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
-                                .addGap(0, 0, Short.MAX_VALUE)
-                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                        .addComponent(texture, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE)
-                                        .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, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                        .addComponent(maximize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
-                        .addComponent(homeButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-        );
-
-        jPanel2.setLayout(new java.awt.CardLayout());
-
-        startingPanel.setBackground(new java.awt.Color(0, 174, 163));
-        startingPanel.setToolTipText("");
-
-        logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/logo3.png"))); // NOI18N
-
-        jPanel3.setBackground(new java.awt.Color(0, 174, 163));
-        jPanel3.setToolTipText("");
-
-        compareTwoMain.setBackground(new java.awt.Color(0, 174, 163));
-        compareTwoMain.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                compareTwoMainMouseMoved(evt);
-            }
-        });
-        compareTwoMain.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                compareTwoMainMouseExited(evt);
-            }
-        });
-
-        JLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/compareTwoGreen.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, 142, Short.MAX_VALUE)
-                                .addContainerGap())
-        );
-        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))
-        );
-
-        compareTwoMain1.setBackground(new java.awt.Color(0, 174, 163));
-        compareTwoMain1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                compareTwoMain1MouseMoved(evt);
-            }
-        });
-        compareTwoMain1.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                compareTwoMain1MouseExited(evt);
-            }
-        });
-
-        JLabel9.setBackground(new java.awt.Color(0, 174, 163));
-        JLabel9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/copareWithDatabaseGreen.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, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addContainerGap())
-        );
-        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))
-        );
-
-        batchMain.setBackground(new java.awt.Color(0, 174, 163));
-        batchMain.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                batchMainMouseMoved(evt);
-            }
-        });
-        batchMain.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                batchMainMouseExited(evt);
-            }
-        });
-
-        JLabel10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/batchProcessingGreen.png"))); // NOI18N
-
-        javax.swing.GroupLayout batchMainLayout = new javax.swing.GroupLayout(batchMain);
-        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)
-                                .addComponent(JLabel10)
-                                .addContainerGap())
-        );
-        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))
-        );
-
-        symetryMain.setBackground(new java.awt.Color(0, 174, 163));
-        symetryMain.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                symetryMainMouseMoved(evt);
-            }
-        });
-        symetryMain.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                symetryMainMouseExited(evt);
-            }
-        });
-
-        JLabel11.setBackground(new java.awt.Color(0, 174, 163));
-        JLabel11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/symetryGreen.png"))); // NOI18N
-        JLabel11.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                JLabel11MouseMoved(evt);
-            }
-        });
-        JLabel11.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                JLabel11MouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                JLabel11MouseExited(evt);
-            }
-        });
-
-        javax.swing.GroupLayout symetryMainLayout = new javax.swing.GroupLayout(symetryMain);
-        symetryMain.setLayout(symetryMainLayout);
-        symetryMainLayout.setHorizontalGroup(
-                symetryMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetryMainLayout.createSequentialGroup()
-                                .addGap(0, 12, Short.MAX_VALUE)
-                                .addComponent(JLabel11))
-        );
-        symetryMainLayout.setVerticalGroup(
-                symetryMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetryMainLayout.createSequentialGroup()
-                                .addGap(0, 0, Short.MAX_VALUE)
-                                .addComponent(JLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
-        );
-
-        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/divide.png"))); // NOI18N
-
-        viewerButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/modelView.png"))); // NOI18N
-        viewerButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                viewerButtonMouseMoved(evt);
-            }
-        });
-        viewerButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                viewerButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                viewerButtonMouseExited(evt);
-            }
-        });
-
-        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
-        jPanel3.setLayout(jPanel3Layout);
-        jPanel3Layout.setHorizontalGroup(
-                jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(jPanel3Layout.createSequentialGroup()
-                                .addContainerGap(278, Short.MAX_VALUE)
-                                .addComponent(viewerButton)
-                                .addGap(227, 227, 227)
-                                .addComponent(jLabel6)
-                                .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))
-                                        .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)
-                                .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(243, 243, 243))
-        );
-        jPanel3Layout.setVerticalGroup(
-                jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
-                                .addGap(27, 27, 27)
-                                .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(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(symetryMain, 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))))
-                                .addContainerGap())
-                        .addGroup(jPanel3Layout.createSequentialGroup()
-                                .addGap(71, 71, 71)
-                                .addComponent(viewerButton)
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-        );
-
-        javax.swing.GroupLayout startingPanelLayout = new javax.swing.GroupLayout(startingPanel);
-        startingPanel.setLayout(startingPanelLayout);
-        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(714, 714, 714)
-                                .addComponent(logo, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-        );
-        startingPanelLayout.setVerticalGroup(
-                startingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(startingPanelLayout.createSequentialGroup()
-                                .addGap(198, 198, 198)
-                                .addComponent(logo, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGap(135, 135, 135)
-                                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGap(200, 200, 200))
-        );
-
-        jPanel2.add(startingPanel, "card3");
-
-        symetryPanel.setBackground(new java.awt.Color(0, 174, 163));
-
-        canva1.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
-            public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
-                canva1MouseWheelMoved(evt);
-            }
-        });
-
-        javax.swing.GroupLayout viewerPanelLayout = new javax.swing.GroupLayout(viewerPanel);
-        viewerPanel.setLayout(viewerPanelLayout);
-        viewerPanelLayout.setHorizontalGroup(
-                viewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(viewerPanelLayout.createSequentialGroup()
-                                .addContainerGap()
-                                .addComponent(canva1, javax.swing.GroupLayout.DEFAULT_SIZE, 652, Short.MAX_VALUE)
-                                .addContainerGap())
-        );
-        viewerPanelLayout.setVerticalGroup(
-                viewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, viewerPanelLayout.createSequentialGroup()
-                                .addContainerGap()
-                                .addComponent(canva1, javax.swing.GroupLayout.DEFAULT_SIZE, 858, Short.MAX_VALUE)
-                                .addContainerGap())
-        );
-
-        reloadModelButton.setBackground(new java.awt.Color(0, 174, 163));
-        reloadModelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/loadModel.png"))); // NOI18N
-        reloadModelButton.setOpaque(true);
-        reloadModelButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                reloadModelButtonMouseMoved(evt);
-            }
-        });
-        reloadModelButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                reloadModelButtonMouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                reloadModelButtonMouseExited(evt);
-            }
-        });
-
-        symetrySpecificationPanel.setBackground(new java.awt.Color(176, 230, 226));
-        symetrySpecificationPanel.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                symetrySpecificationPanelMouseClicked(evt);
-            }
-        });
-
-        curavatureSlider.setBackground(new java.awt.Color(250, 250, 250));
-        curavatureSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        curavatureSlider.setOpaque(false);
-
-        angleCosineSlider.setOpaque(false);
-
-        minCurvatio.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 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.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio2.setText("Min. Angle Cosine");
-
-        normalAngleSlider.setOpaque(false);
-
-        minCurvatio3.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
-        minCurvatio3.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio3.setText("Max. Relative Distance");
-
-        significantPointSlider.setOpaque(false);
-
-        minCurvatio4.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
-        minCurvatio4.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio4.setText("Min. Normal Angle Cosine");
-
-        relativeDistanceSlider.setOpaque(false);
-
-        significantPointLabel.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
-        significantPointLabel.setForeground(new java.awt.Color(20, 114, 105));
-        significantPointLabel.setText("Significant Point Count");
-
-        symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/symetryCount.png"))); // NOI18N
-        symetryButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                symetryButtonMouseMoved(evt);
-            }
-        });
-        symetryButton.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                symetryButtonMouseExited(evt);
-            }
-        });
-
-        minCurvatio7.setFont(new java.awt.Font("Neue Haas Unica Pro", 0, 14)); // NOI18N
-        minCurvatio7.setForeground(new java.awt.Color(20, 114, 105));
-        minCurvatio7.setText("Averaging");
-
-        averagingCheckBox.setSelected(true);
-        averagingCheckBox.setOpaque(false);
-
-        javax.swing.GroupLayout symetrySpecificationPanelLayout = new javax.swing.GroupLayout(symetrySpecificationPanel);
-        symetrySpecificationPanel.setLayout(symetrySpecificationPanelLayout);
-        symetrySpecificationPanelLayout.setHorizontalGroup(
-                symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addContainerGap(80, Short.MAX_VALUE)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                                        .addComponent(minCurvatio)
-                                        .addComponent(minCurvatio2)
-                                        .addComponent(minCurvatio3)
-                                        .addComponent(minCurvatio4)
-                                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                                .addComponent(significantPointLabel)
-                                                .addGap(13, 13, 13))
-                                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                                .addComponent(minCurvatio7)
-                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                                .addComponent(averagingCheckBox)))
-                                .addGap(18, 18, 18)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                                .addComponent(significantPointSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .addComponent(normalAngleSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .addComponent(angleCosineSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .addComponent(curavatureSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                        .addComponent(symetryButton, javax.swing.GroupLayout.Alignment.TRAILING))
-                                .addGap(133, 133, 133))
-        );
-        symetrySpecificationPanelLayout.setVerticalGroup(
-                symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                .addGap(72, 72, 72)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                        .addComponent(curavatureSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                        .addComponent(minCurvatio, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addGap(40, 40, 40)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                        .addComponent(angleCosineSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                        .addComponent(minCurvatio2, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addGap(40, 40, 40)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(normalAngleSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                        .addComponent(minCurvatio4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                                .addGap(38, 38, 38)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(minCurvatio3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                        .addComponent(relativeDistanceSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                                .addGap(41, 41, 41)
-                                .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                                .addComponent(significantPointLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 26, Short.MAX_VALUE)
-                                                .addGap(36, 36, 36))
-                                        .addGroup(symetrySpecificationPanelLayout.createSequentialGroup()
-                                                .addComponent(significantPointSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .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.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                        .addGroup(symetrySpecificationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
-                                                .addComponent(averagingCheckBox)
-                                                .addComponent(minCurvatio7, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                                .addGap(102, 102, 102))
-        );
-
-        javax.swing.GroupLayout symetryPanelLayout = new javax.swing.GroupLayout(symetryPanel);
-        symetryPanel.setLayout(symetryPanelLayout);
-        symetryPanelLayout.setHorizontalGroup(
-                symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(symetryPanelLayout.createSequentialGroup()
-                                .addContainerGap(136, 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, 105, Short.MAX_VALUE)
-                                .addGroup(symetryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(reloadModelButton)
-                                        .addComponent(symetrySpecificationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addContainerGap(112, 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(symetrySpecificationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 242, Short.MAX_VALUE)
-                                                .addComponent(reloadModelButton))
-                                        .addComponent(viewerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                                .addGap(182, 182, 182))
-        );
-
-        jPanel2.add(symetryPanel, "card3");
-
-        modelViewPanel.setBackground(new java.awt.Color(0, 174, 163));
-        modelViewPanel.setToolTipText("");
-
-        reloadModelButton1.setBackground(new java.awt.Color(0, 174, 163));
-        reloadModelButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/loadModel.png"))); // NOI18N
-        reloadModelButton1.setOpaque(true);
-        reloadModelButton1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
-            public void mouseMoved(java.awt.event.MouseEvent evt) {
-                reloadModelButton1MouseMoved(evt);
-            }
-        });
-        reloadModelButton1.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                reloadModelButton1MouseClicked(evt);
-            }
-            public void mouseExited(java.awt.event.MouseEvent evt) {
-                reloadModelButton1MouseExited(evt);
-            }
-        });
-
-        canva2.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
-            public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
-                canva2MouseWheelMoved(evt);
-            }
-        });
-
-        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
-        jPanel4.setLayout(jPanel4Layout);
-        jPanel4Layout.setHorizontalGroup(
-                jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(jPanel4Layout.createSequentialGroup()
-                                .addContainerGap()
-                                .addComponent(canva2, javax.swing.GroupLayout.DEFAULT_SIZE, 1040, Short.MAX_VALUE)
-                                .addContainerGap())
-        );
-        jPanel4Layout.setVerticalGroup(
-                jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
-                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(canva2, javax.swing.GroupLayout.PREFERRED_SIZE, 778, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addContainerGap())
-        );
-
-        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(141, Short.MAX_VALUE)
-                                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGap(35, 35, 35)
-                                .addComponent(reloadModelButton1)
-                                .addGap(244, 244, 244))
-        );
-        modelViewPanelLayout.setVerticalGroup(
-                modelViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelViewPanelLayout.createSequentialGroup()
-                                .addContainerGap(162, 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(218, Short.MAX_VALUE))
-        );
-
-        jPanel2.add(modelViewPanel, "card4");
-
-        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)
-                        .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(835, 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)))
-        );
-
-        pack();
-        setLocationRelativeTo(null);
-    }// </editor-fold>//GEN-END:initComponents
-
-    private void newProjectMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_newProjectMouseMoved
-        setLabelBackround(newProject);
-    }//GEN-LAST:event_newProjectMouseMoved
-
-    private void newProjectMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_newProjectMouseExited
-        if (!pressedNewProject) {
-            resetLabelBackround(newProject);
-        }
-    }//GEN-LAST:event_newProjectMouseExited
-
-    private void textureMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_textureMouseMoved
-        setLabelBackround(texture);
-    }//GEN-LAST:event_textureMouseMoved
-
-    private void textureMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_textureMouseExited
-        resetLabelBackround(texture);
-    }//GEN-LAST:event_textureMouseExited
-
-    private void closeMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMouseMoved
-        setLabelBackround(close);
-    }//GEN-LAST:event_closeMouseMoved
-
-    private void closeMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMouseExited
-        resetLabelBackround(close);
-    }//GEN-LAST:event_closeMouseExited
-
-    private void closeMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_closeMousePressed
-        System.exit(0);
-    }//GEN-LAST:event_closeMousePressed
-
-    private void compareTwoMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMouseMoved
-        setPanelBackround(compareTwo);
-    }//GEN-LAST:event_compareTwoMouseMoved
-
-    private void compareTwoMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMouseExited
-        resetPanelBackround(compareTwo);
-    }//GEN-LAST:event_compareTwoMouseExited
-
-    private void compareDBMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareDBMouseMoved
-        setPanelBackround(compareDB);
-    }//GEN-LAST:event_compareDBMouseMoved
-
-    private void compareDBMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareDBMouseExited
-        resetPanelBackround(compareDB);
-    }//GEN-LAST:event_compareDBMouseExited
-
-    private void batchProcessingMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_batchProcessingMouseMoved
-        setPanelBackround(batchProcessing);
-    }//GEN-LAST:event_batchProcessingMouseMoved
-
-    private void batchProcessingMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_batchProcessingMouseExited
-        resetPanelBackround(batchProcessing);
-    }//GEN-LAST:event_batchProcessingMouseExited
-
-    private void maximizeMouseMoved1(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_maximizeMouseMoved1
-
-    }//GEN-LAST:event_maximizeMouseMoved1
-
-    private void symetryEstimatorMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryEstimatorMouseExited
-        resetPanelBackround(symetryEstimator);
-    }//GEN-LAST:event_symetryEstimatorMouseExited
-
-    private void newProjectMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_newProjectMousePressed
-        if(pressedNewProject) {
-            topPanel.setVisible(false);
-            pressedNewProject = false;
-            switchPanelOnMainPanel(actualPanel);
-            newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/new_project.png")));
-        }else{
-            topPanel.setVisible(true);
-            topPanel.add(jPanel1);
-            pressedNewProject = true;
-            newProject.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/new_project_opened.png")));
-        }
-    }//GEN-LAST:event_newProjectMousePressed
-
-    private void maximizeMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_maximizeMouseMoved
-        setLabelBackround(maximize);
-    }//GEN-LAST:event_maximizeMouseMoved
-
-    private void maximizeMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_maximizeMouseExited
-        resetLabelBackround(maximize);
-    }//GEN-LAST:event_maximizeMouseExited
-
-
-    private void maximizeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_maximizeMouseClicked
-        /*if(maximizePressed) {
-            frameMain.setExtendedState(JFrame.NORMAL);
-            maximizePressed = false;
-        } else {
-            frameMain.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
-            maximizePressed = true;
-        }*/
-    }//GEN-LAST:event_maximizeMouseClicked
-
-    private void symetryEstimatorMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryEstimatorMouseMoved
-        setPanelBackround(symetryEstimator);
-    }//GEN-LAST:event_symetryEstimatorMouseMoved
-
-    private void compareTwoMainMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMainMouseMoved
-        setPanelBackroundMain(compareTwoMain);
-    }//GEN-LAST:event_compareTwoMainMouseMoved
-
-    private void compareTwoMainMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMainMouseExited
-        resetPanelBackroundMain(compareTwoMain);
-    }//GEN-LAST:event_compareTwoMainMouseExited
-
-    private void compareTwoMain1MouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMain1MouseMoved
-        setPanelBackroundMain(compareTwoMain1);
-    }//GEN-LAST:event_compareTwoMain1MouseMoved
-
-    private void compareTwoMain1MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_compareTwoMain1MouseExited
-        resetPanelBackroundMain(compareTwoMain1);
-    }//GEN-LAST:event_compareTwoMain1MouseExited
-
-    private void batchMainMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_batchMainMouseMoved
-        setPanelBackroundMain(batchMain);
-    }//GEN-LAST:event_batchMainMouseMoved
-
-    private void batchMainMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_batchMainMouseExited
-        resetPanelBackroundMain(batchMain);
-    }//GEN-LAST:event_batchMainMouseExited
-
-    private void symetryMainMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryMainMouseMoved
-        setPanelBackroundMain(symetryMain);
-    }//GEN-LAST:event_symetryMainMouseMoved
-
-    private void symetryMainMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryMainMouseExited
-        resetPanelBackroundMain(symetryMain);
-    }//GEN-LAST:event_symetryMainMouseExited
-
-    private void JLabel11MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JLabel11MouseClicked
-        switchPanelOnMainPanel(symetryPanel);
-    }//GEN-LAST:event_JLabel11MouseClicked
-
-    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("/resources/new_project.png")));
-        resetLabelBackround(newProject);
-    }//GEN-LAST:event_symetryEstimatorMouseClicked
-
-    private void canva1MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_canva1MouseWheelMoved
-//to do to grab model
-    }//GEN-LAST:event_canva1MouseWheelMoved
-
-    private void jPanel1MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseDragged
-        int x = evt.getXOnScreen();
-        int y = evt.getYOnScreen();
-        frameMain.setLocation(x - xMouse, y - yMouse);
-    }//GEN-LAST:event_jPanel1MouseDragged
-
-    private void jPanel1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MousePressed
-        xMouse  = evt.getX();
-        yMouse = evt.getY();
-    }//GEN-LAST:event_jPanel1MousePressed
-
-    private void reloadModelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButtonMouseMoved
-        reloadModelButton.setBackground(new Color(176,230,226));
-    }//GEN-LAST:event_reloadModelButtonMouseMoved
-
-    private void reloadModelButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButtonMouseExited
-        reloadModelButton.setBackground(new Color(0,174,163));
-    }//GEN-LAST:event_reloadModelButtonMouseExited
-
-    private void symetryButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryButtonMouseMoved
-        symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/symetryCountClicked.png")));
-        symetryButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-    }//GEN-LAST:event_symetryButtonMouseMoved
-
-    private void symetryButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetryButtonMouseExited
-        symetryButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/symetryCount.png")));
-    }//GEN-LAST:event_symetryButtonMouseExited
-
-    private void symetrySpecificationPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_symetrySpecificationPanelMouseClicked
-
-    }//GEN-LAST:event_symetrySpecificationPanelMouseClicked
-
-    private void reloadModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButtonMouseClicked
-        canva1.loadModel();
-    }//GEN-LAST:event_reloadModelButtonMouseClicked
-
-    private void wiredModelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_wiredModelButtonMouseMoved
-
-    }//GEN-LAST:event_wiredModelButtonMouseMoved
-
-    private void wiredModelButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_wiredModelButtonMouseExited
-
-    }//GEN-LAST:event_wiredModelButtonMouseExited
-
-    /**
-     *
-     * @param evt letting know GLCanva if model will be displayed as wire-frame
-     */
-    private void wiredModelButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_wiredModelButtonMouseClicked
-        if (wiredModelClicked) {
-            resetLabelBackround(wiredModelButton);
-            wiredModelClicked = false;
-            canva1.setDrawWired(wiredModelClicked);
-            canva2.setDrawWired(wiredModelClicked);
-        } else {
-            setLabelBackround(wiredModelButton);
-            wiredModelClicked = true;
-            canva1.setDrawWired(wiredModelClicked);
-            canva2.setDrawWired(wiredModelClicked);
-        }
-    }//GEN-LAST:event_wiredModelButtonMouseClicked
-
-    private void homeButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_homeButtonMouseMoved
-        setLabelBackround(homeButton);
-    }//GEN-LAST:event_homeButtonMouseMoved
-
-    private void homeButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_homeButtonMouseExited
-        resetLabelBackround(homeButton);
-    }//GEN-LAST:event_homeButtonMouseExited
-
-    private void homeButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_homeButtonMouseClicked
-        switchPanelOnMainPanel(startingPanel);
-    }//GEN-LAST:event_homeButtonMouseClicked
-
-    private void reloadModelButton1MouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButton1MouseMoved
-        reloadModelButton1.setBackground(new Color(176,230,226));
-    }//GEN-LAST:event_reloadModelButton1MouseMoved
-
-    private void reloadModelButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButton1MouseClicked
-        canva2.loadModel();
-    }//GEN-LAST:event_reloadModelButton1MouseClicked
-
-    private void reloadModelButton1MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reloadModelButton1MouseExited
-        reloadModelButton1.setBackground(new Color(0,174,163));
-    }//GEN-LAST:event_reloadModelButton1MouseExited
-
-    private void canva2MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_canva2MouseWheelMoved
-        // TODO add your handling code here:
-    }//GEN-LAST:event_canva2MouseWheelMoved
-
-    private void viewerButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_viewerButtonMouseClicked
-        switchPanelOnMainPanel(modelViewPanel);
-    }//GEN-LAST:event_viewerButtonMouseClicked
-
-
-    private void JLabel11MouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JLabel11MouseMoved
-
-    }//GEN-LAST:event_JLabel11MouseMoved
-
-    private void viewerButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_viewerButtonMouseMoved
-        viewerButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/modelViewMoved.png")));
-    }//GEN-LAST:event_viewerButtonMouseMoved
-
-    private void viewerButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_viewerButtonMouseExited
-        viewerButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/modelView.png")));
-    }//GEN-LAST:event_viewerButtonMouseExited
-
-    private void JLabel11MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JLabel11MouseExited
-
-    }//GEN-LAST:event_JLabel11MouseExited
-
-    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("/resources/new_project.png")));
-        resetLabelBackround(newProject);
-    }//GEN-LAST:event_jLabel4MouseClicked
-
-    /**
-     * @param args the command line arguments
-     */
-    public static void main(String args[]) {
-        try {
-            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
-                if ("Nimbus".equals(info.getName())) {
-                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
-                    break;
-                }
-            }
-        } catch (ClassNotFoundException ex) {
-            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        } catch (InstantiationException ex) {
-            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        } catch (IllegalAccessException ex) {
-            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
-            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        }
-        java.awt.EventQueue.invokeLater(new Runnable() {
-            @Override
-            public void run() {
-                frameMain = new Interface();
-                frameMain.setBackground(new Color(49,165,154));
-                frameMain.pack();
-                frameMain.setVisible(true);
-
-                //enables to use design of operating system
-                try {
-                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
-                }catch(Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-        });
-    }
-
-
-
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JLabel JLabel10;
-    private javax.swing.JLabel JLabel11;
-    private javax.swing.JLabel JLabel8;
-    private javax.swing.JLabel JLabel9;
-    private javax.swing.JSlider angleCosineSlider;
-    private javax.swing.JCheckBox averagingCheckBox;
-    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 javax.swing.JPanel compareDB;
-    private javax.swing.JPanel compareTwo;
-    private javax.swing.JPanel compareTwoMain;
-    private javax.swing.JPanel compareTwoMain1;
-    private javax.swing.JSlider curavatureSlider;
-    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 maximize;
-    private javax.swing.JLabel minCurvatio;
-    private javax.swing.JLabel minCurvatio2;
-    private javax.swing.JLabel minCurvatio3;
-    private javax.swing.JLabel minCurvatio4;
-    private javax.swing.JLabel minCurvatio7;
-    private javax.swing.JPanel modelViewPanel;
-    private javax.swing.JLabel newProject;
-    private javax.swing.JSlider normalAngleSlider;
-    private javax.swing.JSlider relativeDistanceSlider;
-    private javax.swing.JLabel reloadModelButton;
-    private javax.swing.JLabel reloadModelButton1;
-    private javax.swing.JLabel significantPointLabel;
-    private javax.swing.JSlider significantPointSlider;
-    private javax.swing.JPanel startingPanel;
-    private javax.swing.JLabel symetryButton;
-    private javax.swing.JPanel symetryEstimator;
-    private javax.swing.JPanel symetryMain;
-    private javax.swing.JPanel symetryPanel;
-    private javax.swing.JPanel symetrySpecificationPanel;
-    private javax.swing.JLabel texture;
-    private javax.swing.JPanel topPanel;
-    private javax.swing.JLabel viewerButton;
-    private javax.swing.JPanel viewerPanel;
-    private javax.swing.JLabel wiredModelButton;
-    // End of variables declaration//GEN-END:variables
-}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/ModelFileFilter.java b/GUI/src/main/java/cz/fidentis/analyst/gui/ModelFileFilter.java
deleted file mode 100644
index 7fc0b83cd3c632480d7e81ccc1452f9030d0acd4..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/ModelFileFilter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cz.fidentis.analyst.gui;
-
-import java.io.File;
-import javax.swing.filechooser.FileFilter;
-
-/**
- *
- * @author Natalia Bebjakova
- */
-public class ModelFileFilter extends FileFilter {
-
-    private String[] extension;
-    private String description;
-
-    public ModelFileFilter(String[] extension, String description)
-    {
-        this.extension = extension;
-        this.description = description;
-    }
-
-    @Override
-    public boolean accept(File f)
-    {
-        boolean accepted = false;
-        for (int i=0; i<extension.length;i++) {
-            if(f.isDirectory() || f.getName().endsWith(extension[i])) {
-                accepted = true;
-            }
-        }
-        return accepted;
-    }
-
-    /*
-     * @see javax.swing.filechooser.FileFilter
-     */
-
-    @Override
-    public String getDescription() {
-        return description;
-    }
-
-}
\ No newline at end of file