diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java
deleted file mode 100644
index 317cf345a264b9c576a0df2e1b6226e3fe9999fd..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package cz.fidentis.analyst.gui;
-
-import com.jogamp.opengl.GL2;
-import cz.fidentis.analyst.gui.canvas.Canvas;
-import cz.fidentis.analyst.gui.scene.DrawableMesh;
-import cz.fidentis.analyst.mesh.core.MeshFacet;
-import cz.fidentis.analyst.mesh.core.MeshPoint;
-import cz.fidentis.analyst.visitors.mesh.BoundingBox;
-import java.awt.Color;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.Collections;
-import javax.vecmath.Point3d;
-import javax.vecmath.Vector3d;
-
-/**
- * Executes changes made in PostRegistrationCP
- * 
- * @author Richard Pajersky
- */
-public class RegistrationCPEventListener {
-    
-    private final double featurePointsThreshold = 0.1;
-    private final Color defaultPrimaryColor = new Color(51, 51, 153);
-    private final Color defaultSecondaryColor = new Color(255, 239, 0);
-    private final int transparencyRange = 10;
-    private final double changeAmount = 500d;
-    private final Canvas canvas;
-    private final double moveX;
-    private final double moveY;
-    private final double moveZ;
-    private final double scaleXYZ;
-    
-    private DrawableMesh primaryFace;
-    private DrawableMesh secondaryFace;
-    
-    public RegistrationCPEventListener(Canvas canvas) {
-        this.canvas = canvas;
-        
-        ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas.getScene().getDrawables());
-        primaryFace = drawables.get(0);
-        secondaryFace = drawables.get(1);
-        setDeafultColor();
-        
-        // set change amounts
-        BoundingBox visitor = new BoundingBox();
-        secondaryFace.getModel().compute(visitor);
-        Point3d maxPoint = visitor.getBoundingBox().getMaxPoint();
-        Point3d minPoint = visitor.getBoundingBox().getMinPoint();
-        moveX = (maxPoint.x - minPoint.x) / changeAmount;
-        moveY = (maxPoint.y - minPoint.y) / changeAmount;
-        moveZ = (maxPoint.z - minPoint.z) / changeAmount;
-        scaleXYZ = (visitor.getBoundingBox().getMaxDiag() / (10 * changeAmount));
-    }
-    
-    /**
-     * Calculates feature points which are too far away
-     */
-    private void calculateFeaturePoints() {
-        if (!primaryFace.isRenderFeaturePoints()) {
-            return;
-        }
-        ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> adjusted = new ArrayList<>();
-        for (int i = 0; i < primaryFace.getFeaturePoints().size(); i++) {
-            Point3d primaryPoint = primaryFace.getFeaturePoints().get(i).getKey();
-            Point3d secondaryPoint = new Point3d(secondaryFace.getFeaturePoints().get(i).getKey());
-            transformPoint(secondaryPoint);
-            double distance = Math.sqrt(
-                Math.pow(secondaryPoint.x - primaryPoint.x, 2) + 
-                Math.pow(secondaryPoint.y - primaryPoint.y, 2) + 
-                Math.pow(secondaryPoint.z - primaryPoint.z, 2));
-            Point3d point = new Point3d(secondaryFace.getFeaturePoints().get(i).getKey());
-            if (distance > featurePointsThreshold) {
-                adjusted.add(new AbstractMap.SimpleEntry<>(
-                        point, Color.RED));
-            } else {
-                adjusted.add(new AbstractMap.SimpleEntry<>(
-                        point, Color.YELLOW));
-            }
-            secondaryFace.setFeaturePoints(adjusted);
-        }
-    }
-    
-    /**
-     * Applies carried out transformations
-     */
-    public void transformFace() {
-        for (MeshFacet transformedFacet : secondaryFace.getFacets()) {
-            for (MeshPoint comparedPoint : transformedFacet.getVertices()) {
-                transformPoint(comparedPoint.getPosition());
-            }
-        }
-        for (var point : secondaryFace.getFeaturePoints()) {
-            transformPoint(point.getKey());
-        }
-        canvas.renderScene();
-    }
-    
-    /**
-     * Transforms point based on transformation info from secondary face
-     * 
-     * @param point Point to transform
-     */
-    public void transformPoint(Point3d point) {
-        Point3d newPoint = new Point3d(0, 0, 0);
-        double quotient;
-
-        // rotate around X
-        quotient = Math.toRadians(secondaryFace.getRotation().x);
-        if (!Double.isNaN(quotient)) {
-            double cos = Math.cos(quotient);
-            double sin = Math.sin(quotient);
-            newPoint.y = point.y * cos - point.z * sin;
-            newPoint.z = point.z * cos + point.y * sin;
-            point.y = newPoint.y;
-            point.z = newPoint.z;
-        }
-
-        // rotate around Y
-        quotient = Math.toRadians(secondaryFace.getRotation().y);
-        if (!Double.isNaN(quotient)) {
-            double cos = Math.cos(quotient);
-            double sin = Math.sin(quotient);
-            newPoint.x = point.x * cos + point.z * sin;
-            newPoint.z = point.z * cos - point.x * sin;
-            point.x = newPoint.x;
-            point.z = newPoint.z;
-        }
-
-        // rotate around Z
-        quotient = Math.toRadians(secondaryFace.getRotation().z);
-        if (!Double.isNaN(quotient)) {
-            double cos = Math.cos(quotient);
-            double sin = Math.sin(quotient);
-            newPoint.x = point.x * cos - point.y * sin;
-            newPoint.y = point.y * cos + point.x * sin;
-            point.x = newPoint.x;
-            point.y = newPoint.y;
-        }
-
-        // translate
-        point.x += secondaryFace.getTranslation().x;
-        point.y += secondaryFace.getTranslation().y;
-        point.z += secondaryFace.getTranslation().z;
-
-        // scale
-        point.x *= 1 + secondaryFace.getScale().x;
-        point.y *= 1 + secondaryFace.getScale().y;
-        point.z *= 1 + secondaryFace.getScale().z;
-    }
-    
-    public final void setDeafultColor() {
-        primaryFace.setColor(defaultPrimaryColor);
-        secondaryFace.setColor(defaultSecondaryColor);
-    }
-    
-    public int getTransparencyRange() {
-        return transparencyRange;
-    }
-    
-    public void setPrimaryColor(Color color) {
-        primaryFace.setColor(color);
-        canvas.renderScene();
-    }
-
-    public void setSecondaryColor(Color color) {
-        secondaryFace.setColor(color);
-        canvas.renderScene();
-    }
-    
-    public Color getPrimaryColor() {
-        return primaryFace.getColor();
-    }
-
-    public Color getSecondaryColor() {
-        return secondaryFace.getColor();
-    }
-    
-    public void setTransparency(int value) {
-        
-        if (value == transparencyRange) {
-            setPrimaryTransparency(1);
-            setSecondaryTransparency(1);
-        }
-        if (value < transparencyRange) {
-            setPrimaryTransparency(value / 10f);
-            setSecondaryTransparency(1);
-        }
-        if (value > transparencyRange) {
-            setSecondaryTransparency((2 * transparencyRange - value) / 10f);
-            setPrimaryTransparency(1);
-        }
-        canvas.renderScene();
-    }
-    
-    public void setPrimaryTransparency(float transparency) {
-        primaryFace.setTransparency(transparency);
-    }
-
-    public void setSecondaryTransparency(float transparency) {
-        secondaryFace.setTransparency(transparency);
-    }
-    
-    public double getPrimaryTransparency() {
-        return primaryFace.getTransparency();
-    }
-
-    public double getSecondaryTransparency() {
-        return secondaryFace.getTransparency();
-    }
-    
-    public void setFrontFacing() {
-        canvas.getCamera().initLocation();
-        canvas.renderScene();
-    }
-    
-    public void setSideFacing() {
-        canvas.getCamera().initLocation();
-        canvas.getCamera().rotate(0, 90);
-        canvas.renderScene();
-    }
-    
-    public Color getDefaultPrimaryColor() {
-        return defaultPrimaryColor;
-    }
-
-    public Color getDefaultSecondaryColor() {
-        return defaultSecondaryColor;
-    }
-    
-    public void resetTranslation() {
-        secondaryFace.setTranslation(new Vector3d(0, 0, 0));
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void resetRotation() {
-        secondaryFace.setRotation(new Vector3d(0, 0, 0));
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-
-    public void resetScale() {
-        secondaryFace.setScale(new Vector3d(0, 0, 0));
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setXTranslation(double value) {
-        secondaryFace.getTranslation().x = value * moveX;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setYTranslation(double value) {
-        secondaryFace.getTranslation().y = value * moveY;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-        
-    public void setZTranslation(double value) {
-        secondaryFace.getTranslation().z = value * moveZ;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setXRotation(double value) {
-        secondaryFace.getRotation().x = value * moveX;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setYRotation(double value) {
-        secondaryFace.getRotation().y = value * moveY;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-        
-    public void setZRotation(double value) {
-        secondaryFace.getRotation().z = value * moveZ;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setScale(double value) {
-        secondaryFace.getScale().x = value * scaleXYZ;
-        secondaryFace.getScale().y = value * scaleXYZ;
-        secondaryFace.getScale().z = value * scaleXYZ;
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-    
-    public void setPrimaryHighlights() {
-        primaryFace.setHighlights(new Color(1, 1, 1));
-        canvas.renderScene();
-    }
-    
-    public void setSecondaryHighlights() {
-        secondaryFace.setHighlights(new Color(1, 1, 1));
-        canvas.renderScene();
-    }
-    
-    public void removePrimaryHighlights() {
-        primaryFace.setHighlights(new Color(0, 0, 0));
-        canvas.renderScene();
-    }
-    
-    public void removeSecondaryHighlights() {
-        secondaryFace.setHighlights(new Color(0, 0, 0));
-        canvas.renderScene();
-    }
-    
-    public void setPrimaryLines() {
-        primaryFace.setRenderMode(GL2.GL_LINE);
-        canvas.renderScene();
-    }
-    
-    public void setSecondaryLines() {
-        secondaryFace.setRenderMode(GL2.GL_LINE);
-        canvas.renderScene();
-    }
-    
-    public void setPrimaryPoints() {
-        primaryFace.setRenderMode(GL2.GL_POINT);
-        canvas.renderScene();
-    }
-    
-    public void setSecondaryPoints() {
-        secondaryFace.setRenderMode(GL2.GL_POINT);
-        canvas.renderScene();
-    }
-    
-    public void setPrimaryFill() {
-        primaryFace.setRenderMode(GL2.GL_FILL);
-        canvas.renderScene();
-    }
-    
-    public void setSecondaryFill() {
-        secondaryFace.setRenderMode(GL2.GL_FILL);
-        canvas.renderScene();
-    }
-    
-    public boolean isFeaturePointsActive() {
-        return primaryFace.isRenderFeaturePoints();
-    }
-    
-    public void setFeaturePointsActive(boolean state) {
-        primaryFace.setRenderFeaturePoints(state);
-        secondaryFace.setRenderFeaturePoints(state);
-        calculateFeaturePoints();
-        canvas.renderScene();
-    }
-}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
index 6f3d31a1aadc57a49fcb0e576d8d13d74e67dbc3..8b74f81ac2ac1828de5c6208053e5e6c4f393e6d 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
@@ -132,8 +132,8 @@ public class Canvas extends javax.swing.JPanel {
     /*
     public GLCanvas getGLCanvas() {
         return this.glCanvas;
-    }
-    */
+    }*/
+    
     
     /**
      * Changing the size of glCanvas
@@ -354,27 +354,27 @@ public class Canvas extends javax.swing.JPanel {
     }//GEN-LAST:event_jLayeredPane1ComponentShown
 
     private void leftNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftNavigationButtonMousePressed
-        animator.startAnimation(RotationAnimator.Direction.ROTATE_LEFT, this.camera);
+        animator.startAnimation(Direction.ROTATE_LEFT, this.camera);
         leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/leftButtonPressed.png")));
     }//GEN-LAST:event_leftNavigationButtonMousePressed
 
     private void upNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_upNavigationButtonMousePressed
-        animator.startAnimation(RotationAnimator.Direction.ROTATE_UP, this.camera);
+        animator.startAnimation(Direction.ROTATE_UP, this.camera);
         upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/upButtonPressed.png")));
     }//GEN-LAST:event_upNavigationButtonMousePressed
 
     private void downNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_downNavigationButtonMousePressed
-        animator.startAnimation(RotationAnimator.Direction.ROTATE_DOWN, this.camera);
+        animator.startAnimation(Direction.ROTATE_DOWN, this.camera);
         downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/downButtonPressed.png")));
     }//GEN-LAST:event_downNavigationButtonMousePressed
 
     private void plusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_plusNavigationButtonMousePressed
-        animator.startAnimation(RotationAnimator.Direction.ZOOM_IN, this.camera);
+        animator.startAnimation(Direction.ZOOM_IN, this.camera);
         plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/plusPressed.png")));
     }//GEN-LAST:event_plusNavigationButtonMousePressed
  
     private void minusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minusNavigationButtonMousePressed
-        animator.startAnimation(RotationAnimator.Direction.ZOOM_OUT, this.camera);
+        animator.startAnimation(Direction.ZOOM_OUT, this.camera);
         minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/minusPressed.png")));
     }//GEN-LAST:event_minusNavigationButtonMousePressed
 
@@ -404,7 +404,7 @@ public class Canvas extends javax.swing.JPanel {
     }//GEN-LAST:event_minusNavigationButtonMouseReleased
 
     private void rightNavigationButton1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightNavigationButton1MousePressed
-        animator.startAnimation(RotationAnimator.Direction.ROTATE_RIGHT, this.camera);
+        animator.startAnimation(Direction.ROTATE_RIGHT, this.camera);
         rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rightButtonPressed.png")));
     }//GEN-LAST:event_rightNavigationButton1MousePressed
 
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0be3b48a1f8a78770c302fe970a9a0e25652c34
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java
@@ -0,0 +1,28 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package cz.fidentis.analyst.gui.canvas;
+
+/**
+ *
+ * @author Richard Pajersky
+ */
+public enum Direction {
+        ROTATE_LEFT,
+        ROTATE_RIGHT,
+        ROTATE_UP,
+        ROTATE_DOWN,
+        ROTATE_IN,
+        ROTATE_OUT,
+        ZOOM_IN,
+        ZOOM_OUT,
+        TRANSLATE_LEFT,
+        TRANSLATE_RIGHT,
+        TRANSLATE_UP,
+        TRANSLATE_DOWN,
+        TRANSLATE_IN,
+        TRANSLATE_OUT,
+        NONE
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
index 162bd0d981b6171c1100e40be9308fb96e2abc58..2a9ecd90239a937f08f0be6fb58e3907ede4571e 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
@@ -38,11 +38,10 @@ public class MouseRotationListener extends MouseAdapter {
      * Left mouse button dragging rotates
      * Right mouse button dragging moves
      * Middle mouse button dragging resets rotation and zoom
+     * @param evt Mouse position info
      */
     @Override
     public void mouseDragged(MouseEvent evt) {
-        //JOptionPane.showMessageDialog(null, evt.getButton());
-
         if (SwingUtilities.isLeftMouseButton(evt)) {
             double rotateX = -(lastY - evt.getY()) * rotationSpeed;
             double rotateY = +(lastX - evt.getX()) * rotationSpeed;
@@ -68,6 +67,7 @@ public class MouseRotationListener extends MouseAdapter {
 
     /**
      * Actualize mouse movement
+     * @param evt Mouse position info
      */
     @Override
     public void mouseMoved(MouseEvent e) {
@@ -77,6 +77,7 @@ public class MouseRotationListener extends MouseAdapter {
 
     /**
      * Zoom in or out based on mouse wheel movement
+     * @param evt Mouse wheel info
      */
     @Override
     public void mouseWheelMoved(MouseWheelEvent evt) {
@@ -90,6 +91,7 @@ public class MouseRotationListener extends MouseAdapter {
     
     /**
      * Middle mouse button click resets rotation and zoom
+     * @param evt Mouse position info
      */
     @Override
     public void mouseClicked(MouseEvent evt) {
@@ -99,18 +101,32 @@ public class MouseRotationListener extends MouseAdapter {
         }
     }
     
+    /**
+     * @return Rotation speed
+     */
     public static double getRotationSpeed() {
         return rotationSpeed;
     }
 
+    /**
+     * Sets rotation speed
+     * @param rotationSpeed 
+     */
     public static void setRotationSpeed(double rotationSpeed) {
         MouseRotationListener.rotationSpeed = rotationSpeed;
     }
 
+    /**
+     * @return Move speed
+     */
     public static double getMoveSpeed() {
         return moveSpeed;
     }
 
+    /**
+     * Sets move speed
+     * @param moveSpeed 
+     */
     public static void setMoveSpeed(double moveSpeed) {
         MouseRotationListener.moveSpeed = moveSpeed;
     }
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
index a15b6412f2453c07ea187e08aee1e588979653a0..850d395f45972db169ce6f2a48efdddb7feb7d67 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
@@ -15,22 +15,6 @@ import java.util.TimerTask;
  */
 public class RotationAnimator {
     
-    /**
-     * @author Radek Oslejsek
-     */
-    public enum Direction {
-        ROTATE_LEFT,
-        ROTATE_RIGHT,
-        ROTATE_UP,
-        ROTATE_DOWN,
-        ZOOM_IN,
-        ZOOM_OUT,
-        NONE
-    }
-    
-    //private final Camera camera;
-        
-    
     /**
      * Frequency of the rotation or zoom animations
      */
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java
index b25cdd68411b9eab29cf3024d973673e448ecd9b..2355656c9962671e75fa993f96f9401dfca7b11d 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java
@@ -1,13 +1,12 @@
 package cz.fidentis.analyst.gui.scene;
 
 import com.jogamp.opengl.GL2;
+import cz.fidentis.analyst.feature.FeaturePoint;
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 import cz.fidentis.analyst.mesh.core.MeshModel;
 import java.awt.Color;
-import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.List;
-import javax.vecmath.Point3d;
 import javax.vecmath.Vector3d;
 
 /**
@@ -16,6 +15,7 @@ import javax.vecmath.Vector3d;
  * This class encapsulates rendering state and parameters,
  * 
  * @author Radek Oslejsek
+ * @author Richard Pajersky
  */
 public class DrawableMesh {
     
@@ -23,19 +23,57 @@ public class DrawableMesh {
     
     private boolean display = true;
     
-    // material info
+    /* material info */
+    /**
+     * {@link Color} of mesh
+     */
     private Color color = new Color(255, 255, 255);
+    /**
+     * {@link Color} of highlights
+     */
     private Color highlights = new Color(0, 0, 0, 1);
+    /**
+     * Transparency of mesh
+     */
     private float transparency = 1;
-    // transformation info
+    
+    /* transformation info */
+    /**
+     * Translation
+     */
     private Vector3d translation = new Vector3d(0, 0, 0);
+    /**
+     * Rotation
+     */
     private Vector3d rotation = new Vector3d(0, 0, 0);
+    /**
+     * Scale
+     */
     private Vector3d scale = new Vector3d(0, 0, 0);
-    // render mode
+    
+    /* render mode */
+    /**
+     * Render mode to use, one from {@code GL_FILL}, {@code GL_LINE}, {@code GL_POINT}
+     */
     private int renderMode = GL2.GL_FILL;
-    // feature points
-    private ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> featurePoints = new ArrayList<>();
-    boolean renderFeaturePoints = false;
+    /**
+     * Flag if back should be rendered
+     */
+    private boolean showBackface = true;
+    
+    /* feature points */
+    /**
+     * {@link List} of feature points
+     */
+    private List<FeaturePoint> featurePoints = new ArrayList<>();
+    /**
+     * {@link List} of feature points color
+     */
+    private List<Color> featurePointsColor = new ArrayList<>();
+    /**
+     * Flag if feature points should be rendered
+     */
+    private boolean renderFeaturePoints = false;
     
     /**
      * Constructor. 
@@ -81,79 +119,187 @@ public class DrawableMesh {
         return display;
     }
     
+    /**
+     * Sets color
+     * @param color Color
+     */
     public void setColor(Color color) {
         this.color = color;
     }
 
+    /**
+     * @return {@link Color}
+     */
     public Color getColor() {
         return color;
     }
     
+    /**
+     * @return Current value of transparency
+     */
     public float getTransparency() {
         return transparency;
     }
 
+    /**
+     * Sets transparency
+     * @param transparency Transparency
+     */
     public void setTransparency(float transparency) {
         this.transparency = transparency;
     }
     
+    /**
+     * @return Current translation
+     */
     public Vector3d getTranslation() {
         return translation;
     }
 
+    /**
+     * Sets tranlation
+     * @param translation Translation
+     */
     public void setTranslation(Vector3d translation) {
         this.translation = translation;
     }
 
+    /**
+     * @return Current rotation
+     */
     public Vector3d getRotation() {
         return rotation;
     }
 
+    /**
+     * Sets rotation
+     * @param rotation 
+     */
     public void setRotation(Vector3d rotation) {
         this.rotation = rotation;
     }
 
+    /**
+     * @return Current scale
+     */
     public Vector3d getScale() {
         return scale;
     }
 
+    /**
+     * Sets scale
+     * @param scale Scale
+     */
     public void setScale(Vector3d scale) {
         this.scale = scale;
     }
     
+    /**
+     * @return {@link MeshModel}
+     */
     public MeshModel getModel() {
         return this.model;
     }
 
+    /**
+     * @return {@link Color} of highlights
+     */
     public Color getHighlights() {
         return highlights;
     }
 
+    /**
+     * Sets {@link Color} of highlights
+     * @param highlights 
+     */
     public void setHighlights(Color highlights) {
         this.highlights = highlights;
     }
     
+    /**
+     * @return Value of {@link #renderMode}
+     */
     public int getRenderMode() {
         return renderMode;
     }
 
+    /**
+     * Sets render mode
+     * @param renderMode Render mode
+     * @throws IllegalArgumentException if renderMode isn't {@code GL_FILL}, {@code GL_LINE} or {@coed GL_POINT}
+     */
     public void setRenderMode(int renderMode) {
+        if (renderMode != GL2.GL_FILL && 
+                renderMode != GL2.GL_LINE &&
+                renderMode != GL2.GL_POINT) {
+            throw new IllegalArgumentException("invalid mode");
+        }
         this.renderMode = renderMode;
     }
 
-    public ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> getFeaturePoints() {
+    /**
+     * @return {@link List} of {@link FeaturePoint}
+     */
+    public List<FeaturePoint> getFeaturePoints() {
         return featurePoints;
     }
 
-    public void setFeaturePoints(ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> featurePoints) {
+    /**
+     * Sets feature points
+     * @param featurePoints Feature points
+     */
+    public void setFeaturePoints(List<FeaturePoint> featurePoints) {
         this.featurePoints = featurePoints;
+        List<Color> colors = new ArrayList<>();
+        featurePoints.forEach((_item) -> {
+            colors.add(this.color);
+        });
+        this.setFeaturePointsColor(colors);
     }   
     
+    /**
+     * @return {@link List} of feature points {@link Color}
+     */
+    public List<Color> getFeaturePointsColor() {
+        return featurePointsColor;
+    }
+
+    /**
+     * Sets colors of feature points
+     * @param featurePointsColor Colors of feature points
+     */
+    public void setFeaturePointsColor(List<Color> featurePointsColor) {
+        this.featurePointsColor = featurePointsColor;
+    } 
+    
+    /**
+     * @return {@code true} if feature points should be rendered
+     */
     public boolean isRenderFeaturePoints() {
         return renderFeaturePoints;
     }
 
+    /**
+     * Sets if feature points should be renderred or not
+     * @param renderFeaturePoints 
+     */
     public void setRenderFeaturePoints(boolean renderFeaturePoints) {
         this.renderFeaturePoints = renderFeaturePoints;
     }
+
+    /**
+     * @return {@code true} if back face shoud be shown
+     */
+    public boolean isShowBackface() {
+        return showBackface;
+    }
+
+    /**
+     * Sets if back face should be shown or not
+     * @param showBackface 
+     */
+    public void setShowBackface(boolean showBackface) {
+        this.showBackface = showBackface;
+    }
+    
 }
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
index 10d45da9393a6c77d803e58ac2db81eb8509ffbd..e334a1dbc8fdc0b3e5d75b039dba21ffdac4ae7b 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
@@ -1,18 +1,15 @@
 package cz.fidentis.analyst.gui.scene;
 
 import com.jogamp.opengl.GL;
-import static com.jogamp.opengl.GL.GL_DEPTH_TEST;
-import static com.jogamp.opengl.GL.GL_FRONT_AND_BACK;
 import com.jogamp.opengl.GL2;
 import com.jogamp.opengl.glu.GLU;
 import com.jogamp.opengl.glu.GLUquadric;
+import cz.fidentis.analyst.feature.FeaturePoint;
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 import java.awt.Color;
-import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.List;
 import javax.vecmath.Point3d;
 import javax.vecmath.Point4f;
 import javax.vecmath.Vector3d;
@@ -22,6 +19,7 @@ import javax.vecmath.Vector3d;
  * 
  * @author Natalia Bebjakova
  * @author Radek Oslejsek
+ * @author Richard Pajersky
  */
 public class SceneRenderer {
 
@@ -32,7 +30,6 @@ public class SceneRenderer {
     private GL2 gl;
     
     private boolean brightBackground = false;
-    private boolean wireframe = false;
     
     /**
      * Constructor.
@@ -49,6 +46,7 @@ public class SceneRenderer {
         gl.setSwapInterval(1);
         gl.glEnable(GL2.GL_LIGHTING);
         gl.glEnable(GL2.GL_LIGHT0);
+        gl.glEnable(GL2.GL_LIGHT1);
         gl.glEnable(GL2.GL_DEPTH_TEST);
         gl.glClearColor(0,0,0,0);     // background for GLCanvas
         gl.glClear(GL2.GL_COLOR_BUFFER_BIT);
@@ -57,13 +55,14 @@ public class SceneRenderer {
 
         gl.glDepthFunc(GL2.GL_LESS);
         gl.glDepthRange(0.0, 1.0);
-        gl.glEnable(GL_DEPTH_TEST); 
+        gl.glEnable(GL.GL_DEPTH_TEST); 
 
         gl.glEnable(GL2.GL_NORMALIZE);
         gl.glDisable(GL2.GL_CULL_FACE);
         
         gl.glEnable(GL2.GL_BLEND);    // enable transparency
         gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
+
     }
     
     /**
@@ -112,23 +111,14 @@ public class SceneRenderer {
      */
     public void renderScene(Camera camera, Collection<DrawableMesh> drawables) {
         clearScene();
+        showBackface((DrawableMesh)drawables.toArray()[0]);
+        setPosition(camera);
+        setMeshOrder(drawables);
         
-        // sets model to proper position
-        Vector3d currentPosition = camera.getPosition();
-        Vector3d center = camera.getCenter();
-        Vector3d upDirection = camera.getUpDirection();
-        glu.gluLookAt(currentPosition.x, currentPosition.y, currentPosition.z,  
-                center.x, center.y, center.z,
-                upDirection.x, upDirection.y, upDirection.z);
-
         gl.glShadeModel(GL2.GL_SMOOTH);
         
-        if (((DrawableMesh)drawables.toArray()[0]).getTransparency() != 1) {
-            Collections.reverse((ArrayList)drawables);
-        }
-        
         for (DrawableMesh obj: drawables) {
-            gl.glPolygonMode( GL_FRONT_AND_BACK, obj.getRenderMode());
+            gl.glPolygonMode(GL.GL_FRONT_AND_BACK, obj.getRenderMode());
             setMaterial(obj);
             gl.glPushMatrix();
             setTransformation(obj);
@@ -144,14 +134,56 @@ public class SceneRenderer {
     }
     
     /**
-     * Sets up material based on info from DrawableMesh
+     * Adds backlight to show/hide backface based on info from DrawableMesh
+     * 
+     * @param face Face
+     */
+    private void showBackface(DrawableMesh face) {
+        float[] pos = {0f, 0f, -1f, 0f};
+        gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_POSITION, pos, 0);
+        if (face.isShowBackface()) {
+            gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_DIFFUSE, Color.white.getComponents(null), 0);
+        } else {
+            gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_DIFFUSE, Color.black.getComponents(null), 0);
+        }
+    }
+    
+    /**
+     * Sets model to proper position
+     * 
+     * @param camera Camera
+     */
+    private void setPosition(Camera camera) {
+        Vector3d currentPosition = camera.getPosition();
+        Vector3d center = camera.getCenter();
+        Vector3d upDirection = camera.getUpDirection();
+        glu.gluLookAt(currentPosition.x, currentPosition.y, currentPosition.z,  
+                center.x, center.y, center.z,
+                upDirection.x, upDirection.y, upDirection.z);
+    }
+    
+    /**
+     * Sets up transparent objects to render later in order to render properly
+     * Now works only for two meshes
+     * 
+     * @param drawables List of meshes
+     */
+    private void setMeshOrder(Collection<DrawableMesh> drawables) {
+        if (((DrawableMesh)drawables.toArray()[0]).getTransparency() != 1) {
+            Collections.reverse((ArrayList)drawables);
+        }
+    }
+    
+    /**
+     * Sets up material
+     * 
+     * @param obj Model used to get material info
      */
     private void setMaterial(DrawableMesh obj) {
         // set color
         Color color = obj.getColor();
         float[] rgba = {color.getRed() / 255f, color.getGreen() / 255f, 
             color.getBlue() / 255f , obj.getTransparency()};
-        gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, rgba, 0);
         gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, rgba, 0);
         // set color of highlights
         color = obj.getHighlights();
@@ -162,6 +194,8 @@ public class SceneRenderer {
     
     /**
      * Sets up object transformation
+     * 
+     * @param obj Model used to get transformation info
      */
     private void setTransformation(DrawableMesh obj) {
         // rotate
@@ -176,16 +210,17 @@ public class SceneRenderer {
     
     /**
      * Renders feature points
+     * 
+     * @param obj Model used to get his feature points
      */
     private void renderFeaturePoints(DrawableMesh obj) {
-            for (AbstractMap.SimpleEntry<Point3d, Color> featurePoint: obj.getFeaturePoints()) {
-                Color color = featurePoint.getValue();
-                Point3d point = featurePoint.getKey();
+            for (int i = 0; i < obj.getFeaturePoints().size(); i++) {
+                Color color = obj.getFeaturePointsColor().get(i);
+                FeaturePoint point = obj.getFeaturePoints().get(i);
                 gl.glPushMatrix();
-                gl.glTranslated(point.x, point.y, point.z);
+                gl.glTranslated(point.getX(), point.getY(), point.getZ());
                 float[] rgba = {color.getRed() / 255f, color.getGreen() / 255f, 
                     color.getBlue() / 255f , obj.getTransparency()};
-                gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, rgba, 0);
                 gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, rgba, 0);
                 GLUquadric center = glu.gluNewQuadric();
                 glu.gluQuadricDrawStyle(center, GLU.GLU_FILL);
@@ -210,24 +245,9 @@ public class SceneRenderer {
         gl.glLoadIdentity();
     }
     
-    /**
-     * Sets the wire-frame rendering mode
-     */
-    protected void setWireframeMode() {
-        this.wireframe = true;
-    }
-    
-    /**
-     * Sets the "shaded" rendering mode (filled triangles)
-     */
-    protected void setFillMode() {
-        this.wireframe = false;
-    }
-    
     /**
      * Loops through the facet and render all the vertices as they are stored in corner table
      * 
-     * @param gl OpenGL context
      * @param facet facet of model
      */
     protected void renderFacet(MeshFacet facet) {
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form
deleted file mode 100644
index 7936d52159e2a317f4a5940b8e8e07363cc5a82e..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form
+++ /dev/null
@@ -1,1510 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <NonVisualComponents>
-    <Component class="javax.swing.ButtonGroup" name="primaryRenderModeGroup">
-    </Component>
-    <Component class="javax.swing.ButtonGroup" name="secondaryRenerModeGroup">
-    </Component>
-  </NonVisualComponents>
-  <Properties>
-    <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-      <Color blue="e2" green="e6" red="b0" type="rgb"/>
-    </Property>
-    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-      <Dimension value="[405, 600]"/>
-    </Property>
-  </Properties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" attributes="0">
-                  <Component id="jSeparator5" max="32767" attributes="0"/>
-                  <Component id="jSeparator7" alignment="0" max="32767" attributes="0"/>
-                  <Group type="102" alignment="1" attributes="0">
-                      <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                      <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="1" attributes="0">
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Group type="102" alignment="0" attributes="0">
-                                      <EmptySpace min="-2" pref="82" max="-2" attributes="0"/>
-                                      <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftSmallRotaXButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                      <Component id="rightSmallRotaXButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftRotationYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftSmallRotaYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                      <Component id="rightSmallRotaYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <Group type="102" alignment="0" attributes="0">
-                                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                          <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
-                                          <Component id="rotationButton" min="-2" pref="59" max="-2" attributes="0"/>
-                                      </Group>
-                                      <EmptySpace min="23" pref="23" max="-2" attributes="0"/>
-                                      <Group type="103" groupAlignment="0" attributes="0">
-                                          <Component id="rotationXFTF" min="-2" pref="97" max="-2" attributes="0"/>
-                                          <Component id="rotatXLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                                      </Group>
-                                      <Group type="103" groupAlignment="0" attributes="0">
-                                          <Group type="102" alignment="0" attributes="0">
-                                              <EmptySpace max="-2" attributes="0"/>
-                                              <Component id="rotationYFTF" max="32767" attributes="0"/>
-                                          </Group>
-                                          <Group type="102" alignment="0" attributes="0">
-                                              <EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
-                                              <Component id="rotatYLabel" min="-2" max="-2" attributes="0"/>
-                                              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                                          </Group>
-                                      </Group>
-                                  </Group>
-                              </Group>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Group type="102" alignment="0" attributes="0">
-                                      <Component id="leftRotationZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftSmallRotaZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                      <Component id="rightSmallRotaZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="rightRotationZButton" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <Component id="rotationZFTF" min="-2" pref="97" max="-2" attributes="0"/>
-                                  <Component id="rotatZLabel" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                          <Group type="102" alignment="0" attributes="0">
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Component id="jLabel2" alignment="0" max="32767" attributes="0"/>
-                                  <Component id="translationButton" alignment="0" min="-2" pref="59" max="-2" attributes="0"/>
-                              </Group>
-                              <EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="0" attributes="0">
-                                  <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
-                                      <Component id="translationXFTF" alignment="0" max="32767" attributes="0"/>
-                                      <Group type="102" alignment="0" attributes="0">
-                                          <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/>
-                                          <EmptySpace max="-2" attributes="0"/>
-                                          <Component id="leftSmallTranslXButton" min="-2" max="-2" attributes="0"/>
-                                          <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                          <Component id="rightSmallTranslXButton" min="-2" max="-2" attributes="0"/>
-                                          <EmptySpace max="-2" attributes="0"/>
-                                          <Component id="rightTranslationXButton" min="-2" max="-2" attributes="0"/>
-                                      </Group>
-                                  </Group>
-                                  <Component id="translXLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Component id="translYLabel" min="-2" max="-2" attributes="0"/>
-                                  <Group type="102" alignment="0" attributes="0">
-                                      <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftSmallTranslYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                      <Component id="rightSmallTranslYButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <Component id="translationYFTF" alignment="0" min="-2" pref="97" max="-2" attributes="0"/>
-                              </Group>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Group type="102" alignment="0" attributes="0">
-                                      <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="leftSmallTranslZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
-                                      <Component id="rightSmallTranslZButton" min="-2" max="-2" attributes="0"/>
-                                      <EmptySpace max="-2" attributes="0"/>
-                                      <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <Component id="translationZFTF" min="-2" pref="97" max="-2" attributes="0"/>
-                                  <Component id="translZLabel" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                          <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Group type="102" alignment="0" attributes="0">
-                              <Component id="scaleButton" min="-2" pref="59" max="-2" attributes="0"/>
-                              <EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
-                              <Component id="scaleMinusButton" min="-2" pref="26" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="scaleSmallMinusButton" min="-2" pref="26" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="scaleSmallPlusButton" min="-2" pref="26" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="scalePlusButton" min="-2" pref="26" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="scaleFTF" min="-2" pref="72" max="-2" attributes="0"/>
-                          </Group>
-                      </Group>
-                  </Group>
-                  <Group type="102" attributes="0">
-                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                          <Group type="102" alignment="0" attributes="0">
-                              <Component id="resetAllButton" min="-2" max="-2" attributes="0"/>
-                              <EmptySpace max="32767" attributes="0"/>
-                              <Component id="applyButton" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                          <Component id="jSeparator6" alignment="0" max="32767" attributes="0"/>
-                          <Component id="jSeparator2" alignment="0" max="32767" attributes="0"/>
-                          <Group type="103" alignment="1" groupAlignment="0" attributes="0">
-                              <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
-                              <Component id="jSeparator1" alignment="0" min="-2" pref="385" max="-2" attributes="0"/>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <Group type="103" groupAlignment="0" attributes="0">
-                                      <Component id="secondaryLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                                      <Component id="primaryLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                                      <Component id="modelLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                                  </Group>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                      <Component id="secondaryColorPanel" pref="50" max="32767" attributes="0"/>
-                                      <Component id="primaryColorPanel" pref="50" max="32767" attributes="0"/>
-                                      <Component id="colorButton" alignment="1" pref="50" max="32767" attributes="0"/>
-                                  </Group>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Group type="103" groupAlignment="0" attributes="0">
-                                      <Component id="highlightsLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                                      <Group type="102" alignment="0" attributes="0">
-                                          <EmptySpace min="10" pref="10" max="-2" attributes="0"/>
-                                          <Group type="103" groupAlignment="0" attributes="0">
-                                              <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/>
-                                              <Component id="secondaryHighlightsCB" alignment="0" min="-2" max="-2" attributes="0"/>
-                                          </Group>
-                                      </Group>
-                                  </Group>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Group type="103" groupAlignment="0" attributes="0">
-                                      <Group type="102" alignment="0" attributes="0">
-                                          <Component id="fillLabel" min="-2" max="-2" attributes="0"/>
-                                          <EmptySpace type="separate" max="-2" attributes="0"/>
-                                          <Component id="linesLabel" min="-2" max="-2" attributes="0"/>
-                                          <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                                          <Component id="pointsLabel" min="-2" max="-2" attributes="0"/>
-                                      </Group>
-                                      <Group type="102" alignment="0" attributes="0">
-                                          <Group type="103" groupAlignment="0" attributes="0">
-                                              <Group type="102" alignment="0" attributes="0">
-                                                  <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/>
-                                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                                  <Component id="secondaryLinesRB" min="-2" max="-2" attributes="0"/>
-                                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                                  <Component id="secondaryPointsRB" min="-2" max="-2" attributes="0"/>
-                                              </Group>
-                                              <Group type="102" alignment="0" attributes="0">
-                                                  <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/>
-                                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                                  <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/>
-                                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                                  <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/>
-                                              </Group>
-                                              <Group type="102" alignment="0" attributes="0">
-                                                  <EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
-                                                  <Component id="renderModeLabel" min="-2" max="-2" attributes="0"/>
-                                              </Group>
-                                          </Group>
-                                          <Group type="103" groupAlignment="0" attributes="0">
-                                              <Group type="102" attributes="0">
-                                                  <EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
-                                                  <Component id="transparencySlider" min="-2" max="-2" attributes="0"/>
-                                              </Group>
-                                              <Group type="102" alignment="0" attributes="0">
-                                                  <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
-                                                  <Component id="transparencyButton" min="-2" pref="50" max="-2" attributes="0"/>
-                                              </Group>
-                                          </Group>
-                                      </Group>
-                                  </Group>
-                              </Group>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <Component id="featurePointsLabel" min="-2" max="-2" attributes="0"/>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Component id="featurePointsButton" min="-2" pref="50" max="-2" attributes="0"/>
-                              </Group>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <Component id="viewLabel" min="-2" max="-2" attributes="0"/>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Component id="frontButton" min="-2" pref="50" max="-2" attributes="0"/>
-                                  <EmptySpace type="separate" max="-2" attributes="0"/>
-                                  <Component id="profileButton" min="-2" pref="50" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                          <Component id="transformationLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                      </Group>
-                      <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                  </Group>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jSeparator6" min="-2" pref="10" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="highlightsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="renderModeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="modelLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="colorButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="transparencyButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="fillLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="linesLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="pointsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="103" groupAlignment="1" max="-2" attributes="0">
-                      <Group type="102" attributes="0">
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                                  <Component id="secondaryColorPanel" max="32767" attributes="0"/>
-                                  <Component id="primaryLabel" max="32767" attributes="0"/>
-                              </Group>
-                              <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/>
-                              <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                          <EmptySpace min="-2" pref="11" max="-2" attributes="0"/>
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Group type="103" alignment="1" groupAlignment="0" max="-2" attributes="0">
-                                  <Component id="primaryColorPanel" max="32767" attributes="0"/>
-                                  <Component id="secondaryLabel" max="32767" attributes="0"/>
-                              </Group>
-                              <Component id="secondaryHighlightsCB" alignment="1" min="-2" max="-2" attributes="0"/>
-                              <Component id="secondaryFillRB" alignment="1" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                      </Group>
-                      <Group type="102" attributes="0">
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/>
-                              <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                          <EmptySpace max="32767" attributes="0"/>
-                          <Group type="103" groupAlignment="0" attributes="0">
-                              <Component id="secondaryLinesRB" alignment="1" min="-2" max="-2" attributes="0"/>
-                              <Component id="secondaryPointsRB" alignment="1" min="-2" max="-2" attributes="0"/>
-                          </Group>
-                      </Group>
-                  </Group>
-                  <Component id="transparencySlider" min="-2" pref="53" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace type="unrelated" max="-2" attributes="0"/>
-              <Component id="jSeparator2" min="-2" pref="8" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="viewLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="profileButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="frontButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="featurePointsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="featurePointsButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jSeparator7" min="-2" pref="10" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="transformationLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace type="separate" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translXLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translYLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translZLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="leftTranslationXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftSmallTranslXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallTranslXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightTranslationXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftTranslationYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightTranslationYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallTranslYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftSmallTranslYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftSmallTranslZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallTranslZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftTranslationZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightTranslationZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="translationXFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translationButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translationYFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="translationZFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace type="separate" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotatXLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotatYLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotatZLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace min="-2" pref="11" max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="leftSmallRotaXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallRotaXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftRotationXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightRotationXButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftRotationYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftSmallRotaYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallRotaYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightRotationYButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftRotationZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="leftSmallRotaZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightSmallRotaZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rightRotationZButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="rotationXFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotationYFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotationButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="rotationZFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace type="separate" max="-2" attributes="0"/>
-              <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="scaleButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scaleMinusButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scaleSmallMinusButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scaleSmallPlusButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scalePlusButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scaleFTF" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jSeparator5" min="-2" pref="10" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="resetAllButton" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="applyButton" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace pref="41" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Container class="javax.swing.JPanel" name="primaryColorPanel">
-      <Properties>
-        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
-          <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
-            <LineBorder/>
-          </Border>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Hand Cursor"/>
-        </Property>
-        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[72, 14]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="primaryColorPanelMouseClicked"/>
-      </Events>
-
-      <Layout>
-        <DimensionLayout dim="0">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-          </Group>
-        </DimensionLayout>
-        <DimensionLayout dim="1">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-          </Group>
-        </DimensionLayout>
-      </Layout>
-    </Container>
-    <Container class="javax.swing.JPanel" name="secondaryColorPanel">
-      <Properties>
-        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
-          <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
-            <LineBorder/>
-          </Border>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Hand Cursor"/>
-        </Property>
-        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[70, 14]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="secondaryColorPanelMouseClicked"/>
-      </Events>
-
-      <Layout>
-        <DimensionLayout dim="0">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-          </Group>
-        </DimensionLayout>
-        <DimensionLayout dim="1">
-          <Group type="103" groupAlignment="0" attributes="0">
-              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-          </Group>
-        </DimensionLayout>
-      </Layout>
-    </Container>
-    <Component class="javax.swing.JSlider" name="transparencySlider">
-      <Properties>
-        <Property name="majorTickSpacing" type="int" value="5"/>
-        <Property name="maximum" type="int" value="20"/>
-        <Property name="minorTickSpacing" type="int" value="5"/>
-        <Property name="orientation" type="int" value="1"/>
-        <Property name="paintTicks" type="boolean" value="true"/>
-        <Property name="snapToTicks" type="boolean" value="true"/>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencySlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="value" type="int" value="10"/>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Hand Cursor"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySliderStateChanged"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="secondaryLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="primaryLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="colorButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.colorButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.colorButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="horizontalTextPosition" type="int" value="0"/>
-        <Property name="iconTextGap" type="int" value="0"/>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="colorButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="transparencyButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="transparencyButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="modelLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.modelLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator2">
-    </Component>
-    <Component class="javax.swing.JLabel" name="viewLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.viewLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="frontButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.frontButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.frontButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="frontButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="profileButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.profileButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.profileButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="profileButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="translationButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="translationButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftTranslationXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightTranslationXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="translationXFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Text Cursor"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationXFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="translationYFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationYFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="translationZFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationZFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rotationButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotationButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="scaleButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="applyButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.applyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Hand Cursor"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="applyButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator1">
-    </Component>
-    <Component class="javax.swing.JButton" name="leftTranslationYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftTranslationZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightTranslationYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightTranslationZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="rotationXFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationXFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftRotationXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightRotationXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftRotationYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftRotationZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightRotationYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightRotationZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="rotationYFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationYFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="rotationZFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationZFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JFormattedTextField" name="scaleFTF">
-      <Properties>
-        <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
-          <Format subtype="0" type="0"/>
-        </Property>
-        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="scaleFTFPropertyChange"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="scaleMinusButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleMinusButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="scalePlusButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scalePlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scalePlusButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator5">
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel1">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Tahoma" size="14" style="1"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator6">
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator7">
-    </Component>
-    <Component class="javax.swing.JToggleButton" name="featurePointsButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.featurePointsButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="featurePointsButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel2">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel3">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel4">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="resetAllButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.resetAllButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="resetAllButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallTranslXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallTranslXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="translXLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallTranslYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallTranslYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallTranslZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallTranslZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="translYLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallRotaXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallRotaYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="leftSmallRotaZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallRotaXButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaXButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallRotaYButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaYButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="rightSmallRotaZButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaZButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="translZLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="rotatXLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="rotatYLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="rotatZLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JButton" name="scaleSmallPlusButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleSmallPlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[13, 23]"/>
-        </Property>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleSmallPlusButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JButton" name="scaleSmallMinusButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleSmallMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
-          <Color id="Default Cursor"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[2, 2, 2, 2]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleSmallMinusButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="highlightsLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.highlightsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JCheckBox" name="primaryHighlightsCB">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryHighlightsCBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JCheckBox" name="secondaryHighlightsCB">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryHighlightsCBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="renderModeLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.renderModeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="fillLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.fillLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="linesLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.linesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="pointsLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.pointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="primaryFillRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="primaryRenderModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryFillRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="secondaryFillRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="secondaryRenerModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryFillRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="primaryLinesRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="primaryRenderModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryLinesRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="secondaryLinesRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="secondaryRenerModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryLinesRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="secondaryPointsRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="secondaryRenerModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryPointsRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="primaryPointsRB">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="primaryRenderModeGroup"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
-          <Insets value="[0, 0, 0, 0]"/>
-        </Property>
-        <Property name="opaque" type="boolean" value="false"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryPointsRBActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="transformationLabel">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Tahoma" size="12" style="1"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transformationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="featurePointsLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.featurePointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-  </SubComponents>
-</Form>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java
deleted file mode 100644
index 85315d019b09b3f074d400e2f240131da8a80ad5..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java
+++ /dev/null
@@ -1,1440 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package cz.fidentis.analyst.gui.tab;
-
-import cz.fidentis.analyst.gui.RegistrationCPEventListener;
-import java.awt.Color;
-import javax.swing.JColorChooser;
-
-/**
- *
- * @author Richard Pajersky
- */
-public class PostRegistrationCP extends javax.swing.JPanel {
-
-    private RegistrationCPEventListener listener;
-    
-    /**
-     * Creates new form PostRegistrationPanel
-     */
-    public PostRegistrationCP() {
-        initComponents();
-        this.listener = null;
-    }
-    
-    public void initPostRegistrationCP(RegistrationCPEventListener listener) {
-        initComponents();
-        this.listener = listener;
-        setDefaults();
-    }
-    
-    private void setDefaults() {
-        //transparencySlider.setMaximum(2 * listener.getTransparencyRange());
-        //transparencySlider.setValue(listener.getTransparencyRange());
-        primaryColorPanel.setBackground(listener.getDefaultPrimaryColor());
-        secondaryColorPanel.setBackground(listener.getDefaultSecondaryColor());
-        primaryFillRB.setSelected(true);
-        secondaryFillRB.setSelected(true);
-        resetAllButtonActionPerformed(null);
-    }
-
-    /**
-     * 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() {
-
-        primaryRenderModeGroup = new javax.swing.ButtonGroup();
-        secondaryRenerModeGroup = new javax.swing.ButtonGroup();
-        primaryColorPanel = new javax.swing.JPanel();
-        secondaryColorPanel = new javax.swing.JPanel();
-        transparencySlider = new javax.swing.JSlider();
-        secondaryLabel = new javax.swing.JLabel();
-        primaryLabel = new javax.swing.JLabel();
-        colorButton = new javax.swing.JButton();
-        transparencyButton = new javax.swing.JButton();
-        modelLabel = new javax.swing.JLabel();
-        jSeparator2 = new javax.swing.JSeparator();
-        viewLabel = new javax.swing.JLabel();
-        frontButton = new javax.swing.JButton();
-        profileButton = new javax.swing.JButton();
-        translationButton = new javax.swing.JButton();
-        leftTranslationXButton = new javax.swing.JButton();
-        rightTranslationXButton = new javax.swing.JButton();
-        translationXFTF = new javax.swing.JFormattedTextField();
-        translationYFTF = new javax.swing.JFormattedTextField();
-        translationZFTF = new javax.swing.JFormattedTextField();
-        rotationButton = new javax.swing.JButton();
-        scaleButton = new javax.swing.JButton();
-        applyButton = new javax.swing.JButton();
-        jSeparator1 = new javax.swing.JSeparator();
-        leftTranslationYButton = new javax.swing.JButton();
-        leftTranslationZButton = new javax.swing.JButton();
-        rightTranslationYButton = new javax.swing.JButton();
-        rightTranslationZButton = new javax.swing.JButton();
-        rotationXFTF = new javax.swing.JFormattedTextField();
-        leftRotationXButton = new javax.swing.JButton();
-        rightRotationXButton = new javax.swing.JButton();
-        leftRotationYButton = new javax.swing.JButton();
-        leftRotationZButton = new javax.swing.JButton();
-        rightRotationYButton = new javax.swing.JButton();
-        rightRotationZButton = new javax.swing.JButton();
-        rotationYFTF = new javax.swing.JFormattedTextField();
-        rotationZFTF = new javax.swing.JFormattedTextField();
-        scaleFTF = new javax.swing.JFormattedTextField();
-        scaleMinusButton = new javax.swing.JButton();
-        scalePlusButton = new javax.swing.JButton();
-        jSeparator5 = new javax.swing.JSeparator();
-        jLabel1 = new javax.swing.JLabel();
-        jSeparator6 = new javax.swing.JSeparator();
-        jSeparator7 = new javax.swing.JSeparator();
-        featurePointsButton = new javax.swing.JToggleButton();
-        jLabel2 = new javax.swing.JLabel();
-        jLabel3 = new javax.swing.JLabel();
-        jLabel4 = new javax.swing.JLabel();
-        resetAllButton = new javax.swing.JButton();
-        leftSmallTranslXButton = new javax.swing.JButton();
-        rightSmallTranslXButton = new javax.swing.JButton();
-        translXLabel = new javax.swing.JLabel();
-        rightSmallTranslYButton = new javax.swing.JButton();
-        leftSmallTranslYButton = new javax.swing.JButton();
-        leftSmallTranslZButton = new javax.swing.JButton();
-        rightSmallTranslZButton = new javax.swing.JButton();
-        translYLabel = new javax.swing.JLabel();
-        leftSmallRotaXButton = new javax.swing.JButton();
-        leftSmallRotaYButton = new javax.swing.JButton();
-        leftSmallRotaZButton = new javax.swing.JButton();
-        rightSmallRotaXButton = new javax.swing.JButton();
-        rightSmallRotaYButton = new javax.swing.JButton();
-        rightSmallRotaZButton = new javax.swing.JButton();
-        translZLabel = new javax.swing.JLabel();
-        rotatXLabel = new javax.swing.JLabel();
-        rotatYLabel = new javax.swing.JLabel();
-        rotatZLabel = new javax.swing.JLabel();
-        scaleSmallPlusButton = new javax.swing.JButton();
-        scaleSmallMinusButton = new javax.swing.JButton();
-        highlightsLabel = new javax.swing.JLabel();
-        primaryHighlightsCB = new javax.swing.JCheckBox();
-        secondaryHighlightsCB = new javax.swing.JCheckBox();
-        renderModeLabel = new javax.swing.JLabel();
-        fillLabel = new javax.swing.JLabel();
-        linesLabel = new javax.swing.JLabel();
-        pointsLabel = new javax.swing.JLabel();
-        primaryFillRB = new javax.swing.JRadioButton();
-        secondaryFillRB = new javax.swing.JRadioButton();
-        primaryLinesRB = new javax.swing.JRadioButton();
-        secondaryLinesRB = new javax.swing.JRadioButton();
-        secondaryPointsRB = new javax.swing.JRadioButton();
-        primaryPointsRB = new javax.swing.JRadioButton();
-        transformationLabel = new javax.swing.JLabel();
-        featurePointsLabel = new javax.swing.JLabel();
-
-        setBackground(new java.awt.Color(176, 230, 226));
-        setPreferredSize(new java.awt.Dimension(405, 600));
-
-        primaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
-        primaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryColorPanel.toolTipText")); // NOI18N
-        primaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        primaryColorPanel.setPreferredSize(new java.awt.Dimension(72, 14));
-        primaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                primaryColorPanelMouseClicked(evt);
-            }
-        });
-
-        javax.swing.GroupLayout primaryColorPanelLayout = new javax.swing.GroupLayout(primaryColorPanel);
-        primaryColorPanel.setLayout(primaryColorPanelLayout);
-        primaryColorPanelLayout.setHorizontalGroup(
-            primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 0, Short.MAX_VALUE)
-        );
-        primaryColorPanelLayout.setVerticalGroup(
-            primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 0, Short.MAX_VALUE)
-        );
-
-        secondaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
-        secondaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryColorPanel.toolTipText")); // NOI18N
-        secondaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        secondaryColorPanel.setPreferredSize(new java.awt.Dimension(70, 14));
-        secondaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() {
-            public void mouseClicked(java.awt.event.MouseEvent evt) {
-                secondaryColorPanelMouseClicked(evt);
-            }
-        });
-
-        javax.swing.GroupLayout secondaryColorPanelLayout = new javax.swing.GroupLayout(secondaryColorPanel);
-        secondaryColorPanel.setLayout(secondaryColorPanelLayout);
-        secondaryColorPanelLayout.setHorizontalGroup(
-            secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 0, Short.MAX_VALUE)
-        );
-        secondaryColorPanelLayout.setVerticalGroup(
-            secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 0, Short.MAX_VALUE)
-        );
-
-        transparencySlider.setMajorTickSpacing(5);
-        transparencySlider.setMaximum(20);
-        transparencySlider.setMinorTickSpacing(5);
-        transparencySlider.setOrientation(javax.swing.JSlider.VERTICAL);
-        transparencySlider.setPaintTicks(true);
-        transparencySlider.setSnapToTicks(true);
-        transparencySlider.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencySlider.toolTipText")); // NOI18N
-        transparencySlider.setValue(10);
-        transparencySlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        transparencySlider.setOpaque(false);
-        transparencySlider.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
-                transparencySliderStateChanged(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(secondaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.text")); // NOI18N
-        secondaryLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.toolTipText")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(primaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(colorButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.text")); // NOI18N
-        colorButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.toolTipText")); // NOI18N
-        colorButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        colorButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
-        colorButton.setIconTextGap(0);
-        colorButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        colorButton.setOpaque(false);
-        colorButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                colorButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(transparencyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.text")); // NOI18N
-        transparencyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.toolTipText")); // NOI18N
-        transparencyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        transparencyButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        transparencyButton.setOpaque(false);
-        transparencyButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                transparencyButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(modelLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.modelLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(viewLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.viewLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(frontButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.text")); // NOI18N
-        frontButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.toolTipText")); // NOI18N
-        frontButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        frontButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        frontButton.setOpaque(false);
-        frontButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                frontButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(profileButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.text")); // NOI18N
-        profileButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.toolTipText")); // NOI18N
-        profileButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        profileButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        profileButton.setOpaque(false);
-        profileButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                profileButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(translationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.text")); // NOI18N
-        translationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.toolTipText")); // NOI18N
-        translationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        translationButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        translationButton.setOpaque(false);
-        translationButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                translationButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationXButton.text")); // NOI18N
-        leftTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftTranslationXButton.setOpaque(false);
-        leftTranslationXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftTranslationXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationXButton.text")); // NOI18N
-        rightTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightTranslationXButton.setOpaque(false);
-        rightTranslationXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightTranslationXButtonActionPerformed(evt);
-            }
-        });
-
-        translationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        translationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXFTF.toolTipText")); // NOI18N
-        translationXFTF.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
-        translationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                translationXFTFPropertyChange(evt);
-            }
-        });
-
-        translationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        translationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                translationYFTFPropertyChange(evt);
-            }
-        });
-
-        translationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        translationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                translationZFTFPropertyChange(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rotationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.text")); // NOI18N
-        rotationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.toolTipText")); // NOI18N
-        rotationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rotationButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rotationButton.setOpaque(false);
-        rotationButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rotationButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(scaleButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.text")); // NOI18N
-        scaleButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.toolTipText")); // NOI18N
-        scaleButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        scaleButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        scaleButton.setOpaque(false);
-        scaleButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                scaleButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(applyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.text")); // NOI18N
-        applyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-        applyButton.setOpaque(false);
-        applyButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                applyButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationYButton.text")); // NOI18N
-        leftTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftTranslationYButton.setOpaque(false);
-        leftTranslationYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftTranslationYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationZButton.text")); // NOI18N
-        leftTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftTranslationZButton.setOpaque(false);
-        leftTranslationZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftTranslationZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationYButton.text")); // NOI18N
-        rightTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightTranslationYButton.setOpaque(false);
-        rightTranslationYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightTranslationYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationZButton.text")); // NOI18N
-        rightTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightTranslationZButton.setOpaque(false);
-        rightTranslationZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightTranslationZButtonActionPerformed(evt);
-            }
-        });
-
-        rotationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        rotationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationXFTF.toolTipText")); // NOI18N
-        rotationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                rotationXFTFPropertyChange(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationXButton.text")); // NOI18N
-        leftRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftRotationXButton.setOpaque(false);
-        leftRotationXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftRotationXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationXButton.text")); // NOI18N
-        rightRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightRotationXButton.setOpaque(false);
-        rightRotationXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightRotationXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationYButton.text")); // NOI18N
-        leftRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftRotationYButton.setOpaque(false);
-        leftRotationYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftRotationYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationZButton.text")); // NOI18N
-        leftRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        leftRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftRotationZButton.setOpaque(false);
-        leftRotationZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftRotationZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationYButton.text")); // NOI18N
-        rightRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightRotationYButton.setOpaque(false);
-        rightRotationYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightRotationYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationZButton.text")); // NOI18N
-        rightRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        rightRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightRotationZButton.setOpaque(false);
-        rightRotationZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightRotationZButtonActionPerformed(evt);
-            }
-        });
-
-        rotationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        rotationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                rotationYFTFPropertyChange(evt);
-            }
-        });
-
-        rotationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        rotationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                rotationZFTFPropertyChange(evt);
-            }
-        });
-
-        scaleFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
-        scaleFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleFTF.toolTipText")); // NOI18N
-        scaleFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                scaleFTFPropertyChange(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(scaleMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleMinusButton.text")); // NOI18N
-        scaleMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        scaleMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        scaleMinusButton.setOpaque(false);
-        scaleMinusButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                scaleMinusButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(scalePlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scalePlusButton.text")); // NOI18N
-        scalePlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        scalePlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        scalePlusButton.setMaximumSize(new java.awt.Dimension(13, 23));
-        scalePlusButton.setMinimumSize(new java.awt.Dimension(13, 23));
-        scalePlusButton.setOpaque(false);
-        scalePlusButton.setPreferredSize(new java.awt.Dimension(13, 23));
-        scalePlusButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                scalePlusButtonActionPerformed(evt);
-            }
-        });
-
-        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel1.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(featurePointsButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsButton.text")); // NOI18N
-        featurePointsButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        featurePointsButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                featurePointsButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel2.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel3.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel4.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(resetAllButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.text")); // NOI18N
-        resetAllButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                resetAllButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslXButton.text")); // NOI18N
-        leftSmallTranslXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallTranslXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallTranslXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslXButton.text")); // NOI18N
-        rightSmallTranslXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallTranslXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallTranslXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(translXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translXLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslYButton.text")); // NOI18N
-        rightSmallTranslYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallTranslYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallTranslYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslYButton.text")); // NOI18N
-        leftSmallTranslYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallTranslYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallTranslYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslZButton.text")); // NOI18N
-        leftSmallTranslZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallTranslZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallTranslZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslZButton.text")); // NOI18N
-        rightSmallTranslZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallTranslZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallTranslZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(translYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translYLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaXButton.text")); // NOI18N
-        leftSmallRotaXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallRotaXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallRotaXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaYButton.text")); // NOI18N
-        leftSmallRotaYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallRotaYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallRotaYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaZButton.text")); // NOI18N
-        leftSmallRotaZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        leftSmallRotaZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                leftSmallRotaZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaXButton.text")); // NOI18N
-        rightSmallRotaXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallRotaXButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallRotaXButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaYButton.text")); // NOI18N
-        rightSmallRotaYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallRotaYButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallRotaYButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaZButton.text")); // NOI18N
-        rightSmallRotaZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        rightSmallRotaZButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                rightSmallRotaZButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(translZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translZLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(rotatXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatXLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(rotatYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatYLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(rotatZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatZLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(scaleSmallPlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleSmallPlusButton.text")); // NOI18N
-        scaleSmallPlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        scaleSmallPlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        scaleSmallPlusButton.setMaximumSize(new java.awt.Dimension(13, 23));
-        scaleSmallPlusButton.setMinimumSize(new java.awt.Dimension(13, 23));
-        scaleSmallPlusButton.setOpaque(false);
-        scaleSmallPlusButton.setPreferredSize(new java.awt.Dimension(13, 23));
-        scaleSmallPlusButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                scaleSmallPlusButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(scaleSmallMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleSmallMinusButton.text")); // NOI18N
-        scaleSmallMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        scaleSmallMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
-        scaleSmallMinusButton.setOpaque(false);
-        scaleSmallMinusButton.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                scaleSmallMinusButtonActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(highlightsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highlightsLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(primaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryHighlightsCB.text")); // NOI18N
-        primaryHighlightsCB.setOpaque(false);
-        primaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                primaryHighlightsCBActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(secondaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryHighlightsCB.text")); // NOI18N
-        secondaryHighlightsCB.setOpaque(false);
-        secondaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                secondaryHighlightsCBActionPerformed(evt);
-            }
-        });
-
-        org.openide.awt.Mnemonics.setLocalizedText(renderModeLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.renderModeLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(fillLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.fillLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(linesLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.linesLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(pointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.pointsLabel.text")); // NOI18N
-
-        primaryRenderModeGroup.add(primaryFillRB);
-        org.openide.awt.Mnemonics.setLocalizedText(primaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryFillRB.text")); // NOI18N
-        primaryFillRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        primaryFillRB.setOpaque(false);
-        primaryFillRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                primaryFillRBActionPerformed(evt);
-            }
-        });
-
-        secondaryRenerModeGroup.add(secondaryFillRB);
-        org.openide.awt.Mnemonics.setLocalizedText(secondaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryFillRB.text")); // NOI18N
-        secondaryFillRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        secondaryFillRB.setOpaque(false);
-        secondaryFillRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                secondaryFillRBActionPerformed(evt);
-            }
-        });
-
-        primaryRenderModeGroup.add(primaryLinesRB);
-        org.openide.awt.Mnemonics.setLocalizedText(primaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLinesRB.text")); // NOI18N
-        primaryLinesRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        primaryLinesRB.setOpaque(false);
-        primaryLinesRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                primaryLinesRBActionPerformed(evt);
-            }
-        });
-
-        secondaryRenerModeGroup.add(secondaryLinesRB);
-        org.openide.awt.Mnemonics.setLocalizedText(secondaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLinesRB.text")); // NOI18N
-        secondaryLinesRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        secondaryLinesRB.setOpaque(false);
-        secondaryLinesRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                secondaryLinesRBActionPerformed(evt);
-            }
-        });
-
-        secondaryRenerModeGroup.add(secondaryPointsRB);
-        org.openide.awt.Mnemonics.setLocalizedText(secondaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryPointsRB.text")); // NOI18N
-        secondaryPointsRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        secondaryPointsRB.setOpaque(false);
-        secondaryPointsRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                secondaryPointsRBActionPerformed(evt);
-            }
-        });
-
-        primaryRenderModeGroup.add(primaryPointsRB);
-        org.openide.awt.Mnemonics.setLocalizedText(primaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryPointsRB.text")); // NOI18N
-        primaryPointsRB.setMargin(new java.awt.Insets(0, 0, 0, 0));
-        primaryPointsRB.setOpaque(false);
-        primaryPointsRB.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                primaryPointsRBActionPerformed(evt);
-            }
-        });
-
-        transformationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
-        org.openide.awt.Mnemonics.setLocalizedText(transformationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transformationLabel.text")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(featurePointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsLabel.text")); // NOI18N
-
-        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
-        this.setLayout(layout);
-        layout.setHorizontalGroup(
-            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(layout.createSequentialGroup()
-                .addContainerGap()
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(jSeparator5)
-                    .addComponent(jSeparator7)
-                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                        .addGap(0, 0, Short.MAX_VALUE)
-                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addGroup(layout.createSequentialGroup()
-                                        .addGap(82, 82, 82)
-                                        .addComponent(leftRotationXButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftSmallRotaXButton)
-                                        .addGap(1, 1, 1)
-                                        .addComponent(rightSmallRotaXButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(rightRotationXButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftRotationYButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftSmallRotaYButton)
-                                        .addGap(1, 1, 1)
-                                        .addComponent(rightSmallRotaYButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(rightRotationYButton))
-                                    .addGroup(layout.createSequentialGroup()
-                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                            .addComponent(jLabel3)
-                                            .addComponent(rotationButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                        .addGap(23, 23, 23)
-                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                            .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                            .addComponent(rotatXLabel))
-                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                            .addGroup(layout.createSequentialGroup()
-                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                                .addComponent(rotationYFTF))
-                                            .addGroup(layout.createSequentialGroup()
-                                                .addGap(6, 6, 6)
-                                                .addComponent(rotatYLabel)
-                                                .addGap(0, 0, Short.MAX_VALUE)))))
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addGroup(layout.createSequentialGroup()
-                                        .addComponent(leftRotationZButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftSmallRotaZButton)
-                                        .addGap(1, 1, 1)
-                                        .addComponent(rightSmallRotaZButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(rightRotationZButton))
-                                    .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                    .addComponent(rotatZLabel)))
-                            .addGroup(layout.createSequentialGroup()
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                    .addComponent(translationButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addGap(23, 23, 23)
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
-                                        .addComponent(translationXFTF, javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
-                                            .addComponent(leftTranslationXButton)
-                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                            .addComponent(leftSmallTranslXButton)
-                                            .addGap(1, 1, 1)
-                                            .addComponent(rightSmallTranslXButton)
-                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                            .addComponent(rightTranslationXButton)))
-                                    .addComponent(translXLabel))
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addComponent(translYLabel)
-                                    .addGroup(layout.createSequentialGroup()
-                                        .addComponent(leftTranslationYButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftSmallTranslYButton)
-                                        .addGap(1, 1, 1)
-                                        .addComponent(rightSmallTranslYButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(rightTranslationYButton))
-                                    .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addGroup(layout.createSequentialGroup()
-                                        .addComponent(leftTranslationZButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(leftSmallTranslZButton)
-                                        .addGap(1, 1, 1)
-                                        .addComponent(rightSmallTranslZButton)
-                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                        .addComponent(rightTranslationZButton))
-                                    .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                    .addComponent(translZLabel)))
-                            .addComponent(jLabel4)
-                            .addGroup(layout.createSequentialGroup()
-                                .addComponent(scaleButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGap(23, 23, 23)
-                                .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(scaleSmallMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(scaleSmallPlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))))
-                    .addGroup(layout.createSequentialGroup()
-                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                            .addGroup(layout.createSequentialGroup()
-                                .addComponent(resetAllButton)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(applyButton))
-                            .addComponent(jSeparator6)
-                            .addComponent(jSeparator2)
-                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addComponent(jLabel1)
-                                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 385, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addGroup(layout.createSequentialGroup()
-                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(secondaryLabel)
-                                        .addComponent(primaryLabel)
-                                        .addComponent(modelLabel))
-                                    .addGap(18, 18, 18)
-                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                        .addComponent(secondaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)
-                                        .addComponent(primaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)
-                                        .addComponent(colorButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE))
-                                    .addGap(18, 18, 18)
-                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addComponent(highlightsLabel)
-                                        .addGroup(layout.createSequentialGroup()
-                                            .addGap(10, 10, 10)
-                                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                                .addComponent(primaryHighlightsCB)
-                                                .addComponent(secondaryHighlightsCB))))
-                                    .addGap(18, 18, 18)
-                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                        .addGroup(layout.createSequentialGroup()
-                                            .addComponent(fillLabel)
-                                            .addGap(18, 18, 18)
-                                            .addComponent(linesLabel)
-                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                            .addComponent(pointsLabel))
-                                        .addGroup(layout.createSequentialGroup()
-                                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                                .addGroup(layout.createSequentialGroup()
-                                                    .addComponent(secondaryFillRB)
-                                                    .addGap(18, 18, 18)
-                                                    .addComponent(secondaryLinesRB)
-                                                    .addGap(18, 18, 18)
-                                                    .addComponent(secondaryPointsRB))
-                                                .addGroup(layout.createSequentialGroup()
-                                                    .addComponent(primaryFillRB)
-                                                    .addGap(18, 18, 18)
-                                                    .addComponent(primaryLinesRB)
-                                                    .addGap(18, 18, 18)
-                                                    .addComponent(primaryPointsRB))
-                                                .addGroup(layout.createSequentialGroup()
-                                                    .addGap(14, 14, 14)
-                                                    .addComponent(renderModeLabel)))
-                                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                                .addGroup(layout.createSequentialGroup()
-                                                    .addGap(25, 25, 25)
-                                                    .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                                .addGroup(layout.createSequentialGroup()
-                                                    .addGap(17, 17, 17)
-                                                    .addComponent(transparencyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))))))
-                                .addGroup(layout.createSequentialGroup()
-                                    .addComponent(featurePointsLabel)
-                                    .addGap(18, 18, 18)
-                                    .addComponent(featurePointsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
-                                .addGroup(layout.createSequentialGroup()
-                                    .addComponent(viewLabel)
-                                    .addGap(18, 18, 18)
-                                    .addComponent(frontButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                    .addGap(18, 18, 18)
-                                    .addComponent(profileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                            .addComponent(transformationLabel))
-                        .addGap(0, 0, Short.MAX_VALUE)))
-                .addContainerGap())
-        );
-        layout.setVerticalGroup(
-            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(layout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(jLabel1)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(highlightsLabel)
-                    .addComponent(renderModeLabel)
-                    .addComponent(modelLabel)
-                    .addComponent(colorButton)
-                    .addComponent(transparencyButton))
-                .addGap(4, 4, 4)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(fillLabel)
-                    .addComponent(linesLabel)
-                    .addComponent(pointsLabel))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
-                        .addGroup(layout.createSequentialGroup()
-                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addComponent(secondaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                    .addComponent(primaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                                .addComponent(primaryHighlightsCB)
-                                .addComponent(primaryFillRB))
-                            .addGap(11, 11, 11)
-                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                                    .addComponent(primaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                    .addComponent(secondaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                                .addComponent(secondaryHighlightsCB, javax.swing.GroupLayout.Alignment.TRAILING)
-                                .addComponent(secondaryFillRB, javax.swing.GroupLayout.Alignment.TRAILING)))
-                        .addGroup(layout.createSequentialGroup()
-                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addComponent(primaryLinesRB)
-                                .addComponent(primaryPointsRB))
-                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                .addComponent(secondaryLinesRB, javax.swing.GroupLayout.Alignment.TRAILING)
-                                .addComponent(secondaryPointsRB, javax.swing.GroupLayout.Alignment.TRAILING))))
-                    .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 8, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(viewLabel)
-                    .addComponent(profileButton)
-                    .addComponent(frontButton))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(featurePointsLabel)
-                    .addComponent(featurePointsButton))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(transformationLabel)
-                .addGap(18, 18, 18)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(jLabel2)
-                    .addComponent(translXLabel)
-                    .addComponent(translYLabel)
-                    .addComponent(translZLabel))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(leftTranslationXButton)
-                    .addComponent(leftSmallTranslXButton)
-                    .addComponent(rightSmallTranslXButton)
-                    .addComponent(rightTranslationXButton)
-                    .addComponent(leftTranslationYButton)
-                    .addComponent(rightTranslationYButton)
-                    .addComponent(rightSmallTranslYButton)
-                    .addComponent(leftSmallTranslYButton)
-                    .addComponent(leftSmallTranslZButton)
-                    .addComponent(rightSmallTranslZButton)
-                    .addComponent(leftTranslationZButton)
-                    .addComponent(rightTranslationZButton))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(translationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(translationButton)
-                    .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addGap(18, 18, 18)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(jLabel3)
-                    .addComponent(rotatXLabel)
-                    .addComponent(rotatYLabel)
-                    .addComponent(rotatZLabel))
-                .addGap(11, 11, 11)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(leftSmallRotaXButton)
-                    .addComponent(rightSmallRotaXButton)
-                    .addComponent(leftRotationXButton)
-                    .addComponent(rightRotationXButton)
-                    .addComponent(leftRotationYButton)
-                    .addComponent(leftSmallRotaYButton)
-                    .addComponent(rightSmallRotaYButton)
-                    .addComponent(rightRotationYButton)
-                    .addComponent(leftRotationZButton)
-                    .addComponent(leftSmallRotaZButton)
-                    .addComponent(rightSmallRotaZButton)
-                    .addComponent(rightRotationZButton))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(rotationButton)
-                    .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addGap(18, 18, 18)
-                .addComponent(jLabel4)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(scaleButton)
-                    .addComponent(scaleMinusButton)
-                    .addComponent(scaleSmallMinusButton)
-                    .addComponent(scaleSmallPlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(resetAllButton)
-                    .addComponent(applyButton))
-                .addContainerGap(41, Short.MAX_VALUE))
-        );
-    }// </editor-fold>//GEN-END:initComponents
-
-    private void primaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_primaryColorPanelMouseClicked
-        Color current = primaryColorPanel.getBackground();
-        Color newColor = JColorChooser.showDialog(null, "Choose a color", current);
-        primaryColorPanel.setBackground(newColor);
-        listener.setPrimaryColor(newColor);
-    }//GEN-LAST:event_primaryColorPanelMouseClicked
-
-    private void secondaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_secondaryColorPanelMouseClicked
-        Color current = secondaryColorPanel.getBackground();
-        Color newColor = JColorChooser.showDialog(null, "Choose a color", current);
-        secondaryColorPanel.setBackground(newColor);
-        listener.setSecondaryColor(newColor);
-    }//GEN-LAST:event_secondaryColorPanelMouseClicked
-
-    private void transparencyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_transparencyButtonActionPerformed
-        listener.setTransparency(10);
-        transparencySlider.setValue(10);
-        transparencySlider.repaint();
-    }//GEN-LAST:event_transparencyButtonActionPerformed
-
-    private void transparencySliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySliderStateChanged
-        listener.setTransparency(transparencySlider.getValue());
-    }//GEN-LAST:event_transparencySliderStateChanged
-
-    private void frontButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_frontButtonActionPerformed
-        listener.setFrontFacing();
-    }//GEN-LAST:event_frontButtonActionPerformed
-
-    private void profileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_profileButtonActionPerformed
-        listener.setSideFacing();
-    }//GEN-LAST:event_profileButtonActionPerformed
-
-    private void translationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translationButtonActionPerformed
-        translationXFTF.setValue(0);
-        translationYFTF.setValue(0);
-        translationZFTF.setValue(0);
-        listener.resetTranslation();
-    }//GEN-LAST:event_translationButtonActionPerformed
-
-    private void rotationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotationButtonActionPerformed
-        rotationXFTF.setValue(0);
-        rotationYFTF.setValue(0);
-        rotationZFTF.setValue(0);
-        listener.resetRotation();
-    }//GEN-LAST:event_rotationButtonActionPerformed
-
-    private void scaleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleButtonActionPerformed
-        scaleFTF.setValue(0);
-        listener.resetScale();
-    }//GEN-LAST:event_scaleButtonActionPerformed
-
-    private void leftTranslationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationXButtonActionPerformed
-        double newValue = ((Number)translationXFTF.getValue()).doubleValue() - 1;
-        translationXFTF.setValue(newValue);
-    }//GEN-LAST:event_leftTranslationXButtonActionPerformed
-
-    private void resetAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetAllButtonActionPerformed
-        colorButtonActionPerformed(evt);
-        transparencyButtonActionPerformed(evt);
-        translationButtonActionPerformed(evt);
-        rotationButtonActionPerformed(evt);
-        scaleButtonActionPerformed(evt);
-    }//GEN-LAST:event_resetAllButtonActionPerformed
-
-    private void rightTranslationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationXButtonActionPerformed
-        double newValue = ((Number)translationXFTF.getValue()).doubleValue() + 1;
-        translationXFTF.setValue(newValue);
-    }//GEN-LAST:event_rightTranslationXButtonActionPerformed
-
-    private void leftTranslationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationYButtonActionPerformed
-        double newValue = ((Number)translationYFTF.getValue()).doubleValue() - 1;
-        translationYFTF.setValue(newValue);
-    }//GEN-LAST:event_leftTranslationYButtonActionPerformed
-
-    private void rightTranslationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationYButtonActionPerformed
-        double newValue = ((Number)translationYFTF.getValue()).doubleValue() + 1;
-        translationYFTF.setValue(newValue);
-    }//GEN-LAST:event_rightTranslationYButtonActionPerformed
-
-    private void leftTranslationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationZButtonActionPerformed
-        double newValue = ((Number)translationZFTF.getValue()).doubleValue() - 1;
-        translationZFTF.setValue(newValue);
-    }//GEN-LAST:event_leftTranslationZButtonActionPerformed
-
-    private void rightTranslationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationZButtonActionPerformed
-        double newValue = ((Number)translationZFTF.getValue()).doubleValue() + 1;
-        translationZFTF.setValue(newValue);
-    }//GEN-LAST:event_rightTranslationZButtonActionPerformed
-
-    private void leftRotationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationXButtonActionPerformed
-        double newValue = ((Number)rotationXFTF.getValue()).doubleValue() - 1;
-        rotationXFTF.setValue(newValue);
-    }//GEN-LAST:event_leftRotationXButtonActionPerformed
-
-    private void rightRotationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationXButtonActionPerformed
-        double newValue = ((Number)rotationXFTF.getValue()).doubleValue() + 1;
-        rotationXFTF.setValue(newValue);
-    }//GEN-LAST:event_rightRotationXButtonActionPerformed
-
-    private void leftRotationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationYButtonActionPerformed
-        double newValue = ((Number)rotationYFTF.getValue()).doubleValue() - 1;
-        rotationYFTF.setValue(newValue);
-    }//GEN-LAST:event_leftRotationYButtonActionPerformed
-
-    private void rightRotationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationYButtonActionPerformed
-        double newValue = ((Number)rotationYFTF.getValue()).doubleValue() + 1;
-        rotationYFTF.setValue(newValue);
-    }//GEN-LAST:event_rightRotationYButtonActionPerformed
-
-    private void leftRotationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationZButtonActionPerformed
-        double newValue = ((Number)rotationZFTF.getValue()).doubleValue() - 1;
-        rotationZFTF.setValue(newValue);
-    }//GEN-LAST:event_leftRotationZButtonActionPerformed
-
-    private void rightRotationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationZButtonActionPerformed
-        double newValue = ((Number)rotationZFTF.getValue()).doubleValue() + 1;
-        rotationZFTF.setValue(newValue);
-    }//GEN-LAST:event_rightRotationZButtonActionPerformed
-
-    private void scaleMinusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleMinusButtonActionPerformed
-        double newValue = ((Number)scaleFTF.getValue()).doubleValue() - 1;
-        scaleFTF.setValue(newValue);
-    }//GEN-LAST:event_scaleMinusButtonActionPerformed
-
-    private void scalePlusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scalePlusButtonActionPerformed
-        double newValue = ((Number)scaleFTF.getValue()).doubleValue() + 1;
-        scaleFTF.setValue(newValue);
-    }//GEN-LAST:event_scalePlusButtonActionPerformed
-
-    private void translationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationXFTFPropertyChange
-        double value = ((Number)translationXFTF.getValue()).doubleValue();
-        listener.setXTranslation(value);
-    }//GEN-LAST:event_translationXFTFPropertyChange
-
-    private void translationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationYFTFPropertyChange
-        double value = ((Number)translationYFTF.getValue()).doubleValue();
-        listener.setYTranslation(value);
-    }//GEN-LAST:event_translationYFTFPropertyChange
-
-    private void translationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationZFTFPropertyChange
-        double value = ((Number)translationZFTF.getValue()).doubleValue();
-        listener.setZTranslation(value);
-    }//GEN-LAST:event_translationZFTFPropertyChange
-
-    private void rotationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationXFTFPropertyChange
-        double value = ((Number)rotationXFTF.getValue()).doubleValue();
-        listener.setXRotation(value);
-    }//GEN-LAST:event_rotationXFTFPropertyChange
-
-    private void rotationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationYFTFPropertyChange
-        double value = ((Number)rotationYFTF.getValue()).doubleValue();
-        listener.setYRotation(value);
-    }//GEN-LAST:event_rotationYFTFPropertyChange
-
-    private void rotationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationZFTFPropertyChange
-        double value = ((Number)rotationZFTF.getValue()).doubleValue();
-        listener.setZRotation(value);
-    }//GEN-LAST:event_rotationZFTFPropertyChange
-
-    private void scaleFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_scaleFTFPropertyChange
-        double value = ((Number)scaleFTF.getValue()).doubleValue();
-        listener.setScale(value);
-    }//GEN-LAST:event_scaleFTFPropertyChange
-
-    private void scaleSmallPlusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleSmallPlusButtonActionPerformed
-        double newValue = ((Number)scaleFTF.getValue()).doubleValue() + 0.1;
-        scaleFTF.setValue(newValue);
-    }//GEN-LAST:event_scaleSmallPlusButtonActionPerformed
-
-    private void scaleSmallMinusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleSmallMinusButtonActionPerformed
-        double newValue = ((Number)scaleFTF.getValue()).doubleValue() - 0.1;
-        scaleFTF.setValue(newValue);
-    }//GEN-LAST:event_scaleSmallMinusButtonActionPerformed
-
-    private void leftSmallTranslXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslXButtonActionPerformed
-        double newValue = ((Number)translationXFTF.getValue()).doubleValue() - 0.1;
-        translationXFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallTranslXButtonActionPerformed
-
-    private void rightSmallTranslXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslXButtonActionPerformed
-        double newValue = ((Number)translationXFTF.getValue()).doubleValue() + 0.1;
-        translationXFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallTranslXButtonActionPerformed
-
-    private void leftSmallTranslYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslYButtonActionPerformed
-        double newValue = ((Number)translationYFTF.getValue()).doubleValue() - 0.1;
-        translationYFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallTranslYButtonActionPerformed
-
-    private void rightSmallTranslYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslYButtonActionPerformed
-        double newValue = ((Number)translationYFTF.getValue()).doubleValue() + 0.1;
-        translationYFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallTranslYButtonActionPerformed
-
-    private void leftSmallTranslZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslZButtonActionPerformed
-        double newValue = ((Number)translationZFTF.getValue()).doubleValue() - 0.1;
-        translationZFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallTranslZButtonActionPerformed
-
-    private void rightSmallTranslZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslZButtonActionPerformed
-        double newValue = ((Number)translationZFTF.getValue()).doubleValue() + 0.1;
-        translationZFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallTranslZButtonActionPerformed
-
-    private void leftSmallRotaXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaXButtonActionPerformed
-        double newValue = ((Number)rotationXFTF.getValue()).doubleValue() - 0.1;
-        rotationXFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallRotaXButtonActionPerformed
-
-    private void rightSmallRotaXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaXButtonActionPerformed
-        double newValue = ((Number)rotationXFTF.getValue()).doubleValue() + 0.1;
-        rotationXFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallRotaXButtonActionPerformed
-
-    private void leftSmallRotaYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaYButtonActionPerformed
-        double newValue = ((Number)rotationYFTF.getValue()).doubleValue() - 0.1;
-        rotationYFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallRotaYButtonActionPerformed
-
-    private void rightSmallRotaYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaYButtonActionPerformed
-        double newValue = ((Number)rotationYFTF.getValue()).doubleValue() + 0.1;
-        rotationYFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallRotaYButtonActionPerformed
-
-    private void leftSmallRotaZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaZButtonActionPerformed
-        double newValue = ((Number)rotationZFTF.getValue()).doubleValue() - 0.1;
-        rotationZFTF.setValue(newValue);
-    }//GEN-LAST:event_leftSmallRotaZButtonActionPerformed
-
-    private void rightSmallRotaZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaZButtonActionPerformed
-        double newValue = ((Number)rotationZFTF.getValue()).doubleValue() + 0.1;
-        rotationZFTF.setValue(newValue);
-    }//GEN-LAST:event_rightSmallRotaZButtonActionPerformed
-
-    private void primaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryHighlightsCBActionPerformed
-        if (primaryHighlightsCB.isSelected())
-            listener.setPrimaryHighlights();
-        else
-            listener.removePrimaryHighlights();
-    }//GEN-LAST:event_primaryHighlightsCBActionPerformed
-
-    private void secondaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryHighlightsCBActionPerformed
-        if (secondaryHighlightsCB.isSelected())
-            listener.setSecondaryHighlights();
-        else
-            listener.removeSecondaryHighlights();
-    }//GEN-LAST:event_secondaryHighlightsCBActionPerformed
-
-    private void primaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryFillRBActionPerformed
-        listener.setPrimaryFill();
-    }//GEN-LAST:event_primaryFillRBActionPerformed
-
-    private void primaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryLinesRBActionPerformed
-        listener.setPrimaryLines();
-    }//GEN-LAST:event_primaryLinesRBActionPerformed
-
-    private void primaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryPointsRBActionPerformed
-        listener.setPrimaryPoints();
-    }//GEN-LAST:event_primaryPointsRBActionPerformed
-
-    private void secondaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryFillRBActionPerformed
-        listener.setSecondaryFill();
-    }//GEN-LAST:event_secondaryFillRBActionPerformed
-
-    private void secondaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryLinesRBActionPerformed
-        listener.setSecondaryLines();
-    }//GEN-LAST:event_secondaryLinesRBActionPerformed
-
-    private void secondaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryPointsRBActionPerformed
-        listener.setSecondaryPoints();
-    }//GEN-LAST:event_secondaryPointsRBActionPerformed
-
-    private void colorButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorButtonActionPerformed
-        primaryColorPanel.setBackground(listener.getDefaultPrimaryColor());
-        secondaryColorPanel.setBackground(listener.getDefaultSecondaryColor());
-        listener.setDeafultColor();
-    }//GEN-LAST:event_colorButtonActionPerformed
-
-    private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_applyButtonActionPerformed
-        listener.transformFace();
-        resetAllButtonActionPerformed(evt);
-    }//GEN-LAST:event_applyButtonActionPerformed
-
-    private void featurePointsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_featurePointsButtonActionPerformed
-        if (listener.isFeaturePointsActive()) {
-            listener.setFeaturePointsActive(false);
-            featurePointsButton.setText("show");
-        } else {
-            listener.setFeaturePointsActive(true);
-            featurePointsButton.setText("hide");
-        }
-    }//GEN-LAST:event_featurePointsButtonActionPerformed
-
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JButton applyButton;
-    private javax.swing.JButton colorButton;
-    private javax.swing.JToggleButton featurePointsButton;
-    private javax.swing.JLabel featurePointsLabel;
-    private javax.swing.JLabel fillLabel;
-    private javax.swing.JButton frontButton;
-    private javax.swing.JLabel highlightsLabel;
-    private javax.swing.JLabel jLabel1;
-    private javax.swing.JLabel jLabel2;
-    private javax.swing.JLabel jLabel3;
-    private javax.swing.JLabel jLabel4;
-    private javax.swing.JSeparator jSeparator1;
-    private javax.swing.JSeparator jSeparator2;
-    private javax.swing.JSeparator jSeparator5;
-    private javax.swing.JSeparator jSeparator6;
-    private javax.swing.JSeparator jSeparator7;
-    private javax.swing.JButton leftRotationXButton;
-    private javax.swing.JButton leftRotationYButton;
-    private javax.swing.JButton leftRotationZButton;
-    private javax.swing.JButton leftSmallRotaXButton;
-    private javax.swing.JButton leftSmallRotaYButton;
-    private javax.swing.JButton leftSmallRotaZButton;
-    private javax.swing.JButton leftSmallTranslXButton;
-    private javax.swing.JButton leftSmallTranslYButton;
-    private javax.swing.JButton leftSmallTranslZButton;
-    private javax.swing.JButton leftTranslationXButton;
-    private javax.swing.JButton leftTranslationYButton;
-    private javax.swing.JButton leftTranslationZButton;
-    private javax.swing.JLabel linesLabel;
-    private javax.swing.JLabel modelLabel;
-    private javax.swing.JLabel pointsLabel;
-    private javax.swing.JPanel primaryColorPanel;
-    private javax.swing.JRadioButton primaryFillRB;
-    private javax.swing.JCheckBox primaryHighlightsCB;
-    private javax.swing.JLabel primaryLabel;
-    private javax.swing.JRadioButton primaryLinesRB;
-    private javax.swing.JRadioButton primaryPointsRB;
-    private javax.swing.ButtonGroup primaryRenderModeGroup;
-    private javax.swing.JButton profileButton;
-    private javax.swing.JLabel renderModeLabel;
-    private javax.swing.JButton resetAllButton;
-    private javax.swing.JButton rightRotationXButton;
-    private javax.swing.JButton rightRotationYButton;
-    private javax.swing.JButton rightRotationZButton;
-    private javax.swing.JButton rightSmallRotaXButton;
-    private javax.swing.JButton rightSmallRotaYButton;
-    private javax.swing.JButton rightSmallRotaZButton;
-    private javax.swing.JButton rightSmallTranslXButton;
-    private javax.swing.JButton rightSmallTranslYButton;
-    private javax.swing.JButton rightSmallTranslZButton;
-    private javax.swing.JButton rightTranslationXButton;
-    private javax.swing.JButton rightTranslationYButton;
-    private javax.swing.JButton rightTranslationZButton;
-    private javax.swing.JLabel rotatXLabel;
-    private javax.swing.JLabel rotatYLabel;
-    private javax.swing.JLabel rotatZLabel;
-    private javax.swing.JButton rotationButton;
-    private javax.swing.JFormattedTextField rotationXFTF;
-    private javax.swing.JFormattedTextField rotationYFTF;
-    private javax.swing.JFormattedTextField rotationZFTF;
-    private javax.swing.JButton scaleButton;
-    private javax.swing.JFormattedTextField scaleFTF;
-    private javax.swing.JButton scaleMinusButton;
-    private javax.swing.JButton scalePlusButton;
-    private javax.swing.JButton scaleSmallMinusButton;
-    private javax.swing.JButton scaleSmallPlusButton;
-    private javax.swing.JPanel secondaryColorPanel;
-    private javax.swing.JRadioButton secondaryFillRB;
-    private javax.swing.JCheckBox secondaryHighlightsCB;
-    private javax.swing.JLabel secondaryLabel;
-    private javax.swing.JRadioButton secondaryLinesRB;
-    private javax.swing.JRadioButton secondaryPointsRB;
-    private javax.swing.ButtonGroup secondaryRenerModeGroup;
-    private javax.swing.JLabel transformationLabel;
-    private javax.swing.JLabel translXLabel;
-    private javax.swing.JLabel translYLabel;
-    private javax.swing.JLabel translZLabel;
-    private javax.swing.JButton translationButton;
-    private javax.swing.JFormattedTextField translationXFTF;
-    private javax.swing.JFormattedTextField translationYFTF;
-    private javax.swing.JFormattedTextField translationZFTF;
-    private javax.swing.JButton transparencyButton;
-    private javax.swing.JSlider transparencySlider;
-    private javax.swing.JLabel viewLabel;
-    // End of variables declaration//GEN-END:variables
-}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ca7f89cbfe2b5fab7f83215e55ba7e6a7832a69
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java
@@ -0,0 +1,78 @@
+package cz.fidentis.analyst.registration;
+
+import cz.fidentis.analyst.gui.canvas.Direction;
+import com.jogamp.opengl.util.FPSAnimator;
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * Animator used to animate transformations of model.
+ * Based on {@link cz.fidentis.analyst.gui.canvas.RotationAnimator}.
+ * 
+ * @author Richard Pajersky
+ */
+public class ModelRotationAnimator {
+    
+    /**
+     * Frequency of the rotation or zoom animations
+     */
+    private static final int FPS = 60; 
+    
+    /**
+     * Animator used when the rotation or zoom buttons are pressed and held
+     */
+    private final FPSAnimator animator;
+    
+    /*
+     * Animation timer
+     */
+    private long startClickTime = 0;
+    private TimerTask task;
+    private Timer timer;
+    
+    private Direction direction = Direction.NONE;
+    
+    /**
+     * Constructor.
+     */
+    public ModelRotationAnimator() {
+        this.animator = new FPSAnimator(FPS, true);
+    }
+    
+    /**
+     * Starts model animation
+     * @param dir Transform direction
+     * @param panel Panel
+     */
+    public void startModelAnimation(Direction dir, PostRegistrationCP panel) {
+        if (this.direction != Direction.NONE) {
+            throw new UnsupportedOperationException(); // this should no happen
+        }
+        
+        animator.start();
+        timer = new Timer();
+        startClickTime = System.currentTimeMillis();
+        task = new TimerTask() {
+            @Override
+            public void run() {
+                panel.transform(dir);
+            }
+        };
+        timer.schedule(task, 500, 100);
+        
+        this.direction = dir;        
+    }
+    
+    /**
+     * Stops the animation.
+     */
+    public void stopModelAnimation(PostRegistrationCP panel) {
+        timer.cancel();
+        if ((System.currentTimeMillis() - startClickTime) < 500) {
+                panel.transform(direction);
+        }
+        startClickTime = 0;
+        animator.stop();
+        this.direction = Direction.NONE;
+    }    
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form
new file mode 100644
index 0000000000000000000000000000000000000000..28e193c2a3f5c80f2526c86d2868a89de4d1e7a5
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form
@@ -0,0 +1,2067 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <NonVisualComponents>
+    <Component class="javax.swing.ButtonGroup" name="primaryRenderModeGroup">
+    </Component>
+    <Component class="javax.swing.ButtonGroup" name="secondaryRenerModeGroup">
+    </Component>
+    <Component class="javax.swing.ButtonGroup" name="precisionGroup">
+    </Component>
+  </NonVisualComponents>
+  <Properties>
+    <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+      <Color blue="e2" green="e6" red="b0" type="rgb"/>
+    </Property>
+    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[400, 630]"/>
+    </Property>
+  </Properties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Component id="jSeparator11" alignment="0" max="32767" attributes="0"/>
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="registrationAdjustmentLabel" min="-2" max="-2" attributes="0"/>
+          </Group>
+          <Component id="transformationPanel" alignment="0" min="-2" max="-2" attributes="0"/>
+          <Component id="visualizationPanel" alignment="0" min="-2" pref="387" max="-2" attributes="0"/>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="registrationAdjustmentLabel" min="-2" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jSeparator11" min="-2" pref="10" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="visualizationPanel" min="-2" pref="247" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
+              <Component id="transformationPanel" min="-2" pref="333" max="-2" attributes="0"/>
+              <EmptySpace max="32767" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="registrationAdjustmentLabel">
+      <Properties>
+        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+          <Font name="Tahoma" size="14" style="1"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.registrationAdjustmentLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator11">
+    </Component>
+    <Container class="javax.swing.JPanel" name="visualizationPanel">
+      <Properties>
+        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+          <Color blue="e2" green="e6" red="b0" type="rgb"/>
+        </Property>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                      <Component id="jSeparator1" max="32767" attributes="0"/>
+                      <Component id="jSeparator4" alignment="0" max="32767" attributes="0"/>
+                      <Component id="jSeparator8" alignment="0" max="32767" attributes="0"/>
+                      <Component id="visualizationLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                      <Component id="modelPanel" alignment="0" min="-2" max="-2" attributes="0"/>
+                      <Component id="featurePointsPanel" alignment="0" min="-2" max="-2" attributes="0"/>
+                      <Component id="viewPanel" alignment="0" max="32767" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="32767" attributes="0"/>
+              </Group>
+              <Component id="jSeparator3" alignment="0" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="1" attributes="0">
+                  <Component id="visualizationLabel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="32767" attributes="0"/>
+                  <Component id="jSeparator4" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="modelPanel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jSeparator8" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="viewPanel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="featurePointsPanel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jSeparator3" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="19" max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JSeparator" name="jSeparator8">
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator4">
+        </Component>
+        <Component class="javax.swing.JLabel" name="visualizationLabel">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Tahoma" size="12" style="1"/>
+            </Property>
+            <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.visualizationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator1">
+        </Component>
+        <Container class="javax.swing.JPanel" name="modelPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="primaryLabel" alignment="0" min="-2" pref="58" max="-2" attributes="0"/>
+                          <Component id="modelLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="secondaryLabel" alignment="0" max="32767" attributes="0"/>
+                      </Group>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <Component id="colorButton" min="-2" pref="50" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="highlightsLabel" min="-2" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <EmptySpace min="-2" pref="41" max="-2" attributes="0"/>
+                                      <Component id="linesLabel" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                                      <Component id="pointsLabel" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                                      <Component id="renderModeLabel" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace pref="21" max="32767" attributes="0"/>
+                                      <Component id="transparencyButton" min="-2" pref="50" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                          </Group>
+                          <Group type="102" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="primaryColorPanel" min="-2" pref="50" max="-2" attributes="0"/>
+                                  <Component id="secondaryColorPanel" min="-2" pref="50" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace type="separate" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/>
+                                  <Component id="secondaryHighlightsCB" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                                      <Component id="secondaryLinesRB" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                                      <Component id="secondaryPointsRB" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                                      <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                                      <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <Component id="fillLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
+                              <Component id="transparencySlider" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="modelLabel" min="-2" max="-2" attributes="0"/>
+                          <Group type="102" attributes="0">
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="highlightsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="renderModeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="transparencyButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="colorButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="fillLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="linesLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="pointsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                              <Group type="102" alignment="1" attributes="0">
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="primaryLabel" min="-2" max="-2" attributes="0"/>
+                                      <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <EmptySpace min="-2" pref="11" max="-2" attributes="0"/>
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="secondaryLabel" alignment="1" min="-2" max="-2" attributes="0"/>
+                                      <Component id="secondaryHighlightsCB" alignment="1" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                              <Group type="102" alignment="0" attributes="0">
+                                  <Component id="primaryColorPanel" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="32767" attributes="0"/>
+                                  <Component id="secondaryColorPanel" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                              <Group type="102" alignment="1" attributes="0">
+                                  <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="32767" attributes="0"/>
+                                  <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <Group type="102" alignment="1" attributes="0">
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/>
+                                      <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <EmptySpace max="32767" attributes="0"/>
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="secondaryLinesRB" alignment="1" min="-2" max="-2" attributes="0"/>
+                                      <Component id="secondaryPointsRB" alignment="1" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                              <Component id="transparencySlider" min="-2" pref="53" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="modelLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.modelLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="pointsLabel">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.pointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="transparencyButton">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="transparencyButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="linesLabel">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.linesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="colorButton">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.colorButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.colorButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="horizontalTextPosition" type="int" value="0"/>
+                <Property name="iconTextGap" type="int" value="0"/>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="colorButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="fillLabel">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.fillLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="renderModeLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.renderModeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JCheckBox" name="secondaryHighlightsCB">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryHighlightsCBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JCheckBox" name="primaryHighlightsCB">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryHighlightsCBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="highlightsLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highlightsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="primaryLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="secondaryLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JSlider" name="transparencySlider">
+              <Properties>
+                <Property name="majorTickSpacing" type="int" value="5"/>
+                <Property name="maximum" type="int" value="20"/>
+                <Property name="minorTickSpacing" type="int" value="5"/>
+                <Property name="orientation" type="int" value="1"/>
+                <Property name="paintTicks" type="boolean" value="true"/>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencySlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="value" type="int" value="10"/>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Hand Cursor"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySliderStateChanged"/>
+              </Events>
+            </Component>
+            <Container class="javax.swing.JPanel" name="secondaryColorPanel">
+              <Properties>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
+                    <LineBorder/>
+                  </Border>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Hand Cursor"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[70, 14]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="secondaryColorPanelMouseClicked"/>
+              </Events>
+
+              <Layout>
+                <DimensionLayout dim="0">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <EmptySpace min="0" pref="48" max="32767" attributes="0"/>
+                  </Group>
+                </DimensionLayout>
+                <DimensionLayout dim="1">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <EmptySpace min="0" pref="12" max="32767" attributes="0"/>
+                  </Group>
+                </DimensionLayout>
+              </Layout>
+            </Container>
+            <Container class="javax.swing.JPanel" name="primaryColorPanel">
+              <Properties>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
+                    <LineBorder/>
+                  </Border>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Hand Cursor"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[72, 14]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="primaryColorPanelMouseClicked"/>
+              </Events>
+
+              <Layout>
+                <DimensionLayout dim="0">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <EmptySpace min="0" pref="48" max="32767" attributes="0"/>
+                  </Group>
+                </DimensionLayout>
+                <DimensionLayout dim="1">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <EmptySpace min="0" pref="12" max="32767" attributes="0"/>
+                  </Group>
+                </DimensionLayout>
+              </Layout>
+            </Container>
+            <Component class="javax.swing.JRadioButton" name="primaryLinesRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="primaryRenderModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryLinesRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="secondaryFillRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="secondaryRenerModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryFillRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="primaryPointsRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="primaryRenderModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryPointsRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="secondaryPointsRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="secondaryRenerModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryPointsRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="secondaryLinesRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="secondaryRenerModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryLinesRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="primaryFillRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="primaryRenderModeGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryFillRBActionPerformed"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="viewPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="viewLabel" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="frontButton" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="profileButton" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="backfaceButton" min="-2" pref="79" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="viewLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="frontButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="profileButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="backfaceButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JButton" name="profileButton">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.profileButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.profileButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="profileButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="frontButton">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.frontButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.frontButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="frontButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="viewLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.viewLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JToggleButton" name="backfaceButton">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.backfaceButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="backfaceButtonActionPerformed"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="featurePointsPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="featurePointsLabel" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="featurePointsButton" min="-2" pref="43" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="thersholdButton" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="thersholdFTF" min="-2" pref="70" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="thersholdUpButton" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="thresholdDownButton" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="103" alignment="0" groupAlignment="3" attributes="0">
+                      <Component id="featurePointsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="featurePointsButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="thersholdButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="thersholdFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <Component id="thersholdUpButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                  <Component id="thresholdDownButton" min="-2" max="-2" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JToggleButton" name="featurePointsButton">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.featurePointsButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="featurePointsButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="thresholdDownButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/subtract-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thresholdDownButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="enabled" type="boolean" value="false"/>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thresholdDownButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="thersholdUpButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/add-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thersholdUpButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="enabled" type="boolean" value="false"/>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thersholdUpButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="thersholdButton">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thersholdButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="enabled" type="boolean" value="false"/>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thersholdButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="thersholdFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+                <Property name="enabled" type="boolean" value="false"/>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="thersholdFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="featurePointsLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.featurePointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JSeparator" name="jSeparator3">
+        </Component>
+      </SubComponents>
+    </Container>
+    <Container class="javax.swing.JPanel" name="transformationPanel">
+      <Properties>
+        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+          <Color blue="e2" green="e6" red="b0" type="rgb"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[400, 400]"/>
+        </Property>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="rotationPanel" alignment="0" max="32767" attributes="0"/>
+                      <Group type="102" attributes="0">
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Group type="103" alignment="0" groupAlignment="0" max="-2" attributes="0">
+                                  <Component id="transformationLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jSeparator6" alignment="0" pref="371" max="32767" attributes="0"/>
+                                  <Component id="jSeparator2" alignment="0" max="32767" attributes="0"/>
+                              </Group>
+                              <Component id="translationPanel" alignment="0" min="-2" max="-2" attributes="0"/>
+                              <Component id="jSeparator7" alignment="0" min="-2" pref="371" max="-2" attributes="0"/>
+                              <Group type="102" alignment="0" attributes="0">
+                                  <Component id="scalePanel" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Component id="jSeparator9" min="-2" pref="10" max="-2" attributes="0"/>
+                                  <EmptySpace type="separate" max="-2" attributes="0"/>
+                                  <Component id="shiftPanel" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Component id="jSeparator10" min="-2" pref="15" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Group type="103" groupAlignment="0" attributes="0">
+                                      <Component id="resetAllButton" min="-2" pref="83" max="-2" attributes="0"/>
+                                      <Component id="applyButton" min="-2" pref="83" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                          </Group>
+                          <EmptySpace min="0" pref="5" max="32767" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+              <Component id="jSeparator5" alignment="1" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <Component id="transformationLabel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
+                  <Component id="jSeparator2" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
+                  <Component id="translationPanel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jSeparator6" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace max="32767" attributes="0"/>
+                  <Component id="rotationPanel" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jSeparator7" min="-2" pref="10" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Group type="102" alignment="0" attributes="0">
+                          <Group type="103" groupAlignment="1" attributes="0">
+                              <Component id="applyButton" min="-2" pref="27" max="-2" attributes="0"/>
+                              <Component id="jSeparator10" min="-2" pref="62" max="-2" attributes="0"/>
+                          </Group>
+                          <EmptySpace max="32767" attributes="0"/>
+                      </Group>
+                      <Group type="102" attributes="0">
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Group type="102" attributes="0">
+                                  <Component id="scalePanel" max="32767" attributes="0"/>
+                                  <EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
+                              </Group>
+                              <Component id="jSeparator9" min="-2" pref="62" max="-2" attributes="0"/>
+                              <Component id="shiftPanel" min="-2" max="-2" attributes="0"/>
+                              <Component id="resetAllButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <EmptySpace max="32767" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <Component id="jSeparator5" min="-2" pref="10" max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="transformationLabel">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Tahoma" size="12" style="1"/>
+            </Property>
+            <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transformationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator2">
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator6">
+        </Component>
+        <Container class="javax.swing.JPanel" name="translationPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="translationButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace type="separate" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                          <Component id="translXLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="translationXFTF" alignment="0" max="32767" attributes="0"/>
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="rightTranslationXButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="translYLabel" min="-2" max="-2" attributes="0"/>
+                          <Component id="translationYFTF" alignment="0" min="-2" pref="54" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="translationZFTF" alignment="0" min="-2" pref="54" max="-2" attributes="0"/>
+                          <Component id="translZLabel" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace pref="14" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="103" groupAlignment="3" attributes="0">
+                              <Component id="translXLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="translYLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="translZLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                          </Group>
+                          <Group type="102" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/>
+                                  <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/>
+                                  <Group type="103" groupAlignment="1" attributes="0">
+                                      <Group type="102" alignment="1" attributes="0">
+                                          <Group type="103" groupAlignment="0" attributes="0">
+                                              <Component id="rightTranslationXButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                                              <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/>
+                                          </Group>
+                                          <EmptySpace max="-2" attributes="0"/>
+                                          <Group type="103" groupAlignment="3" attributes="0">
+                                              <Component id="translationXFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                                              <Component id="translationYFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                                              <Component id="translationZFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                                          </Group>
+                                      </Group>
+                                      <Component id="translationButton" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                                  <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="32767" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JButton" name="translationButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/restart-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="translationButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel2">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightTranslationXButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationXButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationXButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="translationXFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Text Cursor"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationXFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="leftTranslationYButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationYButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationYButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="translationYFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationYFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightTranslationYButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationYButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationYButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="translXLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="translationZFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationZFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="translZLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="translYLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightTranslationZButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationZButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationZButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="leftTranslationXButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationXButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationXButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="leftTranslationZButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationZButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationZButtonMouseReleased"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="rotationPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <EmptySpace min="-2" pref="48" max="-2" attributes="0"/>
+                              <Component id="rotationButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="jLabel3" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="rotatXLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace max="-2" attributes="0"/>
+                                      <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="rotationXFTF" min="-2" pref="54" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="leftRotationYButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="rotationYFTF" min="-2" pref="54" max="-2" attributes="0"/>
+                          <Component id="rotatYLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                              <Component id="rotatZLabel" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace type="separate" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="rotationZFTF" min="-2" pref="54" max="-2" attributes="0"/>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="leftRotationZButton" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace max="-2" attributes="0"/>
+                                      <Component id="rightRotationZButton" min="-2" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                          </Group>
+                      </Group>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="103" alignment="0" groupAlignment="3" attributes="0">
+                              <Component id="rotatXLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="103" alignment="1" groupAlignment="3" attributes="0">
+                              <Component id="rotatYLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="rotatZLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Component id="rotationButton" min="-2" max="-2" attributes="0"/>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/>
+                                  <Component id="leftRotationYButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/>
+                                  <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/>
+                                  <Component id="leftRotationZButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="rightRotationZButton" alignment="0" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="rotationYFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="rotationXFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="rotationZFTF" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                      </Group>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JButton" name="leftRotationYButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationYButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationYButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="leftRotationXButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationXButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationXButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="rotatZLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="rotatYLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="rotatXLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="rotationButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/restart-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotationButtonActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="rotationZFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationZFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="rotationYFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationYFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightRotationZButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationZButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationZButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightRotationYButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationYButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationYButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="leftRotationZButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-left-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationZButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationZButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="rightRotationXButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/arrow-right-s-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationXButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationXButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="rotationXFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationXFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel3">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="scalePanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="1" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace min="0" pref="42" max="32767" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                              <Component id="scaleButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="scalePlusButton" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="scaleMinusButton" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="scaleFTF" alignment="1" min="-2" pref="54" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
+                      <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="scaleButton" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <Group type="102" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Component id="scaleMinusButton" min="-2" max="-2" attributes="0"/>
+                          <Component id="scalePlusButton" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="scaleFTF" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="jLabel4">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="3"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JButton" name="scalePlusButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/add-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scalePlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scalePlusButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scalePlusButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="scaleMinusButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/subtract-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[24, 24]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scaleMinusButtonMousePressed"/>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scaleMinusButtonMouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JFormattedTextField" name="scaleFTF">
+              <Properties>
+                <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor">
+                  <Format subtype="0" type="0"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="scaleFTFPropertyChange"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JButton" name="scaleButton">
+              <Properties>
+                <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+                  <Image iconType="3" name="/restart-line.png"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+                  <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                    <TitledBorder/>
+                  </Border>
+                </Property>
+                <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+                  <Color id="Default Cursor"/>
+                </Property>
+                <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+                  <Insets value="[2, 2, 2, 2]"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleButtonActionPerformed"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JButton" name="resetAllButton">
+          <Properties>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+              <Image iconType="3" name="/refresh-line.png"/>
+            </Property>
+            <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.resetAllButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.resetAllButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder/>
+              </Border>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="resetAllButtonActionPerformed"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator7">
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator9">
+          <Properties>
+            <Property name="orientation" type="int" value="1"/>
+          </Properties>
+        </Component>
+        <Container class="javax.swing.JPanel" name="shiftPanel">
+          <Properties>
+            <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+              <Color blue="e2" green="e6" red="b0" type="rgb"/>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="lowShiftRB" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="highShiftRB" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="0" pref="8" max="32767" attributes="0"/>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="shiftLabel" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="shiftLabel" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="lowShiftRB" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="highShiftRB" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="shiftLabel">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Tahoma" size="11" style="1"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.shiftLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.shiftLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="lowShiftRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="precisionGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.lowShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.lowShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="lowShiftRBActionPerformed"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JRadioButton" name="highShiftRB">
+              <Properties>
+                <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+                  <ComponentRef name="precisionGroup"/>
+                </Property>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="highShiftRBActionPerformed"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JSeparator" name="jSeparator10">
+          <Properties>
+            <Property name="orientation" type="int" value="1"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JButton" name="applyButton">
+          <Properties>
+            <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.applyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+            <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+              <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.applyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+            </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder/>
+              </Border>
+            </Property>
+            <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
+              <Color id="Hand Cursor"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="applyButtonActionPerformed"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JSeparator" name="jSeparator5">
+        </Component>
+      </SubComponents>
+    </Container>
+  </SubComponents>
+</Form>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java
new file mode 100644
index 0000000000000000000000000000000000000000..28531f50fc68bee2aef7791f641b5c00b8ff57b4
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java
@@ -0,0 +1,2084 @@
+package cz.fidentis.analyst.registration;
+
+import cz.fidentis.analyst.gui.canvas.Direction;
+import cz.fidentis.analyst.registration.PostRegistrationListener;
+import cz.fidentis.analyst.registration.ModelRotationAnimator;
+import java.awt.Color;
+import javax.swing.JColorChooser;
+
+/**
+ * Panel used to interactively visualize two face and adjust their registration.
+ * 
+ * @author Richard Pajersky
+ */
+public class PostRegistrationCP extends javax.swing.JPanel {
+
+    /**
+     * Listener which translates executed actions 
+     * into {@link cz.fidentis.analyst.gui.scene.DrawableMesh}
+     */
+    private PostRegistrationListener listener;
+    /**
+     * Animator which animates transformations
+     */
+    private final ModelRotationAnimator animator = new ModelRotationAnimator();
+    
+    /**
+     * Creates new form {@link PostRegistrationPanel}
+     * 
+     * @param listener Listener
+     */
+    public void initPostRegistrationCP(PostRegistrationListener listener) {
+        initComponents();
+        this.listener = listener;
+        setDefaults();
+    }
+    
+    /**
+     * Additional initialization of panel
+     */
+    private void setDefaults() {
+        primaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_PRIMARY_COLOR);
+        secondaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_SECONDARY_COLOR);
+        primaryFillRB.setSelected(true);
+        secondaryFillRB.setSelected(true);
+        lowShiftRB.setSelected(true);
+        thersholdFTF.setValue(listener.getFeaturePointsThreshold());
+        resetAllButtonActionPerformed(null);
+    }
+    
+    /**
+     * Alters transformation based on move amount specified in listener
+     * by updating specific formatted field
+     * 
+     * @param dir Transformation direction
+     * @throws UnsupportedOperationException if {@code dir} is invalid
+     */
+    public void transform(Direction dir) {
+        double newValue;
+        switch (dir) {
+            case TRANSLATE_LEFT:
+                newValue = ((Number)translationXFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                translationXFTF.setValue(newValue);
+                break;
+            case TRANSLATE_RIGHT:
+                newValue = ((Number)translationXFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                translationXFTF.setValue(newValue);
+                break;
+            case TRANSLATE_UP:
+                newValue = ((Number)translationYFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                translationYFTF.setValue(newValue);
+                break;
+            case TRANSLATE_DOWN:
+                newValue = ((Number)translationYFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                translationYFTF.setValue(newValue);
+                break;
+            case TRANSLATE_IN:
+                newValue = ((Number)translationZFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                translationZFTF.setValue(newValue);
+                break;
+            case TRANSLATE_OUT:
+                newValue = ((Number)translationZFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                translationZFTF.setValue(newValue);
+                break;
+            case ROTATE_LEFT:
+                newValue = ((Number)rotationXFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                rotationXFTF.setValue(newValue);
+                break;
+            case ROTATE_RIGHT:
+                newValue = ((Number)rotationXFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                rotationXFTF.setValue(newValue);
+                break;
+            case ROTATE_UP:
+                newValue = ((Number)rotationYFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                rotationYFTF.setValue(newValue);
+                break;
+            case ROTATE_DOWN:
+                newValue = ((Number)rotationYFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                rotationYFTF.setValue(newValue);
+                break;
+            case ROTATE_IN:
+                newValue = ((Number)rotationZFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                rotationZFTF.setValue(newValue);
+                break;
+            case ROTATE_OUT:
+                newValue = ((Number)rotationZFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                rotationZFTF.setValue(newValue);
+                break;
+            case ZOOM_OUT:
+                newValue = ((Number)scaleFTF.getValue()).doubleValue() - listener.getMoveModifier();
+                scaleFTF.setValue(newValue);
+                break;
+            case ZOOM_IN:
+                newValue = ((Number)scaleFTF.getValue()).doubleValue() + listener.getMoveModifier();
+                scaleFTF.setValue(newValue);
+                break;
+            default:
+                throw new UnsupportedOperationException();
+        }
+    }
+
+    /**
+     * 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() {
+
+        primaryRenderModeGroup = new javax.swing.ButtonGroup();
+        secondaryRenerModeGroup = new javax.swing.ButtonGroup();
+        precisionGroup = new javax.swing.ButtonGroup();
+        registrationAdjustmentLabel = new javax.swing.JLabel();
+        jSeparator11 = new javax.swing.JSeparator();
+        visualizationPanel = new javax.swing.JPanel();
+        jSeparator8 = new javax.swing.JSeparator();
+        jSeparator4 = new javax.swing.JSeparator();
+        visualizationLabel = new javax.swing.JLabel();
+        jSeparator1 = new javax.swing.JSeparator();
+        modelPanel = new javax.swing.JPanel();
+        modelLabel = new javax.swing.JLabel();
+        pointsLabel = new javax.swing.JLabel();
+        transparencyButton = new javax.swing.JButton();
+        linesLabel = new javax.swing.JLabel();
+        colorButton = new javax.swing.JButton();
+        fillLabel = new javax.swing.JLabel();
+        renderModeLabel = new javax.swing.JLabel();
+        secondaryHighlightsCB = new javax.swing.JCheckBox();
+        primaryHighlightsCB = new javax.swing.JCheckBox();
+        highlightsLabel = new javax.swing.JLabel();
+        primaryLabel = new javax.swing.JLabel();
+        secondaryLabel = new javax.swing.JLabel();
+        transparencySlider = new javax.swing.JSlider();
+        secondaryColorPanel = new javax.swing.JPanel();
+        primaryColorPanel = new javax.swing.JPanel();
+        primaryLinesRB = new javax.swing.JRadioButton();
+        secondaryFillRB = new javax.swing.JRadioButton();
+        primaryPointsRB = new javax.swing.JRadioButton();
+        secondaryPointsRB = new javax.swing.JRadioButton();
+        secondaryLinesRB = new javax.swing.JRadioButton();
+        primaryFillRB = new javax.swing.JRadioButton();
+        viewPanel = new javax.swing.JPanel();
+        profileButton = new javax.swing.JButton();
+        frontButton = new javax.swing.JButton();
+        viewLabel = new javax.swing.JLabel();
+        backfaceButton = new javax.swing.JToggleButton();
+        featurePointsPanel = new javax.swing.JPanel();
+        featurePointsButton = new javax.swing.JToggleButton();
+        thresholdDownButton = new javax.swing.JButton();
+        thersholdUpButton = new javax.swing.JButton();
+        thersholdButton = new javax.swing.JButton();
+        thersholdFTF = new javax.swing.JFormattedTextField();
+        featurePointsLabel = new javax.swing.JLabel();
+        jSeparator3 = new javax.swing.JSeparator();
+        transformationPanel = new javax.swing.JPanel();
+        transformationLabel = new javax.swing.JLabel();
+        jSeparator2 = new javax.swing.JSeparator();
+        jSeparator6 = new javax.swing.JSeparator();
+        translationPanel = new javax.swing.JPanel();
+        translationButton = new javax.swing.JButton();
+        jLabel2 = new javax.swing.JLabel();
+        rightTranslationXButton = new javax.swing.JButton();
+        translationXFTF = new javax.swing.JFormattedTextField();
+        leftTranslationYButton = new javax.swing.JButton();
+        translationYFTF = new javax.swing.JFormattedTextField();
+        rightTranslationYButton = new javax.swing.JButton();
+        translXLabel = new javax.swing.JLabel();
+        translationZFTF = new javax.swing.JFormattedTextField();
+        translZLabel = new javax.swing.JLabel();
+        translYLabel = new javax.swing.JLabel();
+        rightTranslationZButton = new javax.swing.JButton();
+        leftTranslationXButton = new javax.swing.JButton();
+        leftTranslationZButton = new javax.swing.JButton();
+        rotationPanel = new javax.swing.JPanel();
+        leftRotationYButton = new javax.swing.JButton();
+        leftRotationXButton = new javax.swing.JButton();
+        rotatZLabel = new javax.swing.JLabel();
+        rotatYLabel = new javax.swing.JLabel();
+        rotatXLabel = new javax.swing.JLabel();
+        rotationButton = new javax.swing.JButton();
+        rotationZFTF = new javax.swing.JFormattedTextField();
+        rotationYFTF = new javax.swing.JFormattedTextField();
+        rightRotationZButton = new javax.swing.JButton();
+        rightRotationYButton = new javax.swing.JButton();
+        leftRotationZButton = new javax.swing.JButton();
+        rightRotationXButton = new javax.swing.JButton();
+        rotationXFTF = new javax.swing.JFormattedTextField();
+        jLabel3 = new javax.swing.JLabel();
+        scalePanel = new javax.swing.JPanel();
+        jLabel4 = new javax.swing.JLabel();
+        scalePlusButton = new javax.swing.JButton();
+        scaleMinusButton = new javax.swing.JButton();
+        scaleFTF = new javax.swing.JFormattedTextField();
+        scaleButton = new javax.swing.JButton();
+        resetAllButton = new javax.swing.JButton();
+        jSeparator7 = new javax.swing.JSeparator();
+        jSeparator9 = new javax.swing.JSeparator();
+        shiftPanel = new javax.swing.JPanel();
+        shiftLabel = new javax.swing.JLabel();
+        lowShiftRB = new javax.swing.JRadioButton();
+        highShiftRB = new javax.swing.JRadioButton();
+        jSeparator10 = new javax.swing.JSeparator();
+        applyButton = new javax.swing.JButton();
+        jSeparator5 = new javax.swing.JSeparator();
+
+        setBackground(new java.awt.Color(176, 230, 226));
+        setPreferredSize(new java.awt.Dimension(400, 630));
+
+        registrationAdjustmentLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(registrationAdjustmentLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.registrationAdjustmentLabel.text")); // NOI18N
+
+        visualizationPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        visualizationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(visualizationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.visualizationLabel.text")); // NOI18N
+
+        modelPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        modelLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(modelLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.modelLabel.text")); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(pointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.pointsLabel.text")); // NOI18N
+
+        transparencyButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(transparencyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.text")); // NOI18N
+        transparencyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.toolTipText")); // NOI18N
+        transparencyButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        transparencyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        transparencyButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                transparencyButtonActionPerformed(evt);
+            }
+        });
+
+        org.openide.awt.Mnemonics.setLocalizedText(linesLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.linesLabel.text")); // NOI18N
+
+        colorButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(colorButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.text")); // NOI18N
+        colorButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.toolTipText")); // NOI18N
+        colorButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        colorButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        colorButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        colorButton.setIconTextGap(0);
+        colorButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                colorButtonActionPerformed(evt);
+            }
+        });
+
+        org.openide.awt.Mnemonics.setLocalizedText(fillLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.fillLabel.text")); // NOI18N
+
+        renderModeLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(renderModeLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.renderModeLabel.text")); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(secondaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryHighlightsCB.text")); // NOI18N
+        secondaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                secondaryHighlightsCBActionPerformed(evt);
+            }
+        });
+
+        org.openide.awt.Mnemonics.setLocalizedText(primaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryHighlightsCB.text")); // NOI18N
+        primaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                primaryHighlightsCBActionPerformed(evt);
+            }
+        });
+
+        highlightsLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(highlightsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highlightsLabel.text")); // NOI18N
+
+        primaryLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(primaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLabel.text")); // NOI18N
+
+        secondaryLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(secondaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.text")); // NOI18N
+        secondaryLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.toolTipText")); // NOI18N
+
+        transparencySlider.setMajorTickSpacing(5);
+        transparencySlider.setMaximum(20);
+        transparencySlider.setMinorTickSpacing(5);
+        transparencySlider.setOrientation(javax.swing.JSlider.VERTICAL);
+        transparencySlider.setPaintTicks(true);
+        transparencySlider.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencySlider.toolTipText")); // NOI18N
+        transparencySlider.setValue(10);
+        transparencySlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        transparencySlider.addChangeListener(new javax.swing.event.ChangeListener() {
+            public void stateChanged(javax.swing.event.ChangeEvent evt) {
+                transparencySliderStateChanged(evt);
+            }
+        });
+
+        secondaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
+        secondaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryColorPanel.toolTipText")); // NOI18N
+        secondaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        secondaryColorPanel.setPreferredSize(new java.awt.Dimension(70, 14));
+        secondaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                secondaryColorPanelMouseClicked(evt);
+            }
+        });
+
+        javax.swing.GroupLayout secondaryColorPanelLayout = new javax.swing.GroupLayout(secondaryColorPanel);
+        secondaryColorPanel.setLayout(secondaryColorPanelLayout);
+        secondaryColorPanelLayout.setHorizontalGroup(
+            secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 48, Short.MAX_VALUE)
+        );
+        secondaryColorPanelLayout.setVerticalGroup(
+            secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 12, Short.MAX_VALUE)
+        );
+
+        primaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
+        primaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryColorPanel.toolTipText")); // NOI18N
+        primaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        primaryColorPanel.setPreferredSize(new java.awt.Dimension(72, 14));
+        primaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                primaryColorPanelMouseClicked(evt);
+            }
+        });
+
+        javax.swing.GroupLayout primaryColorPanelLayout = new javax.swing.GroupLayout(primaryColorPanel);
+        primaryColorPanel.setLayout(primaryColorPanelLayout);
+        primaryColorPanelLayout.setHorizontalGroup(
+            primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 48, Short.MAX_VALUE)
+        );
+        primaryColorPanelLayout.setVerticalGroup(
+            primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 12, Short.MAX_VALUE)
+        );
+
+        primaryRenderModeGroup.add(primaryLinesRB);
+        org.openide.awt.Mnemonics.setLocalizedText(primaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLinesRB.text")); // NOI18N
+        primaryLinesRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                primaryLinesRBActionPerformed(evt);
+            }
+        });
+
+        secondaryRenerModeGroup.add(secondaryFillRB);
+        org.openide.awt.Mnemonics.setLocalizedText(secondaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryFillRB.text")); // NOI18N
+        secondaryFillRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                secondaryFillRBActionPerformed(evt);
+            }
+        });
+
+        primaryRenderModeGroup.add(primaryPointsRB);
+        org.openide.awt.Mnemonics.setLocalizedText(primaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryPointsRB.text")); // NOI18N
+        primaryPointsRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                primaryPointsRBActionPerformed(evt);
+            }
+        });
+
+        secondaryRenerModeGroup.add(secondaryPointsRB);
+        org.openide.awt.Mnemonics.setLocalizedText(secondaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryPointsRB.text")); // NOI18N
+        secondaryPointsRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                secondaryPointsRBActionPerformed(evt);
+            }
+        });
+
+        secondaryRenerModeGroup.add(secondaryLinesRB);
+        org.openide.awt.Mnemonics.setLocalizedText(secondaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLinesRB.text")); // NOI18N
+        secondaryLinesRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                secondaryLinesRBActionPerformed(evt);
+            }
+        });
+
+        primaryRenderModeGroup.add(primaryFillRB);
+        org.openide.awt.Mnemonics.setLocalizedText(primaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryFillRB.text")); // NOI18N
+        primaryFillRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                primaryFillRBActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout modelPanelLayout = new javax.swing.GroupLayout(modelPanel);
+        modelPanel.setLayout(modelPanelLayout);
+        modelPanelLayout.setHorizontalGroup(
+            modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(modelPanelLayout.createSequentialGroup()
+                .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(primaryLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(modelLabel)
+                    .addComponent(secondaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addGap(18, 18, 18)
+                .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(modelPanelLayout.createSequentialGroup()
+                        .addComponent(colorButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(highlightsLabel)
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(modelPanelLayout.createSequentialGroup()
+                                .addGap(41, 41, 41)
+                                .addComponent(linesLabel)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                                .addComponent(pointsLabel))
+                            .addGroup(modelPanelLayout.createSequentialGroup()
+                                .addGap(18, 18, 18)
+                                .addComponent(renderModeLabel)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
+                                .addComponent(transparencyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                    .addGroup(modelPanelLayout.createSequentialGroup()
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(primaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(secondaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addGap(18, 18, 18)
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(primaryHighlightsCB)
+                            .addComponent(secondaryHighlightsCB))
+                        .addGap(28, 28, 28)
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(modelPanelLayout.createSequentialGroup()
+                                .addComponent(secondaryFillRB)
+                                .addGap(18, 18, 18)
+                                .addComponent(secondaryLinesRB)
+                                .addGap(18, 18, 18)
+                                .addComponent(secondaryPointsRB))
+                            .addGroup(modelPanelLayout.createSequentialGroup()
+                                .addComponent(primaryFillRB)
+                                .addGap(18, 18, 18)
+                                .addComponent(primaryLinesRB)
+                                .addGap(18, 18, 18)
+                                .addComponent(primaryPointsRB))
+                            .addComponent(fillLabel))
+                        .addGap(25, 25, 25)
+                        .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                .addContainerGap())
+        );
+        modelPanelLayout.setVerticalGroup(
+            modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(modelPanelLayout.createSequentialGroup()
+                .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(modelLabel)
+                    .addGroup(modelPanelLayout.createSequentialGroup()
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                            .addComponent(highlightsLabel)
+                            .addComponent(renderModeLabel)
+                            .addComponent(transparencyButton)
+                            .addComponent(colorButton))
+                        .addGap(4, 4, 4)
+                        .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                            .addComponent(fillLabel)
+                            .addComponent(linesLabel)
+                            .addComponent(pointsLabel))))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup()
+                            .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(primaryLabel)
+                                .addComponent(primaryHighlightsCB))
+                            .addGap(11, 11, 11)
+                            .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(secondaryLabel, javax.swing.GroupLayout.Alignment.TRAILING)
+                                .addComponent(secondaryHighlightsCB, javax.swing.GroupLayout.Alignment.TRAILING)))
+                        .addGroup(modelPanelLayout.createSequentialGroup()
+                            .addComponent(primaryColorPanel, 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)
+                            .addComponent(secondaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                    .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup()
+                            .addComponent(primaryFillRB)
+                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(secondaryFillRB))
+                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup()
+                            .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(primaryLinesRB)
+                                .addComponent(primaryPointsRB))
+                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addComponent(secondaryLinesRB, javax.swing.GroupLayout.Alignment.TRAILING)
+                                .addComponent(secondaryPointsRB, javax.swing.GroupLayout.Alignment.TRAILING)))
+                        .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))))
+        );
+
+        viewPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        org.openide.awt.Mnemonics.setLocalizedText(profileButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.text")); // NOI18N
+        profileButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.toolTipText")); // NOI18N
+        profileButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        profileButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        profileButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                profileButtonActionPerformed(evt);
+            }
+        });
+
+        org.openide.awt.Mnemonics.setLocalizedText(frontButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.text")); // NOI18N
+        frontButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.toolTipText")); // NOI18N
+        frontButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        frontButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        frontButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                frontButtonActionPerformed(evt);
+            }
+        });
+
+        viewLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(viewLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.viewLabel.text")); // NOI18N
+
+        org.openide.awt.Mnemonics.setLocalizedText(backfaceButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.backfaceButton.text")); // NOI18N
+        backfaceButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        backfaceButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                backfaceButtonActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout viewPanelLayout = new javax.swing.GroupLayout(viewPanel);
+        viewPanel.setLayout(viewPanelLayout);
+        viewPanelLayout.setHorizontalGroup(
+            viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(viewPanelLayout.createSequentialGroup()
+                .addComponent(viewLabel)
+                .addGap(18, 18, 18)
+                .addComponent(frontButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(18, 18, 18)
+                .addComponent(profileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(18, 18, 18)
+                .addComponent(backfaceButton, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+        viewPanelLayout.setVerticalGroup(
+            viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                .addComponent(viewLabel)
+                .addComponent(frontButton)
+                .addComponent(profileButton)
+                .addComponent(backfaceButton))
+        );
+
+        featurePointsPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        org.openide.awt.Mnemonics.setLocalizedText(featurePointsButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsButton.text")); // NOI18N
+        featurePointsButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        featurePointsButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                featurePointsButtonActionPerformed(evt);
+            }
+        });
+
+        thresholdDownButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/subtract-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(thresholdDownButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thresholdDownButton.text")); // NOI18N
+        thresholdDownButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        thresholdDownButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        thresholdDownButton.setEnabled(false);
+        thresholdDownButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        thresholdDownButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        thresholdDownButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        thresholdDownButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                thresholdDownButtonActionPerformed(evt);
+            }
+        });
+
+        thersholdUpButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/add-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(thersholdUpButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thersholdUpButton.text")); // NOI18N
+        thersholdUpButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        thersholdUpButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        thersholdUpButton.setEnabled(false);
+        thersholdUpButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        thersholdUpButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        thersholdUpButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        thersholdUpButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                thersholdUpButtonActionPerformed(evt);
+            }
+        });
+
+        thersholdButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(thersholdButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thersholdButton.text")); // NOI18N
+        thersholdButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        thersholdButton.setEnabled(false);
+        thersholdButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                thersholdButtonActionPerformed(evt);
+            }
+        });
+
+        thersholdFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        thersholdFTF.setEnabled(false);
+        thersholdFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                thersholdFTFPropertyChange(evt);
+            }
+        });
+
+        featurePointsLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(featurePointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsLabel.text")); // NOI18N
+
+        javax.swing.GroupLayout featurePointsPanelLayout = new javax.swing.GroupLayout(featurePointsPanel);
+        featurePointsPanel.setLayout(featurePointsPanelLayout);
+        featurePointsPanelLayout.setHorizontalGroup(
+            featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(featurePointsPanelLayout.createSequentialGroup()
+                .addComponent(featurePointsLabel)
+                .addGap(18, 18, 18)
+                .addComponent(featurePointsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(18, 18, 18)
+                .addComponent(thersholdButton)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(thersholdFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(thersholdUpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(thresholdDownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+        );
+        featurePointsPanelLayout.setVerticalGroup(
+            featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                .addComponent(featurePointsLabel)
+                .addComponent(featurePointsButton)
+                .addComponent(thersholdButton)
+                .addComponent(thersholdFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+            .addComponent(thersholdUpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+            .addComponent(thresholdDownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+        );
+
+        javax.swing.GroupLayout visualizationPanelLayout = new javax.swing.GroupLayout(visualizationPanel);
+        visualizationPanel.setLayout(visualizationPanelLayout);
+        visualizationPanelLayout.setHorizontalGroup(
+            visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(visualizationPanelLayout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                    .addComponent(jSeparator1)
+                    .addComponent(jSeparator4)
+                    .addComponent(jSeparator8)
+                    .addComponent(visualizationLabel)
+                    .addComponent(modelPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(featurePointsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(viewPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+            .addComponent(jSeparator3)
+        );
+        visualizationPanelLayout.setVerticalGroup(
+            visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, visualizationPanelLayout.createSequentialGroup()
+                .addComponent(visualizationLabel)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(modelPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator8, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(viewPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(featurePointsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(19, 19, 19))
+        );
+
+        transformationPanel.setBackground(new java.awt.Color(176, 230, 226));
+        transformationPanel.setPreferredSize(new java.awt.Dimension(400, 400));
+
+        transformationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(transformationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transformationLabel.text")); // NOI18N
+
+        translationPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        translationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(translationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.text")); // NOI18N
+        translationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.toolTipText")); // NOI18N
+        translationButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        translationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        translationButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        translationButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                translationButtonActionPerformed(evt);
+            }
+        });
+
+        jLabel2.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel2.text")); // NOI18N
+
+        rightTranslationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationXButton.text")); // NOI18N
+        rightTranslationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightTranslationXButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        rightTranslationXButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        rightTranslationXButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightTranslationXButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightTranslationXButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightTranslationXButtonMouseReleased(evt);
+            }
+        });
+
+        translationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        translationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXFTF.toolTipText")); // NOI18N
+        translationXFTF.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
+        translationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                translationXFTFPropertyChange(evt);
+            }
+        });
+
+        leftTranslationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationYButton.text")); // NOI18N
+        leftTranslationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftTranslationYButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftTranslationYButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftTranslationYButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftTranslationYButtonMouseReleased(evt);
+            }
+        });
+
+        translationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        translationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                translationYFTFPropertyChange(evt);
+            }
+        });
+
+        rightTranslationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationYButton.text")); // NOI18N
+        rightTranslationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightTranslationYButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightTranslationYButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightTranslationYButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightTranslationYButtonMouseReleased(evt);
+            }
+        });
+
+        translXLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(translXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translXLabel.text")); // NOI18N
+
+        translationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        translationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                translationZFTFPropertyChange(evt);
+            }
+        });
+
+        translZLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(translZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translZLabel.text")); // NOI18N
+
+        translYLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(translYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translYLabel.text")); // NOI18N
+
+        rightTranslationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationZButton.text")); // NOI18N
+        rightTranslationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightTranslationZButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightTranslationZButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightTranslationZButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightTranslationZButtonMouseReleased(evt);
+            }
+        });
+
+        leftTranslationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationXButton.text")); // NOI18N
+        leftTranslationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftTranslationXButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        leftTranslationXButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        leftTranslationXButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftTranslationXButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftTranslationXButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftTranslationXButtonMouseReleased(evt);
+            }
+        });
+
+        leftTranslationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationZButton.text")); // NOI18N
+        leftTranslationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftTranslationZButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftTranslationZButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftTranslationZButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftTranslationZButtonMouseReleased(evt);
+            }
+        });
+
+        javax.swing.GroupLayout translationPanelLayout = new javax.swing.GroupLayout(translationPanel);
+        translationPanel.setLayout(translationPanelLayout);
+        translationPanelLayout.setHorizontalGroup(
+            translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(translationPanelLayout.createSequentialGroup()
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addComponent(jLabel2)
+                        .addGap(28, 28, 28))
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, translationPanelLayout.createSequentialGroup()
+                        .addComponent(translationButton)
+                        .addGap(18, 18, 18)))
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                    .addComponent(translXLabel)
+                    .addComponent(translationXFTF)
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addComponent(leftTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(rightTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                .addGap(18, 18, 18)
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addComponent(leftTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(rightTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(translYLabel)
+                    .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(18, 18, 18)
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addComponent(leftTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(rightTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(translZLabel))
+                .addContainerGap(14, Short.MAX_VALUE))
+        );
+        translationPanelLayout.setVerticalGroup(
+            translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(translationPanelLayout.createSequentialGroup()
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                        .addComponent(translXLabel)
+                        .addComponent(translYLabel)
+                        .addComponent(translZLabel))
+                    .addComponent(jLabel2))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addComponent(rightTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(0, 0, Short.MAX_VALUE))
+                    .addGroup(translationPanelLayout.createSequentialGroup()
+                        .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(leftTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(rightTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                                .addGroup(translationPanelLayout.createSequentialGroup()
+                                    .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                        .addComponent(rightTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                        .addComponent(leftTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                    .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                                        .addComponent(translationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                        .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                        .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                                .addComponent(translationButton))
+                            .addComponent(leftTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+        );
+
+        rotationPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        leftRotationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationYButton.text")); // NOI18N
+        leftRotationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftRotationYButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        leftRotationYButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        leftRotationYButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftRotationYButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftRotationYButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftRotationYButtonMouseReleased(evt);
+            }
+        });
+
+        leftRotationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationXButton.text")); // NOI18N
+        leftRotationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftRotationXButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftRotationXButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftRotationXButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftRotationXButtonMouseReleased(evt);
+            }
+        });
+
+        rotatZLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rotatZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatZLabel.text")); // NOI18N
+
+        rotatYLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rotatYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatYLabel.text")); // NOI18N
+
+        rotatXLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rotatXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatXLabel.text")); // NOI18N
+
+        rotationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rotationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.text")); // NOI18N
+        rotationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.toolTipText")); // NOI18N
+        rotationButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rotationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rotationButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rotationButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                rotationButtonActionPerformed(evt);
+            }
+        });
+
+        rotationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        rotationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                rotationZFTFPropertyChange(evt);
+            }
+        });
+
+        rotationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        rotationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                rotationYFTFPropertyChange(evt);
+            }
+        });
+
+        rightRotationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationZButton.text")); // NOI18N
+        rightRotationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightRotationZButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        rightRotationZButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        rightRotationZButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightRotationZButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightRotationZButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightRotationZButtonMouseReleased(evt);
+            }
+        });
+
+        rightRotationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationYButton.text")); // NOI18N
+        rightRotationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightRotationYButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        rightRotationYButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        rightRotationYButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightRotationYButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightRotationYButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightRotationYButtonMouseReleased(evt);
+            }
+        });
+
+        leftRotationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(leftRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationZButton.text")); // NOI18N
+        leftRotationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        leftRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        leftRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        leftRotationZButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        leftRotationZButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        leftRotationZButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        leftRotationZButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                leftRotationZButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                leftRotationZButtonMouseReleased(evt);
+            }
+        });
+
+        rightRotationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(rightRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationXButton.text")); // NOI18N
+        rightRotationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        rightRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        rightRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        rightRotationXButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        rightRotationXButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        rightRotationXButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        rightRotationXButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                rightRotationXButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                rightRotationXButtonMouseReleased(evt);
+            }
+        });
+
+        rotationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        rotationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationXFTF.toolTipText")); // NOI18N
+        rotationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                rotationXFTFPropertyChange(evt);
+            }
+        });
+
+        jLabel3.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel3.text")); // NOI18N
+
+        javax.swing.GroupLayout rotationPanelLayout = new javax.swing.GroupLayout(rotationPanel);
+        rotationPanel.setLayout(rotationPanelLayout);
+        rotationPanelLayout.setHorizontalGroup(
+            rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(rotationPanelLayout.createSequentialGroup()
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addGap(48, 48, 48)
+                        .addComponent(rotationButton))
+                    .addComponent(jLabel3))
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addGap(18, 18, 18)
+                        .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(rotatXLabel)
+                            .addGroup(rotationPanelLayout.createSequentialGroup()
+                                .addComponent(leftRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(rightRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, rotationPanelLayout.createSequentialGroup()
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                .addGap(21, 21, 21)
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addComponent(leftRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(rightRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(rotatYLabel))
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addGap(22, 22, 22)
+                        .addComponent(rotatZLabel))
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addGap(18, 18, 18)
+                        .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addGroup(rotationPanelLayout.createSequentialGroup()
+                                .addComponent(leftRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(rightRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+        rotationPanelLayout.setVerticalGroup(
+            rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(rotationPanelLayout.createSequentialGroup()
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                        .addComponent(rotatXLabel)
+                        .addComponent(jLabel3))
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                        .addComponent(rotatYLabel)
+                        .addComponent(rotatZLabel)))
+                .addGap(6, 6, 6)
+                .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(rotationButton)
+                    .addGroup(rotationPanelLayout.createSequentialGroup()
+                        .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(rightRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(leftRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(leftRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(rightRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(leftRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(rightRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                            .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+
+        scalePanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        jLabel4.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel4.text")); // NOI18N
+
+        scalePlusButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/add-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(scalePlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scalePlusButton.text")); // NOI18N
+        scalePlusButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        scalePlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        scalePlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        scalePlusButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        scalePlusButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        scalePlusButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        scalePlusButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                scalePlusButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                scalePlusButtonMouseReleased(evt);
+            }
+        });
+
+        scaleMinusButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/subtract-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(scaleMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleMinusButton.text")); // NOI18N
+        scaleMinusButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        scaleMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        scaleMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        scaleMinusButton.setMaximumSize(new java.awt.Dimension(24, 24));
+        scaleMinusButton.setMinimumSize(new java.awt.Dimension(24, 24));
+        scaleMinusButton.setPreferredSize(new java.awt.Dimension(24, 24));
+        scaleMinusButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mousePressed(java.awt.event.MouseEvent evt) {
+                scaleMinusButtonMousePressed(evt);
+            }
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                scaleMinusButtonMouseReleased(evt);
+            }
+        });
+
+        scaleFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
+        scaleFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleFTF.toolTipText")); // NOI18N
+        scaleFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                scaleFTFPropertyChange(evt);
+            }
+        });
+
+        scaleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(scaleButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.text")); // NOI18N
+        scaleButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.toolTipText")); // NOI18N
+        scaleButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        scaleButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+        scaleButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        scaleButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                scaleButtonActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout scalePanelLayout = new javax.swing.GroupLayout(scalePanel);
+        scalePanel.setLayout(scalePanelLayout);
+        scalePanelLayout.setHorizontalGroup(
+            scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup()
+                .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(scalePanelLayout.createSequentialGroup()
+                        .addComponent(jLabel4)
+                        .addGap(0, 42, Short.MAX_VALUE))
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup()
+                        .addGap(0, 0, Short.MAX_VALUE)
+                        .addComponent(scaleButton)))
+                .addGap(18, 18, 18)
+                .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup()
+                        .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(scaleFTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+        scalePanelLayout.setVerticalGroup(
+            scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(scalePanelLayout.createSequentialGroup()
+                .addGap(1, 1, 1)
+                .addComponent(jLabel4)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(scaleButton))
+            .addGroup(scalePanelLayout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(scalePlusButton, 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)
+                .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+        );
+
+        resetAllButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/refresh-line.png"))); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(resetAllButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.text")); // NOI18N
+        resetAllButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.toolTipText")); // NOI18N
+        resetAllButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        resetAllButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                resetAllButtonActionPerformed(evt);
+            }
+        });
+
+        jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL);
+
+        shiftPanel.setBackground(new java.awt.Color(176, 230, 226));
+
+        shiftLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(shiftLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.shiftLabel.text")); // NOI18N
+        shiftLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.shiftLabel.toolTipText")); // NOI18N
+
+        precisionGroup.add(lowShiftRB);
+        org.openide.awt.Mnemonics.setLocalizedText(lowShiftRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.lowShiftRB.text")); // NOI18N
+        lowShiftRB.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.lowShiftRB.toolTipText")); // NOI18N
+        lowShiftRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                lowShiftRBActionPerformed(evt);
+            }
+        });
+
+        precisionGroup.add(highShiftRB);
+        org.openide.awt.Mnemonics.setLocalizedText(highShiftRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highShiftRB.text")); // NOI18N
+        highShiftRB.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highShiftRB.toolTipText")); // NOI18N
+        highShiftRB.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                highShiftRBActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout shiftPanelLayout = new javax.swing.GroupLayout(shiftPanel);
+        shiftPanel.setLayout(shiftPanelLayout);
+        shiftPanelLayout.setHorizontalGroup(
+            shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(shiftPanelLayout.createSequentialGroup()
+                .addGroup(shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(lowShiftRB)
+                    .addComponent(highShiftRB))
+                .addGap(0, 8, Short.MAX_VALUE))
+            .addGroup(shiftPanelLayout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(shiftLabel)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+        shiftPanelLayout.setVerticalGroup(
+            shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(shiftPanelLayout.createSequentialGroup()
+                .addComponent(shiftLabel)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(lowShiftRB)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(highShiftRB)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+
+        jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL);
+
+        org.openide.awt.Mnemonics.setLocalizedText(applyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.text")); // NOI18N
+        applyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.toolTipText")); // NOI18N
+        applyButton.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+        applyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+        applyButton.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                applyButtonActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout transformationPanelLayout = new javax.swing.GroupLayout(transformationPanel);
+        transformationPanel.setLayout(transformationPanelLayout);
+        transformationPanelLayout.setHorizontalGroup(
+            transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(transformationPanelLayout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(rotationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addGroup(transformationPanelLayout.createSequentialGroup()
+                        .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                                .addComponent(transformationLabel)
+                                .addComponent(jSeparator6, javax.swing.GroupLayout.DEFAULT_SIZE, 371, Short.MAX_VALUE)
+                                .addComponent(jSeparator2))
+                            .addComponent(translationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addGroup(transformationPanelLayout.createSequentialGroup()
+                                .addComponent(scalePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(jSeparator9, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addGap(18, 18, 18)
+                                .addComponent(shiftPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addComponent(resetAllButton, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                    .addComponent(applyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                        .addGap(0, 5, Short.MAX_VALUE)))
+                .addContainerGap())
+            .addComponent(jSeparator5, javax.swing.GroupLayout.Alignment.TRAILING)
+        );
+        transformationPanelLayout.setVerticalGroup(
+            transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(transformationPanelLayout.createSequentialGroup()
+                .addComponent(transformationLabel)
+                .addGap(13, 13, 13)
+                .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(1, 1, 1)
+                .addComponent(translationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addComponent(rotationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(transformationPanelLayout.createSequentialGroup()
+                        .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addComponent(applyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                    .addGroup(transformationPanelLayout.createSequentialGroup()
+                        .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(transformationPanelLayout.createSequentialGroup()
+                                .addComponent(scalePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                                .addGap(7, 7, 7))
+                            .addComponent(jSeparator9, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(shiftPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(resetAllButton))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+                .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
+        );
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+        this.setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addComponent(jSeparator11)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(registrationAdjustmentLabel))
+            .addComponent(transformationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+            .addComponent(visualizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 387, javax.swing.GroupLayout.PREFERRED_SIZE)
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(registrationAdjustmentLabel)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(jSeparator11, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(visualizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(10, 10, 10)
+                .addComponent(transformationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 333, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+    }// </editor-fold>//GEN-END:initComponents
+
+    /**
+     * Creates color chooser to change primary color
+     * @param evt 
+     */
+    private void primaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_primaryColorPanelMouseClicked
+        if (transparencySlider.getValue() == 0) {
+            return;
+        }
+        Color current = primaryColorPanel.getBackground();
+        Color newColor = JColorChooser.showDialog(null, "Choose a color", current);
+            if (newColor != null) {
+            primaryColorPanel.setBackground(newColor);
+            listener.setPrimaryColor(newColor);
+        }
+    }//GEN-LAST:event_primaryColorPanelMouseClicked
+    
+    /**
+     * Creates color chooser to change secondary color
+     * @param evt 
+     */
+    private void secondaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_secondaryColorPanelMouseClicked
+        if (transparencySlider.getValue() == 2*PostRegistrationListener.TRANSPARENCY_RANGE) {
+            return;
+        }
+        Color current = secondaryColorPanel.getBackground();
+        Color newColor = JColorChooser.showDialog(null, "Choose a color", current);
+        if (newColor != null) {
+            secondaryColorPanel.setBackground(newColor);
+            listener.setSecondaryColor(newColor);
+        }
+    }//GEN-LAST:event_secondaryColorPanelMouseClicked
+
+    /**
+     * Resets transparency slider to default position
+     * @param evt 
+     */
+    private void transparencyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_transparencyButtonActionPerformed
+        transparencySlider.setValue(PostRegistrationListener.TRANSPARENCY_RANGE);
+        transparencySlider.repaint();
+        listener.setTransparency(PostRegistrationListener.TRANSPARENCY_RANGE);
+    }//GEN-LAST:event_transparencyButtonActionPerformed
+
+    /**
+     * Disables buttons if set to maximum or minimum
+     * Sets transparency
+     * @param evt 
+     */
+    private void transparencySliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySliderStateChanged
+        int transparency = transparencySlider.getValue();
+        if (transparency == 0) {
+            primaryColorPanel.setBackground(Color.lightGray);
+            primaryHighlightsCB.setEnabled(false);
+            primaryHighlightsCB.setEnabled(false);
+            primaryFillRB.setEnabled(false);
+            primaryLinesRB.setEnabled(false);
+            primaryPointsRB.setEnabled(false);
+        } else if (transparency == 2*PostRegistrationListener.TRANSPARENCY_RANGE) {
+            secondaryColorPanel.setBackground(Color.lightGray);
+            secondaryHighlightsCB.setEnabled(false);
+            secondaryHighlightsCB.setEnabled(false);
+            secondaryFillRB.setEnabled(false);
+            secondaryLinesRB.setEnabled(false);
+            secondaryPointsRB.setEnabled(false);
+        } else if (!primaryFillRB.isEnabled()) {
+            primaryColorPanel.setBackground(listener.getPrimaryColor());
+            primaryHighlightsCB.setEnabled(true);
+            primaryHighlightsCB.setEnabled(true);
+            primaryFillRB.setEnabled(true);
+            primaryLinesRB.setEnabled(true);
+            primaryPointsRB.setEnabled(true);
+        } else if (!secondaryFillRB.isEnabled()) {
+            secondaryColorPanel.setBackground(listener.getSecondaryColor());
+            secondaryHighlightsCB.setEnabled(true);
+            secondaryHighlightsCB.setEnabled(true);
+            secondaryFillRB.setEnabled(true);
+            secondaryLinesRB.setEnabled(true);
+            secondaryPointsRB.setEnabled(true);
+        }
+        listener.setTransparency(transparency);
+    }//GEN-LAST:event_transparencySliderStateChanged
+
+    /**
+     * Sets front facing
+     * @param evt 
+     */
+    private void frontButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_frontButtonActionPerformed
+        listener.setFrontFacing();
+    }//GEN-LAST:event_frontButtonActionPerformed
+
+    /**
+     * Sets side facing
+     * @param evt 
+     */
+    private void profileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_profileButtonActionPerformed
+        listener.setSideFacing();
+    }//GEN-LAST:event_profileButtonActionPerformed
+
+    /**
+     * Resets translation
+     * @param evt 
+     */
+    private void translationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translationButtonActionPerformed
+        translationXFTF.setValue(0);
+        translationYFTF.setValue(0);
+        translationZFTF.setValue(0);
+        listener.resetTranslation();
+    }//GEN-LAST:event_translationButtonActionPerformed
+
+    /**
+     * Resets rotation
+     * @param evt 
+     */
+    private void rotationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotationButtonActionPerformed
+        rotationXFTF.setValue(0);
+        rotationYFTF.setValue(0);
+        rotationZFTF.setValue(0);
+        listener.resetRotation();
+    }//GEN-LAST:event_rotationButtonActionPerformed
+
+    /**
+     * Resets scale
+     * @param evt 
+     */
+    private void scaleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleButtonActionPerformed
+        scaleFTF.setValue(0);
+        listener.resetScale();
+    }//GEN-LAST:event_scaleButtonActionPerformed
+
+    /**
+     * Resetes all transformations
+     * @param evt 
+     */
+    private void resetAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetAllButtonActionPerformed
+        translationButtonActionPerformed(evt);
+        rotationButtonActionPerformed(evt);
+        scaleButtonActionPerformed(evt);
+    }//GEN-LAST:event_resetAllButtonActionPerformed
+
+    /**
+     * Sets new translation on X-axis
+     * @param evt 
+     */
+    private void translationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationXFTFPropertyChange
+        double value = ((Number)translationXFTF.getValue()).doubleValue();
+        listener.setXTranslation(value);
+    }//GEN-LAST:event_translationXFTFPropertyChange
+
+    /**
+     * Sets new translation on Y-axis
+     * @param evt 
+     */
+    private void translationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationYFTFPropertyChange
+        double value = ((Number)translationYFTF.getValue()).doubleValue();
+        listener.setYTranslation(value);
+    }//GEN-LAST:event_translationYFTFPropertyChange
+
+    /**
+     * Sets new translation on Z-axis
+     * @param evt 
+     */
+    private void translationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationZFTFPropertyChange
+        double value = ((Number)translationZFTF.getValue()).doubleValue();
+        listener.setZTranslation(value);
+    }//GEN-LAST:event_translationZFTFPropertyChange
+
+    /**
+     * Sets new rotation on X-axis
+     * @param evt 
+     */
+    private void rotationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationXFTFPropertyChange
+        double value = ((Number)rotationXFTF.getValue()).doubleValue();
+        listener.setXRotation(value);
+    }//GEN-LAST:event_rotationXFTFPropertyChange
+
+    /**
+     * Sets new rotation on Y-axis
+     * @param evt 
+     */
+    private void rotationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationYFTFPropertyChange
+        double value = ((Number)rotationYFTF.getValue()).doubleValue();
+        listener.setYRotation(value);
+    }//GEN-LAST:event_rotationYFTFPropertyChange
+
+    /**
+     * Sets new rotation o Z-axis
+     * @param evt 
+     */
+    private void rotationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationZFTFPropertyChange
+        double value = ((Number)rotationZFTF.getValue()).doubleValue();
+        listener.setZRotation(value);
+    }//GEN-LAST:event_rotationZFTFPropertyChange
+
+    /**
+     * Sets new scale
+     * @param evt 
+     */
+    private void scaleFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_scaleFTFPropertyChange
+        double value = ((Number)scaleFTF.getValue()).doubleValue();
+        listener.setScale(value);
+    }//GEN-LAST:event_scaleFTFPropertyChange
+
+    /**
+     * Adds or removes highlights of primary face
+     * @param evt 
+     */
+    private void primaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryHighlightsCBActionPerformed
+        if (primaryHighlightsCB.isSelected()) {
+            listener.setPrimaryHighlights();
+        } else {
+            listener.removePrimaryHighlights();
+        }
+    }//GEN-LAST:event_primaryHighlightsCBActionPerformed
+
+    /**
+     * Adds or removes highlights of secondary face
+     * @param evt 
+     */
+    private void secondaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryHighlightsCBActionPerformed
+        if (secondaryHighlightsCB.isSelected()) {
+            listener.setSecondaryHighlights();
+        } else {
+            listener.removeSecondaryHighlights();
+        }
+    }//GEN-LAST:event_secondaryHighlightsCBActionPerformed
+
+    /**
+     * Sets primary face to render solid
+     * @param evt 
+     */
+    private void primaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryFillRBActionPerformed
+        listener.setPrimaryFill();
+    }//GEN-LAST:event_primaryFillRBActionPerformed
+
+    /**
+     * Sets primary face to render as lines
+     * @param evt 
+     */
+    private void primaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryLinesRBActionPerformed
+        listener.setPrimaryLines();
+    }//GEN-LAST:event_primaryLinesRBActionPerformed
+
+    /**
+     * Sets primary face to render as points
+     * @param evt 
+     */
+    private void primaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryPointsRBActionPerformed
+        listener.setPrimaryPoints();
+    }//GEN-LAST:event_primaryPointsRBActionPerformed
+
+    /**
+     * Sets secondary face to render solid
+     * @param evt 
+     */
+    private void secondaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryFillRBActionPerformed
+        listener.setSecondaryFill();
+    }//GEN-LAST:event_secondaryFillRBActionPerformed
+
+    /**
+     * Sets secondary face to render as lines
+     * @param evt 
+     */
+    private void secondaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryLinesRBActionPerformed
+        listener.setSecondaryLines();
+    }//GEN-LAST:event_secondaryLinesRBActionPerformed
+
+    /**
+     * Sets secondary face to render as points
+     * @param evt 
+     */
+    private void secondaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryPointsRBActionPerformed
+        listener.setSecondaryPoints();
+    }//GEN-LAST:event_secondaryPointsRBActionPerformed
+
+    /**
+     * Resets colors to default
+     * @param evt 
+     */
+    private void colorButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorButtonActionPerformed
+        primaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_PRIMARY_COLOR);
+        secondaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_SECONDARY_COLOR);
+        listener.setDeafultColor();
+    }//GEN-LAST:event_colorButtonActionPerformed
+
+    /**
+     * Applies performed transformations
+     * @param evt 
+     */
+    private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_applyButtonActionPerformed
+        listener.transformFace();
+        resetAllButtonActionPerformed(evt);
+    }//GEN-LAST:event_applyButtonActionPerformed
+
+    /**
+     * Disables or enables feature points options and shows/hides feature points
+     * @param evt 
+     */
+    private void featurePointsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_featurePointsButtonActionPerformed
+        if (listener.areFeaturePointsActive()) {
+            featurePointsButton.setText("show");
+            thersholdButton.setEnabled(false);
+            thersholdFTF.setEnabled(false);
+            thersholdUpButton.setEnabled(false);
+            thresholdDownButton.setEnabled(false);
+            listener.setFeaturePointsActive(false);
+        } else {
+            featurePointsButton.setText("hide");
+            thersholdButton.setEnabled(true);
+            thersholdFTF.setEnabled(true);
+            thersholdUpButton.setEnabled(true);
+            thresholdDownButton.setEnabled(true);
+            listener.setFeaturePointsActive(true);
+        }
+    }//GEN-LAST:event_featurePointsButtonActionPerformed
+
+    /**
+     * Sets new feature points thershold value
+     * @param evt 
+     */
+    private void thersholdFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_thersholdFTFPropertyChange
+        listener.setFeaturePointsThreshold(((Number)thersholdFTF.getValue()).doubleValue());
+    }//GEN-LAST:event_thersholdFTFPropertyChange
+
+    /**
+     * Starts animation of negative translation on X-axis
+     * @param evt 
+     */
+    private void leftTranslationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationXButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_LEFT, this);
+    }//GEN-LAST:event_leftTranslationXButtonMousePressed
+
+    /**
+     * Stops animation of negative translation on X-axis
+     * @param evt 
+     */
+    private void leftTranslationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationXButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftTranslationXButtonMouseReleased
+
+    /**
+     * Starts animation of positive translation on X-axis
+     * @param evt 
+     */
+    private void rightTranslationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationXButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_RIGHT, this);
+    }//GEN-LAST:event_rightTranslationXButtonMousePressed
+
+    /**
+     * Stops animation of positive translation on X-axis
+     * @param evt 
+     */
+    private void rightTranslationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationXButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightTranslationXButtonMouseReleased
+    
+    /**
+     * Starts animation of negative translation on Y-axis
+     * @param evt 
+     */
+    private void leftTranslationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationYButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_UP, this);
+    }//GEN-LAST:event_leftTranslationYButtonMousePressed
+
+    /**
+     * Stops animation of negative translation on Y-axis
+     * @param evt 
+     */
+    private void leftTranslationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationYButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftTranslationYButtonMouseReleased
+
+    /**
+     * Starts animation of positive translation on Y-axis
+     * @param evt 
+     */
+    private void rightTranslationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationYButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_DOWN, this);
+    }//GEN-LAST:event_rightTranslationYButtonMousePressed
+
+    /**
+     * Stops animation of positive translation on Y-axis
+     * @param evt 
+     */
+    private void rightTranslationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationYButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightTranslationYButtonMouseReleased
+
+    /**
+     * Starts animation of negative translation on Z-axis
+     * @param evt 
+     */
+    private void leftTranslationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationZButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_IN, this);
+    }//GEN-LAST:event_leftTranslationZButtonMousePressed
+
+    /**
+     * Stops animation of negative translation on Z-axis
+     * @param evt 
+     */
+    private void leftTranslationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationZButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftTranslationZButtonMouseReleased
+
+    /**
+     * Starts animation of positive translation on Z-axis
+     * @param evt 
+     */
+    private void rightTranslationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationZButtonMousePressed
+        animator.startModelAnimation(Direction.TRANSLATE_OUT, this);
+    }//GEN-LAST:event_rightTranslationZButtonMousePressed
+
+    /**
+     * Stops animation of positive translation on Z-axis
+     * @param evt 
+     */
+    private void rightTranslationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationZButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightTranslationZButtonMouseReleased
+
+    /**
+     * Starts animation of negative rotation on X-axis
+     * @param evt 
+     */
+    private void leftRotationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationXButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_LEFT, this);
+    }//GEN-LAST:event_leftRotationXButtonMousePressed
+
+    /**
+     * Stops animation of negative rotation on X-axis
+     * @param evt 
+     */
+    private void leftRotationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationXButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftRotationXButtonMouseReleased
+
+    /**
+     * Starts animation of positive rotation on X-axis
+     * @param evt 
+     */
+    private void rightRotationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationXButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_RIGHT, this);
+    }//GEN-LAST:event_rightRotationXButtonMousePressed
+
+    /**
+     * Stops animation of positive rotation on X-axis
+     * @param evt 
+     */
+    private void rightRotationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationXButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightRotationXButtonMouseReleased
+
+    /**
+     * Starts animation of negative rotation on Y-axis
+     * @param evt 
+     */
+    private void leftRotationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationYButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_UP, this);
+    }//GEN-LAST:event_leftRotationYButtonMousePressed
+
+    /**
+     * Stops animation of negative rotation on Y-axis
+     * @param evt 
+     */
+    private void leftRotationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationYButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftRotationYButtonMouseReleased
+
+    /**
+     * Starts animation of positive rotation on Y-axis
+     * @param evt 
+     */
+    private void rightRotationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationYButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_DOWN, this);
+    }//GEN-LAST:event_rightRotationYButtonMousePressed
+
+    /**
+     * Stops animation of positive rotation on Y-axis
+     * @param evt 
+     */
+    private void rightRotationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationYButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightRotationYButtonMouseReleased
+
+    /**
+     * Starts animation of negative rotation on Z-axis
+     * @param evt 
+     */
+    private void leftRotationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationZButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_IN, this);
+    }//GEN-LAST:event_leftRotationZButtonMousePressed
+
+    /**
+     * Stops animation of negative rotation on Z-axis
+     * @param evt 
+     */
+    private void leftRotationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationZButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_leftRotationZButtonMouseReleased
+
+    /**
+     * Starts animation of positive rotation on Z-axis
+     * @param evt 
+     */
+    private void rightRotationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationZButtonMousePressed
+        animator.startModelAnimation(Direction.ROTATE_OUT, this);
+    }//GEN-LAST:event_rightRotationZButtonMousePressed
+
+    /**
+     * Stops animation of positive rotation on Z-axis
+     * @param evt 
+     */
+    private void rightRotationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationZButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_rightRotationZButtonMouseReleased
+
+    /**
+     * Starts animation of scaling down
+     * @param evt 
+     */
+    private void scaleMinusButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scaleMinusButtonMousePressed
+        animator.startModelAnimation(Direction.ZOOM_OUT, this);
+    }//GEN-LAST:event_scaleMinusButtonMousePressed
+
+    /**
+     * Stops animation of scaling down
+     * @param evt 
+     */
+    private void scaleMinusButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scaleMinusButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_scaleMinusButtonMouseReleased
+
+    /**
+     * Starts animation of scaling up
+     * @param evt 
+     */
+    private void scalePlusButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scalePlusButtonMousePressed
+        animator.startModelAnimation(Direction.ZOOM_IN, this);
+    }//GEN-LAST:event_scalePlusButtonMousePressed
+
+    /**
+     * Stops animation of scaling up
+     * @param evt 
+     */
+    private void scalePlusButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scalePlusButtonMouseReleased
+        animator.stopModelAnimation(this);
+    }//GEN-LAST:event_scalePlusButtonMouseReleased
+
+    /**
+     * Lowers feature points thershold
+     * @param evt 
+     */
+    private void thresholdDownButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thresholdDownButtonActionPerformed
+        double newValue = ((Number)thersholdFTF.getValue()).doubleValue() - 0.1;
+        thersholdFTF.setValue(newValue);
+    }//GEN-LAST:event_thresholdDownButtonActionPerformed
+
+    /**
+    * Increases feature points thershold
+    * @param evt 
+    */
+    private void thersholdUpButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thersholdUpButtonActionPerformed
+        double newValue = ((Number)thersholdFTF.getValue()).doubleValue() + 0.1;
+        thersholdFTF.setValue(newValue);
+    }//GEN-LAST:event_thersholdUpButtonActionPerformed
+
+    /**
+     * Resets feature poitns thershold
+     * @param evt 
+     */
+    private void thersholdButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thersholdButtonActionPerformed
+        thersholdFTF.setValue(PostRegistrationListener.LOW_SHIFT_QUOTIENT);
+    }//GEN-LAST:event_thersholdButtonActionPerformed
+
+    /**
+     * Sets transformation shifting amount to low
+     * @param evt 
+     */
+    private void lowShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lowShiftRBActionPerformed
+        listener.setMoveModifier(PostRegistrationListener.LOW_SHIFT_QUOTIENT);
+    }//GEN-LAST:event_lowShiftRBActionPerformed
+
+    /**
+     * Sets transformation shifting amount to high
+     * @param evt 
+     */
+    private void highShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_highShiftRBActionPerformed
+        listener.setMoveModifier(PostRegistrationListener.HIGH_SHIFT_QUOTIENT);
+    }//GEN-LAST:event_highShiftRBActionPerformed
+
+    /**
+     * Toggles rendering of back face on and off
+     * @param evt 
+     */
+    private void backfaceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backfaceButtonActionPerformed
+        if (listener.isShowBackfaceActive()) {
+            backfaceButton.setText("show backface");
+            listener.setShowBackfaceActive(false);
+        } else {
+            backfaceButton.setText("hide backface");
+            listener.setShowBackfaceActive(true);   
+        }
+    }//GEN-LAST:event_backfaceButtonActionPerformed
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton applyButton;
+    private javax.swing.JToggleButton backfaceButton;
+    private javax.swing.JButton colorButton;
+    private javax.swing.JToggleButton featurePointsButton;
+    private javax.swing.JLabel featurePointsLabel;
+    private javax.swing.JPanel featurePointsPanel;
+    private javax.swing.JLabel fillLabel;
+    private javax.swing.JButton frontButton;
+    private javax.swing.JRadioButton highShiftRB;
+    private javax.swing.JLabel highlightsLabel;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JLabel jLabel4;
+    private javax.swing.JSeparator jSeparator1;
+    private javax.swing.JSeparator jSeparator10;
+    private javax.swing.JSeparator jSeparator11;
+    private javax.swing.JSeparator jSeparator2;
+    private javax.swing.JSeparator jSeparator3;
+    private javax.swing.JSeparator jSeparator4;
+    private javax.swing.JSeparator jSeparator5;
+    private javax.swing.JSeparator jSeparator6;
+    private javax.swing.JSeparator jSeparator7;
+    private javax.swing.JSeparator jSeparator8;
+    private javax.swing.JSeparator jSeparator9;
+    private javax.swing.JButton leftRotationXButton;
+    private javax.swing.JButton leftRotationYButton;
+    private javax.swing.JButton leftRotationZButton;
+    private javax.swing.JButton leftTranslationXButton;
+    private javax.swing.JButton leftTranslationYButton;
+    private javax.swing.JButton leftTranslationZButton;
+    private javax.swing.JLabel linesLabel;
+    private javax.swing.JRadioButton lowShiftRB;
+    private javax.swing.JLabel modelLabel;
+    private javax.swing.JPanel modelPanel;
+    private javax.swing.JLabel pointsLabel;
+    private javax.swing.ButtonGroup precisionGroup;
+    private javax.swing.JPanel primaryColorPanel;
+    private javax.swing.JRadioButton primaryFillRB;
+    private javax.swing.JCheckBox primaryHighlightsCB;
+    private javax.swing.JLabel primaryLabel;
+    private javax.swing.JRadioButton primaryLinesRB;
+    private javax.swing.JRadioButton primaryPointsRB;
+    private javax.swing.ButtonGroup primaryRenderModeGroup;
+    private javax.swing.JButton profileButton;
+    private javax.swing.JLabel registrationAdjustmentLabel;
+    private javax.swing.JLabel renderModeLabel;
+    private javax.swing.JButton resetAllButton;
+    private javax.swing.JButton rightRotationXButton;
+    private javax.swing.JButton rightRotationYButton;
+    private javax.swing.JButton rightRotationZButton;
+    private javax.swing.JButton rightTranslationXButton;
+    private javax.swing.JButton rightTranslationYButton;
+    private javax.swing.JButton rightTranslationZButton;
+    private javax.swing.JLabel rotatXLabel;
+    private javax.swing.JLabel rotatYLabel;
+    private javax.swing.JLabel rotatZLabel;
+    private javax.swing.JButton rotationButton;
+    private javax.swing.JPanel rotationPanel;
+    private javax.swing.JFormattedTextField rotationXFTF;
+    private javax.swing.JFormattedTextField rotationYFTF;
+    private javax.swing.JFormattedTextField rotationZFTF;
+    private javax.swing.JButton scaleButton;
+    private javax.swing.JFormattedTextField scaleFTF;
+    private javax.swing.JButton scaleMinusButton;
+    private javax.swing.JPanel scalePanel;
+    private javax.swing.JButton scalePlusButton;
+    private javax.swing.JPanel secondaryColorPanel;
+    private javax.swing.JRadioButton secondaryFillRB;
+    private javax.swing.JCheckBox secondaryHighlightsCB;
+    private javax.swing.JLabel secondaryLabel;
+    private javax.swing.JRadioButton secondaryLinesRB;
+    private javax.swing.JRadioButton secondaryPointsRB;
+    private javax.swing.ButtonGroup secondaryRenerModeGroup;
+    private javax.swing.JLabel shiftLabel;
+    private javax.swing.JPanel shiftPanel;
+    private javax.swing.JButton thersholdButton;
+    private javax.swing.JFormattedTextField thersholdFTF;
+    private javax.swing.JButton thersholdUpButton;
+    private javax.swing.JButton thresholdDownButton;
+    private javax.swing.JLabel transformationLabel;
+    private javax.swing.JPanel transformationPanel;
+    private javax.swing.JLabel translXLabel;
+    private javax.swing.JLabel translYLabel;
+    private javax.swing.JLabel translZLabel;
+    private javax.swing.JButton translationButton;
+    private javax.swing.JPanel translationPanel;
+    private javax.swing.JFormattedTextField translationXFTF;
+    private javax.swing.JFormattedTextField translationYFTF;
+    private javax.swing.JFormattedTextField translationZFTF;
+    private javax.swing.JButton transparencyButton;
+    private javax.swing.JSlider transparencySlider;
+    private javax.swing.JLabel viewLabel;
+    private javax.swing.JPanel viewPanel;
+    private javax.swing.JLabel visualizationLabel;
+    private javax.swing.JPanel visualizationPanel;
+    // End of variables declaration//GEN-END:variables
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..86f0f6650225884292f5949a799394cd5c310823
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java
@@ -0,0 +1,604 @@
+package cz.fidentis.analyst.registration;
+
+import com.jogamp.opengl.GL2;
+import cz.fidentis.analyst.feature.FeaturePoint;
+import cz.fidentis.analyst.gui.canvas.Canvas;
+import cz.fidentis.analyst.gui.scene.DrawableMesh;
+import cz.fidentis.analyst.mesh.core.MeshFacet;
+import cz.fidentis.analyst.mesh.core.MeshPoint;
+import cz.fidentis.analyst.visitors.mesh.BoundingBox;
+import java.awt.Color;
+import java.util.ArrayList;
+import javax.vecmath.Point3d;
+import javax.vecmath.Vector3d;
+
+/**
+ * Updates primary resp. secondary {@link DrawableMesh}.
+ * 
+ * @author Richard Pajersky
+ */
+
+public class PostRegistrationListener {
+    
+    /**
+     * Transformation shift is higher 
+     */
+    public static final double HIGH_SHIFT_QUOTIENT = 1;
+    
+    /**
+     * Transformation shift is lower 
+     */
+    public static final double LOW_SHIFT_QUOTIENT = 0.1;
+    
+    /**
+     * Quotient which determines translation and scale amount 
+     */
+    private static final double CHANGE_QUOTIENT = 500d;
+    
+    /**
+     * Color used as default color of primary face 
+     */
+    public static final Color DEFAULT_PRIMARY_COLOR = new Color(101, 119, 179);
+    
+    /**
+     * Color used as default color of secondary face 
+     */
+    public static final Color DEFAULT_SECONDARY_COLOR = new Color(237, 217, 76);
+    
+    /**
+     * Range of transparency 
+     */
+    public static final int TRANSPARENCY_RANGE = 10;
+    
+    /**
+     * Canvas which contains faces
+     */
+    private final Canvas canvas;
+    
+    /**
+     * Move amount on X-axis
+     */
+    private final double moveX;
+    
+    /**
+     * Move amount on Y-axis
+     */
+    private final double moveY;
+    
+    /**
+     * Move amount on Z-axis
+     */
+    private final double moveZ;
+    
+    /**
+     * Scale amount in all axis
+     */
+    private final double scaleXYZ;
+    
+    /**
+     * Primary face used for visualization
+     */
+    private final DrawableMesh primaryFace;
+    
+    /**
+     * Secondary face used for visualization and transformation
+     */
+    private final DrawableMesh secondaryFace;
+    
+    /**
+     * Transformation amount
+     */
+    private double moveModifier = LOW_SHIFT_QUOTIENT;
+    
+    /**
+     * Threshold of feature points showing too far away
+     */
+    private double featurePointsThreshold = LOW_SHIFT_QUOTIENT;
+    
+    /**
+     * Constructor
+     * First initialize {@link #canvas} then 
+     * {@link #primaryFace} and {@link #secondaryFace}
+     * Then computes movement amounts based on 
+     * {@link BoundingBox} of secondary face
+     * 
+     * @param canvas Canvas with two faces
+     * @throws IllegalArgumentException if the canvas is {@code null}
+     */
+    public PostRegistrationListener(Canvas canvas) {
+        if (canvas == null) {
+            throw new IllegalArgumentException("canvas is null");
+        }
+        this.canvas = canvas;
+        
+        ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas.getScene().getDrawables());
+        if (drawables.size() < 2) {
+            throw new IllegalArgumentException("canvas doesn't contains at least 2 models");
+        }
+        this.primaryFace = drawables.get(0);
+        this.secondaryFace = drawables.get(1);
+        setDeafultColor();
+        
+        // set move amounts
+        BoundingBox visitor = new BoundingBox();
+        this.secondaryFace.getModel().compute(visitor);
+        Point3d maxPoint = visitor.getBoundingBox().getMaxPoint();
+        Point3d minPoint = visitor.getBoundingBox().getMinPoint();
+        moveX = (maxPoint.x - minPoint.x) / CHANGE_QUOTIENT;
+        moveY = (maxPoint.y - minPoint.y) / CHANGE_QUOTIENT;
+        moveZ = (maxPoint.z - minPoint.z) / CHANGE_QUOTIENT;
+        scaleXYZ = (visitor.getBoundingBox().getMaxDiag() / (10 * CHANGE_QUOTIENT));
+    }
+    
+    /**
+     * Calculates feature points which are too far away
+     * and changes their color to red
+     * otherwise set color to default
+     */
+    private void calculateFeaturePoints() {
+        if (!primaryFace.isRenderFeaturePoints()) {
+            return;
+        }
+        ArrayList<Color> color = (ArrayList)secondaryFace.getFeaturePointsColor();
+        for (int i = 0; i < primaryFace.getFeaturePoints().size(); i++) {
+            FeaturePoint primary = primaryFace.getFeaturePoints().get(i);
+            FeaturePoint secondary = secondaryFace.getFeaturePoints().get(i);
+            Point3d transformed = new Point3d(secondary.getX(), secondary.getY(), secondary.getZ());
+            transformPoint(transformed);
+            double distance = Math.sqrt(
+                Math.pow(transformed.x - primary.getX(), 2) + 
+                Math.pow(transformed.y - primary.getY(), 2) + 
+                Math.pow(transformed.z - primary.getZ(), 2));
+            if (distance > featurePointsThreshold) {
+                color.set(i, Color.RED);
+            } else {
+                color.set(i, DEFAULT_SECONDARY_COLOR);
+            }
+        }
+    }
+    
+    /**
+     * Applies carried out transformations
+     * first on {@link #secondaryFace}
+     * and then on {@link #secondaryFace} feature points
+     */
+    public void transformFace() {
+        for (MeshFacet transformedFacet : secondaryFace.getFacets()) {
+            for (MeshPoint comparedPoint : transformedFacet.getVertices()) {
+                transformPoint(comparedPoint.getPosition());
+            }
+        }
+        for (int i = 0; i < secondaryFace.getFeaturePoints().size(); i++) {
+            FeaturePoint point = secondaryFace.getFeaturePoints().get(i);
+            Point3d transformed = new Point3d(point.getX(), point.getY(), point.getZ());
+            transformPoint(transformed);
+            point = new FeaturePoint(transformed.x, transformed.y, 
+                    transformed.z, point.getFeaturePointType());
+            secondaryFace.getFeaturePoints().set(i, point);
+        }
+        canvas.renderScene();
+    }
+    
+    /**
+     * Transforms point based on transformation info from {@link #secondaryFace}
+     * 
+     * @param point Point to transform
+     */
+    public void transformPoint(Point3d point) {
+        if (point == null) {
+            throw new IllegalArgumentException("point is null");
+        }
+
+        Point3d newPoint = new Point3d(0, 0, 0);
+        double quotient;
+
+        // rotate around X
+        quotient = Math.toRadians(secondaryFace.getRotation().x);
+        if (!Double.isNaN(quotient)) {
+            double cos = Math.cos(quotient);
+            double sin = Math.sin(quotient);
+            newPoint.y = point.y * cos - point.z * sin;
+            newPoint.z = point.z * cos + point.y * sin;
+            point.y = newPoint.y;
+            point.z = newPoint.z;
+        }
+
+        // rotate around Y
+        quotient = Math.toRadians(secondaryFace.getRotation().y);
+        if (!Double.isNaN(quotient)) {
+            double cos = Math.cos(quotient);
+            double sin = Math.sin(quotient);
+            newPoint.x = point.x * cos + point.z * sin;
+            newPoint.z = point.z * cos - point.x * sin;
+            point.x = newPoint.x;
+            point.z = newPoint.z;
+        }
+
+        // rotate around Z
+        quotient = Math.toRadians(secondaryFace.getRotation().z);
+        if (!Double.isNaN(quotient)) {
+            double cos = Math.cos(quotient);
+            double sin = Math.sin(quotient);
+            newPoint.x = point.x * cos - point.y * sin;
+            newPoint.y = point.y * cos + point.x * sin;
+            point.x = newPoint.x;
+            point.y = newPoint.y;
+        }
+
+        // translate
+        point.x += secondaryFace.getTranslation().x;
+        point.y += secondaryFace.getTranslation().y;
+        point.z += secondaryFace.getTranslation().z;
+
+        // scale
+        point.x *= 1 + secondaryFace.getScale().x;
+        point.y *= 1 + secondaryFace.getScale().y;
+        point.z *= 1 + secondaryFace.getScale().z;
+    }
+    
+    /**
+     * Sets {@link #primaryFace} to {@link #DEFAULT_PRIMARY_COLOR} and
+     * {@link #secondaryFace} to {@link #DEFAULT_SECONDARY_COLOR}
+     */
+    public final void setDeafultColor() {
+        primaryFace.setColor(DEFAULT_PRIMARY_COLOR);
+        secondaryFace.setColor(DEFAULT_SECONDARY_COLOR);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets the color of {@link #primaryFace}
+     * @param color Color
+     */
+    public void setPrimaryColor(Color color) {
+        primaryFace.setColor(color);
+        canvas.renderScene();
+    }
+
+    /**
+     * Sets the color of {@link #secondaryFace}
+     * @param color Color
+     */
+    public void setSecondaryColor(Color color) {
+        secondaryFace.setColor(color);
+        canvas.renderScene();
+    }
+    
+    /**
+     * @return {@link Color} of {@link #primaryFace}
+     */
+    public Color getPrimaryColor() {
+        return primaryFace.getColor();
+    }
+
+    /**
+     * @return {@link Color} of {@link #secondaryFace}
+     */
+    public Color getSecondaryColor() {
+        return secondaryFace.getColor();
+    }
+    
+    /**
+     * Sets the transparency of {@link #primaryFace} or {@link #secondaryFace}
+     * based on the inputed value and {@link #TRANSPARENCY_RANGE}
+     * @param value Value
+     */
+    public void setTransparency(int value) {
+        
+        if (value == TRANSPARENCY_RANGE) {
+            setPrimaryTransparency(1);
+            setSecondaryTransparency(1);
+        }
+        if (value < TRANSPARENCY_RANGE) {
+            setPrimaryTransparency(value / 10f);
+            setSecondaryTransparency(1);
+        }
+        if (value > TRANSPARENCY_RANGE) {
+            setSecondaryTransparency((2 * TRANSPARENCY_RANGE - value) / 10f);
+            setPrimaryTransparency(1);
+        }
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets transparency of {@link #primaryFace}
+     * 
+     * @param transparency Transparency value
+     */
+    public void setPrimaryTransparency(float transparency) {
+        primaryFace.setTransparency(transparency);
+    }
+
+    /**
+     * Sets transparency of {@link #secondaryFace}
+     * 
+     */
+    public void setSecondaryTransparency(float transparency) {
+        secondaryFace.setTransparency(transparency);
+    }
+    
+    /**
+     * @return Transparency of {@link #primaryFace}
+     */
+    public double getPrimaryTransparency() {
+        return primaryFace.getTransparency();
+    }
+
+    /**
+     * @return Transparency of {@link #secondaryFace}
+     */
+    public double getSecondaryTransparency() {
+        return secondaryFace.getTransparency();
+    }
+    
+    /**
+     * Sets camera to show face from the front
+     */
+    public void setFrontFacing() {
+        canvas.getCamera().initLocation();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets camera to show face from the side
+     */
+    public void setSideFacing() {
+        canvas.getCamera().initLocation();
+        canvas.getCamera().rotate(0, 90);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Resets translation of {@link #secondaryFace}
+     */
+    public void resetTranslation() {
+        secondaryFace.setTranslation(new Vector3d(0, 0, 0));
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Resets rotation of {@link #secondaryFace}
+     */
+    public void resetRotation() {
+        secondaryFace.setRotation(new Vector3d(0, 0, 0));
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+
+    /**
+     * Resets scale of {@link #secondaryFace}
+     */
+    public void resetScale() {
+        secondaryFace.setScale(new Vector3d(0, 0, 0));
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets translation of {@link #secondaryFace} on X-axis
+     * @param value Translation amount
+     */
+    public void setXTranslation(double value) {
+        secondaryFace.getTranslation().x = value * moveX;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets translation of {@link #secondaryFace} on Y-axis
+     * @param value Translation amount
+     */
+    public void setYTranslation(double value) {
+        secondaryFace.getTranslation().y = value * moveY;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+        
+    /**
+     * Sets translation of {@link #secondaryFace} on Z-axis
+     * @param value Translation amount
+     */
+    public void setZTranslation(double value) {
+        secondaryFace.getTranslation().z = value * moveZ;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets rotation of {@link #secondaryFace} around X-axis
+     * @param value Translation amount
+     */
+    public void setXRotation(double value) {
+        secondaryFace.getRotation().x = value * moveX;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets rotation of {@link #secondaryFace} around Y-axis
+     * @param value Translation amount
+     */
+    public void setYRotation(double value) {
+        secondaryFace.getRotation().y = value * moveY;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets rotation of {@link #secondaryFace} around Z-axis
+     * @param value Translation amount
+     */    
+    public void setZRotation(double value) {
+        secondaryFace.getRotation().z = value * moveZ;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets scale of {@link #secondaryFace}
+     * @param value Translation amount
+     */
+    public void setScale(double value) {
+        secondaryFace.getScale().x = value * scaleXYZ;
+        secondaryFace.getScale().y = value * scaleXYZ;
+        secondaryFace.getScale().z = value * scaleXYZ;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets color of {@link #primaryFace} highlights to white
+     */
+    public void setPrimaryHighlights() {
+        primaryFace.setHighlights(new Color(1, 1, 1));
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets color of {@link #secondaryFace} highlights to white
+     */
+    public void setSecondaryHighlights() {
+        secondaryFace.setHighlights(new Color(1, 1, 1));
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets color of {@link #primaryFace} highlights to black
+     */
+    public void removePrimaryHighlights() {
+        primaryFace.setHighlights(new Color(0, 0, 0));
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets color of {@link #secondaryFace} highlights to black
+     */
+    public void removeSecondaryHighlights() {
+        secondaryFace.setHighlights(new Color(0, 0, 0));
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #primaryFace} to be rendered as lines
+     */
+    public void setPrimaryLines() {
+        primaryFace.setRenderMode(GL2.GL_LINE);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #secondaryFace} to be rendered as lines
+     */
+    public void setSecondaryLines() {
+        secondaryFace.setRenderMode(GL2.GL_LINE);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #primaryFace} to be rendered as points
+     */
+    public void setPrimaryPoints() {
+        primaryFace.setRenderMode(GL2.GL_POINT);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #secondaryFace} to be rendered as points
+     */
+    public void setSecondaryPoints() {
+        secondaryFace.setRenderMode(GL2.GL_POINT);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #primaryFace} to be rendered solid
+     */
+    public void setPrimaryFill() {
+        primaryFace.setRenderMode(GL2.GL_FILL);
+        canvas.renderScene();
+    }
+    
+    /**
+     * Sets {@link #secondaryFace} to be rendered solid
+     */
+    public void setSecondaryFill() {
+        secondaryFace.setRenderMode(GL2.GL_FILL);
+        canvas.renderScene();
+    }
+    
+    /**
+     * @return {@code true} if feature points are being rendered
+     */
+    public boolean areFeaturePointsActive() {
+        return primaryFace.isRenderFeaturePoints();
+    }
+    
+    /**
+     * Sets feature points of {@link #primaryFace} and {@link #secondaryFace}
+     * to given state
+     * @param state State
+     */
+    public void setFeaturePointsActive(boolean state) {
+        primaryFace.setRenderFeaturePoints(state);
+        secondaryFace.setRenderFeaturePoints(state);
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+
+    /**
+     * @return Value of {@link #featurePointsThreshold}
+     */
+    public double getFeaturePointsThreshold() {
+        return featurePointsThreshold;
+    }
+
+    /**
+     * Sets {@link #featurePointsThreshold} to given value
+     * @param featurePointsThreshold Threshold
+     */
+    public void setFeaturePointsThreshold(double featurePointsThreshold) {
+        this.featurePointsThreshold = featurePointsThreshold;
+        calculateFeaturePoints();
+        canvas.renderScene();
+    }
+
+    /**
+     * @return Value of {@link #moveModifier}
+     */
+    public double getMoveModifier() {
+        return moveModifier;
+    }
+
+    /**
+     * Sets {@link #moveModifier} to given value
+     * @param moveModifier Modifier
+     */
+    public void setMoveModifier(double moveModifier) {
+        this.moveModifier = moveModifier;
+    }
+
+    /**
+     * @return {@link #canvas}
+     */
+    public Canvas getCanvas() {
+        return canvas;
+    }
+    
+    /**
+     * @return {@code true} if back face is being shown
+     */
+    public boolean isShowBackfaceActive() {
+        return primaryFace.isShowBackface();
+    }
+    
+    /**
+     * Sets backface to be rendered or not based on the given state
+     * @param state State
+     */
+    public void setShowBackfaceActive(boolean state) {
+        primaryFace.setShowBackface(state);
+        secondaryFace.setShowBackface(state);
+        canvas.renderScene();
+    }
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form
similarity index 71%
rename from GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form
rename to GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form
index aacf85556c0d9025093eace3a29d7d31ea369834..e0ca68451f5a157b4645b7e68075753bc4c5c206 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form
@@ -22,6 +22,11 @@
 -->
 
 <Form version="1.4" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <Properties>
+    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[405, 600]"/>
+    </Property>
+  </Properties>
   <AuxValues>
     <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
     <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
@@ -38,37 +43,36 @@
     <DimensionLayout dim="0">
       <Group type="103" groupAlignment="0" attributes="0">
           <Group type="102" alignment="1" attributes="0">
-              <EmptySpace pref="549" max="32767" attributes="0"/>
-              <Component id="postRegistrationCP1" min="-2" max="-2" attributes="0"/>
+              <Component id="canvas1" pref="309" max="32767" attributes="0"/>
               <EmptySpace max="-2" attributes="0"/>
-          </Group>
-          <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="0" attributes="0">
-                  <Component id="canvas1" min="-2" pref="543" max="-2" attributes="0"/>
-                  <EmptySpace min="0" pref="326" max="32767" attributes="0"/>
-              </Group>
+              <Component id="postRegistrationCP1" min="-2" max="-2" attributes="0"/>
           </Group>
       </Group>
     </DimensionLayout>
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="1" attributes="0">
-              <Component id="postRegistrationCP1" pref="533" max="32767" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-          <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
-              <Group type="102" alignment="0" attributes="0">
-                  <Component id="canvas1" pref="533" max="32767" attributes="0"/>
-                  <EmptySpace max="-2" attributes="0"/>
-              </Group>
-          </Group>
+          <Component id="canvas1" pref="708" max="32767" attributes="0"/>
+          <Component id="postRegistrationCP1" alignment="0" max="32767" attributes="0"/>
       </Group>
     </DimensionLayout>
   </Layout>
   <SubComponents>
-    <Component class="cz.fidentis.analyst.gui.tab.PostRegistrationCP" name="postRegistrationCP1">
-    </Component>
     <Component class="cz.fidentis.analyst.gui.canvas.Canvas" name="canvas1">
     </Component>
+    <Container class="cz.fidentis.analyst.registration.PostRegistrationCP" name="postRegistrationCP1">
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <EmptySpace min="0" pref="340" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+    </Container>
   </SubComponents>
 </Form>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java
similarity index 59%
rename from GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java
rename to GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java
index 561e0009a9e3d4ee9644d5327b2412aa86a5b120..aeca8a319941f10492a4ebf1bc3c96480fbf7546 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java
@@ -1,22 +1,12 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package cz.fidentis.analyst.gui;
+package cz.fidentis.analyst.registration;
 
 import cz.fidentis.analyst.face.HumanFace;
+import cz.fidentis.analyst.feature.FeaturePoint;
 import cz.fidentis.analyst.gui.scene.DrawableMesh;
-import cz.fidentis.analyst.gui.tab.PostRegistrationCP;
 import cz.fidentis.analyst.mesh.io.ModelFileFilter;
-import java.awt.Color;
 import java.awt.Dimension;
-import java.io.File;
-import java.io.IOException;
-import java.util.AbstractMap;
 import java.util.ArrayList;
 import javax.swing.JFileChooser;
-import javax.vecmath.Point3d;
 import org.netbeans.api.settings.ConvertAsProperties;
 import org.openide.awt.ActionID;
 import org.openide.awt.ActionReference;
@@ -24,44 +14,49 @@ import org.openide.windows.TopComponent;
 import org.openide.util.NbBundle.Messages;
 
 /**
- * Top component which displays something.
+ * Top component used to test registration adjustment.
+ * 
+ * @author Richard Pajersky
  */
 @ConvertAsProperties(
         dtd = "-//cz.fidentis.analyst.gui//RegistrationTest//EN",
         autostore = false
 )
 @TopComponent.Description(
-        preferredID = "RegistrationTestTopComponent",
+        preferredID = "PostRegistrationTestTC",
         //iconBase="SET/PATH/TO/ICON/HERE",
         persistenceType = TopComponent.PERSISTENCE_ALWAYS
 )
 @TopComponent.Registration(mode = "properties", openAtStartup = false)
-@ActionID(category = "Window", id = "cz.fidentis.analyst.gui.RegistrationTestTopComponent")
+@ActionID(category = "Window", id = "cz.fidentis.analyst.gui.PostRegistrationTestTC")
 @ActionReference(path = "Menu/Window" /*, position = 333 */)
 @TopComponent.OpenActionRegistration(
         displayName = "#CTL_RegistrationTestAction",
-        preferredID = "RegistrationTestTopComponent"
+        preferredID = "PostRegistrationTestTC"
 )
 @Messages({
     "CTL_RegistrationTestAction=RegistrationTest",
     "CTL_RegistrationTestTopComponent=RegistrationTest Window",
     "HINT_RegistrationTestTopComponent=This is a RegistrationTest window"
 })
-public final class RegistrationTestTopComponent extends TopComponent {
+public final class PostRegistrationTestTC extends TopComponent {
 
-    public RegistrationTestTopComponent() {
+    /**
+     * Constructor
+     */
+    public PostRegistrationTestTC() {
         initComponents();
         setName(Bundle.CTL_RegistrationTestTopComponent());
         setToolTipText(Bundle.HINT_RegistrationTestTopComponent());
         
         HumanFace primary = null;
         HumanFace secondary = null;
-        // choose models
+        
+        /* choose models */
         String[] extensions = new String[2];
         extensions[0] = "obj";
         extensions[1] = "OBJ";
         ModelFileFilter filter = new ModelFileFilter(extensions, "*.obj");
-        
         JFileChooser jFileChooser1 = new JFileChooser();
         jFileChooser1.setPreferredSize(new Dimension (800,500));
         jFileChooser1.addChoosableFileFilter(filter);
@@ -75,23 +70,40 @@ public final class RegistrationTestTopComponent extends TopComponent {
         try {
             secondary = new HumanFace(jFileChooser1.getSelectedFile());
         } catch (Exception ex) {}
+
+        canvas1.initScene(primary, secondary); // init canvas
         
-        canvas1.initScene(primary, secondary);
-        // feature points test
+        /* feature points test */
         ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas1.getScene().getDrawables());
         DrawableMesh primaryFace = drawables.get(0);
         DrawableMesh secondaryFace = drawables.get(1);
-        ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> primar = new ArrayList<>();
-        primar.add(new AbstractMap.SimpleEntry<>(new Point3d(100, 0, 0), Color.BLUE));
+        
+        /*
+        FeaturePointImportExportService sv = new FeaturePointImportExportService();
+        
+        jFileChooser1.showOpenDialog(this);
+        jFileChooser1.setDialogTitle("Import obj file");
+        try {
+            File file = jFileChooser1.getSelectedFile();
+            primaryFace.setFeaturePoints(sv.importFeaturePoints(file.getPath(), file.getName()).get());
+        } catch (Exception ex) {}
+        jFileChooser1.showOpenDialog(this);
+        jFileChooser1.setDialogTitle("Import obj file");
+        try {
+            File file = jFileChooser1.getSelectedFile();
+            secondaryFace.setFeaturePoints(sv.importFeaturePoints(file.getPath(), file.getName()).get());
+        } catch (Exception ex) {}*/
+        
+        ArrayList<FeaturePoint> primar = new ArrayList<>();
+        primar.add(new FeaturePoint(100, 0, 0, null));
         primaryFace.setFeaturePoints(primar);
-        ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> secondar = new ArrayList<>();
-        secondar.add(new AbstractMap.SimpleEntry<>(new Point3d(101, 0, 0), Color.YELLOW));
+        
+        ArrayList<FeaturePoint> secondar = new ArrayList<>();
+        secondar.add(new FeaturePoint(101, 0, 0, null));
         secondaryFace.setFeaturePoints(secondar);
         
-        postRegistrationCP1.initPostRegistrationCP(new RegistrationCPEventListener(canvas1));
-
+        postRegistrationCP1.initPostRegistrationCP(new PostRegistrationListener(canvas1));
         
-
     }
 
     /**
@@ -102,37 +114,41 @@ public final class RegistrationTestTopComponent extends TopComponent {
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
 
-        postRegistrationCP1 = new cz.fidentis.analyst.gui.tab.PostRegistrationCP();
         canvas1 = new cz.fidentis.analyst.gui.canvas.Canvas();
+        postRegistrationCP1 = new cz.fidentis.analyst.registration.PostRegistrationCP();
+
+        setPreferredSize(new java.awt.Dimension(405, 600));
+
+        javax.swing.GroupLayout postRegistrationCP1Layout = new javax.swing.GroupLayout(postRegistrationCP1);
+        postRegistrationCP1.setLayout(postRegistrationCP1Layout);
+        postRegistrationCP1Layout.setHorizontalGroup(
+            postRegistrationCP1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 340, Short.MAX_VALUE)
+        );
+        postRegistrationCP1Layout.setVerticalGroup(
+            postRegistrationCP1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 0, Short.MAX_VALUE)
+        );
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
         this.setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                .addContainerGap(549, Short.MAX_VALUE)
-                .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap())
-            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                .addGroup(layout.createSequentialGroup()
-                    .addComponent(canvas1, javax.swing.GroupLayout.PREFERRED_SIZE, 543, javax.swing.GroupLayout.PREFERRED_SIZE)
-                    .addGap(0, 326, Short.MAX_VALUE)))
+                .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, 533, Short.MAX_VALUE)
-                .addContainerGap())
-            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                .addGroup(layout.createSequentialGroup()
-                    .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 533, Short.MAX_VALUE)
-                    .addContainerGap()))
+            .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 708, Short.MAX_VALUE)
+            .addComponent(postRegistrationCP1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
     }// </editor-fold>//GEN-END:initComponents
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private cz.fidentis.analyst.gui.canvas.Canvas canvas1;
-    private cz.fidentis.analyst.gui.tab.PostRegistrationCP postRegistrationCP1;
+    private cz.fidentis.analyst.registration.PostRegistrationCP postRegistrationCP1;
     // End of variables declaration//GEN-END:variables
     @Override
     public void componentOpened() {
diff --git a/GUI/src/main/resources/add-line.png b/GUI/src/main/resources/add-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bdec92d9fd9f374c93dede972a7c3142473403b
Binary files /dev/null and b/GUI/src/main/resources/add-line.png differ
diff --git a/GUI/src/main/resources/arrow-left-s-line.png b/GUI/src/main/resources/arrow-left-s-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e1b29e5762b88b84515113ea8fb0d1e61ecc0ea
Binary files /dev/null and b/GUI/src/main/resources/arrow-left-s-line.png differ
diff --git a/GUI/src/main/resources/arrow-right-s-line.png b/GUI/src/main/resources/arrow-right-s-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..44e603c907aa6ea11ea5f54747c25ed011d2f6e3
Binary files /dev/null and b/GUI/src/main/resources/arrow-right-s-line.png differ
diff --git a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties
index 6812c2290f1c65b96c721496d4038f0ff2d9fb1e..44efbbfa1ef21cbbfc0cd1690473136b9fe322f0 100644
--- a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties
+++ b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties
@@ -1,90 +1,10 @@
 
 SingleFaceTab.jButton1.text=
-PostRegistrationCP.leftRotationXButton.text=<<
-PostRegistrationCP.rotationXFTF.toolTipText=
 PostRegistrationCP.rotationXFTF.text=0
-PostRegistrationCP.rightTranslationZButton.text=>>
-PostRegistrationCP.rightTranslationYButton.text=>>
-PostRegistrationCP.leftTranslationZButton.text=<<
-PostRegistrationCP.leftTranslationYButton.text=<<
-PostRegistrationCP.applyButton.text=Apply changes
-PostRegistrationCP.scaleButton.toolTipText=reset scale
-PostRegistrationCP.scaleButton.text=reset
-PostRegistrationCP.rotationButton.toolTipText=reset rotation
-PostRegistrationCP.rotationButton.text=reset
 PostRegistrationCP.translationZFTF.text=0
 PostRegistrationCP.translationYFTF.text=0
-PostRegistrationCP.translationXFTF.toolTipText=
 PostRegistrationCP.translationXFTF.text=0
-PostRegistrationCP.leftTranslationXButton.text=<<
-PostRegistrationCP.translationButton.toolTipText=reset translation
-PostRegistrationCP.translationButton.text=reset
-PostRegistrationCP.profileButton.toolTipText=model profile view
-PostRegistrationCP.profileButton.text=side
-PostRegistrationCP.frontButton.toolTipText=model front view
-PostRegistrationCP.frontButton.text=front
-PostRegistrationCP.featurePointsButton.text=show
-PostRegistrationCP.viewLabel.text=View:
-PostRegistrationCP.modelLabel.text=Model:
-PostRegistrationCP.transparencyButton.toolTipText=reset transparency
-PostRegistrationCP.transparencyButton.text=opacity
-PostRegistrationCP.primaryLabel.text=primary
-PostRegistrationCP.jLabel1.text=Registration adjustment
-PostRegistrationCP.secondaryLabel.toolTipText=
-PostRegistrationCP.secondaryLabel.text=secondary
-PostRegistrationCP.transparencySlider.toolTipText=sets model transparency
-PostRegistrationCP.secondaryColorPanel.toolTipText=sets color of secondary model
-PostRegistrationCP.primaryColorPanel.toolTipText=sets color of primary model
-PostRegistrationCP.scalePlusButton.text=++
-PostRegistrationCP.scaleMinusButton.text=- -
-PostRegistrationCP.scaleFTF.toolTipText=
 PostRegistrationCP.scaleFTF.text=0
 PostRegistrationCP.rotationZFTF.text=0
 PostRegistrationCP.rotationYFTF.text=0
-PostRegistrationCP.rightRotationZButton.text=>>
-PostRegistrationCP.rightRotationYButton.text=>>
-PostRegistrationCP.leftRotationZButton.text=<<
-PostRegistrationCP.leftRotationYButton.text=<<
-PostRegistrationCP.rightRotationXButton.text=>>
-PostRegistrationCP.jLabel2.text=Translation:
-PostRegistrationCP.jLabel3.text=Rotation:
-PostRegistrationCP.jLabel4.text=Scale:
-PostRegistrationCP.resetAllButton.text=reset all
-PostRegistrationCP.leftSmallTranslXButton.text=<
-PostRegistrationCP.rightSmallTranslYButton.text=>
-PostRegistrationCP.rightSmallTranslXButton.text=>
-PostRegistrationCP.leftSmallTranslYButton.text=<
-PostRegistrationCP.leftSmallTranslZButton.text=<
-PostRegistrationCP.rightSmallTranslZButton.text=>
-PostRegistrationCP.leftSmallRotaXButton.text=<
-PostRegistrationCP.leftSmallRotaYButton.text=<
-PostRegistrationCP.leftSmallRotaZButton.text=<
-PostRegistrationCP.rightSmallRotaXButton.text=>
-PostRegistrationCP.rightSmallRotaYButton.text=>
-PostRegistrationCP.rightSmallRotaZButton.text=>
-PostRegistrationCP.translXLabel.text=horizontal
-PostRegistrationCP.translYLabel.text=vertical
-PostRegistrationCP.translZLabel.text=front-back
-PostRegistrationCP.rotatXLabel.text=X
-PostRegistrationCP.rotatYLabel.text=Y
-PostRegistrationCP.rotatZLabel.text=Z
-PostRegistrationCP.scaleSmallPlusButton.text=+
-PostRegistrationCP.scaleSmallMinusButton.text=-
-PostRegistrationCP.rightTranslationXButton.text=>>
-PostRegistrationCP.highlightsLabel.text=highlights
-PostRegistrationCP.primaryHighlightsCB.text=
-PostRegistrationCP.secondaryHighlightsCB.text=
-PostRegistrationCP.renderModeLabel.text=render mode
-PostRegistrationCP.fillLabel.text=fill
-PostRegistrationCP.linesLabel.text=lines
-PostRegistrationCP.pointsLabel.text=points
-PostRegistrationCP.primaryFillRB.text=
-PostRegistrationCP.secondaryFillRB.text=
-PostRegistrationCP.primaryLinesRB.text=
-PostRegistrationCP.secondaryLinesRB.text=
-PostRegistrationCP.secondaryPointsRB.text=
-PostRegistrationCP.primaryPointsRB.text=
-PostRegistrationCP.colorButton.toolTipText=reset colors
-PostRegistrationCP.colorButton.text=color
-PostRegistrationCP.transformationLabel.text=Transformation
-PostRegistrationCP.featurePointsLabel.text=Feature points:
+PostRegistrationCP.jFormattedTextField1.text=jFormattedTextField1
diff --git a/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..6953b62b7fb16e67a398aad8372a4fb03f3960d4
--- /dev/null
+++ b/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties
@@ -0,0 +1,84 @@
+# To change this license header, choose License Headers in Project Properties.
+# To change this template file, choose Tools | Templates
+# and open the template in the editor.
+
+PostRegistrationCP.rightRotationXButton.text=
+PostRegistrationCP.viewLabel.text=View:
+PostRegistrationCP.frontButton.toolTipText=model front view
+PostRegistrationCP.frontButton.text=front
+PostRegistrationCP.profileButton.toolTipText=model profile view
+PostRegistrationCP.profileButton.text=side
+PostRegistrationCP.leftRotationZButton.text=
+PostRegistrationCP.primaryFillRB.text=
+PostRegistrationCP.rightRotationYButton.text=
+PostRegistrationCP.secondaryLinesRB.text=
+PostRegistrationCP.rightRotationZButton.text=
+PostRegistrationCP.secondaryPointsRB.text=
+PostRegistrationCP.primaryPointsRB.text=
+PostRegistrationCP.secondaryFillRB.text=
+PostRegistrationCP.rotationButton.toolTipText=reset rotation
+PostRegistrationCP.rotationButton.text=
+PostRegistrationCP.primaryLinesRB.text=
+PostRegistrationCP.rotatXLabel.text=X
+PostRegistrationCP.rotatYLabel.text=Y
+PostRegistrationCP.rotatZLabel.text=Z
+PostRegistrationCP.leftRotationXButton.text=
+PostRegistrationCP.primaryColorPanel.toolTipText=sets color of primary model
+PostRegistrationCP.secondaryColorPanel.toolTipText=sets color of secondary model
+PostRegistrationCP.transparencySlider.toolTipText=sets model transparency
+PostRegistrationCP.secondaryLabel.toolTipText=
+PostRegistrationCP.secondaryLabel.text=secondary
+PostRegistrationCP.leftRotationYButton.text=
+PostRegistrationCP.primaryLabel.text=primary
+PostRegistrationCP.highlightsLabel.text=highlights
+PostRegistrationCP.leftTranslationZButton.text=
+PostRegistrationCP.primaryHighlightsCB.text=
+PostRegistrationCP.leftTranslationXButton.text=
+PostRegistrationCP.secondaryHighlightsCB.text=
+PostRegistrationCP.rightTranslationZButton.text=
+PostRegistrationCP.renderModeLabel.text=render mode
+PostRegistrationCP.translYLabel.text=vertical
+PostRegistrationCP.fillLabel.text=fill
+PostRegistrationCP.translZLabel.text=front-back
+PostRegistrationCP.translXLabel.text=horizontal
+PostRegistrationCP.rightTranslationYButton.text=
+PostRegistrationCP.applyButton.toolTipText=apply transformations
+PostRegistrationCP.applyButton.text=Apply changes
+PostRegistrationCP.colorButton.toolTipText=reset colors
+PostRegistrationCP.colorButton.text=color
+PostRegistrationCP.highShiftRB.toolTipText=set high shifting amount
+PostRegistrationCP.highShiftRB.text=high
+PostRegistrationCP.linesLabel.text=lines
+PostRegistrationCP.lowShiftRB.toolTipText=set low shifting amount
+PostRegistrationCP.lowShiftRB.text=low
+PostRegistrationCP.transparencyButton.toolTipText=reset transparency
+PostRegistrationCP.transparencyButton.text=opacity
+PostRegistrationCP.shiftLabel.toolTipText=transformation amount
+PostRegistrationCP.shiftLabel.text=shift
+PostRegistrationCP.pointsLabel.text=points
+PostRegistrationCP.modelLabel.text=Model:
+PostRegistrationCP.leftTranslationYButton.text=
+PostRegistrationCP.translationXFTF.toolTipText=
+PostRegistrationCP.rightTranslationXButton.text=
+PostRegistrationCP.visualizationLabel.text=Visualization
+PostRegistrationCP.jLabel2.text=Translation:
+PostRegistrationCP.translationButton.toolTipText=reset translation
+PostRegistrationCP.translationButton.text=
+PostRegistrationCP.transformationLabel.text=Transformation
+PostRegistrationCP.registrationAdjustmentLabel.text=Registration adjustment
+PostRegistrationCP.featurePointsLabel.text=Feature points:
+PostRegistrationCP.resetAllButton.toolTipText=reset all transformations
+PostRegistrationCP.resetAllButton.text=reset all
+PostRegistrationCP.thersholdButton.text=thershold
+PostRegistrationCP.scaleButton.toolTipText=reset scale
+PostRegistrationCP.scaleButton.text=
+PostRegistrationCP.thersholdUpButton.text=
+PostRegistrationCP.scaleFTF.toolTipText=
+PostRegistrationCP.thresholdDownButton.text=
+PostRegistrationCP.scaleMinusButton.text=
+PostRegistrationCP.featurePointsButton.text=show
+PostRegistrationCP.scalePlusButton.text=
+PostRegistrationCP.jLabel4.text=Scale:
+PostRegistrationCP.backfaceButton.text=hide backface
+PostRegistrationCP.jLabel3.text=Rotation:
+PostRegistrationCP.rotationXFTF.toolTipText=
diff --git a/GUI/src/main/resources/refresh-line.png b/GUI/src/main/resources/refresh-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..68d7b2f1601b67f6e0cd171b2a03a81d1d9a1317
Binary files /dev/null and b/GUI/src/main/resources/refresh-line.png differ
diff --git a/GUI/src/main/resources/restart-line.png b/GUI/src/main/resources/restart-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c3c65ec8f540dc3e8a78c1aa56b3d0210a20bdd
Binary files /dev/null and b/GUI/src/main/resources/restart-line.png differ
diff --git a/GUI/src/main/resources/subtract-line.png b/GUI/src/main/resources/subtract-line.png
new file mode 100644
index 0000000000000000000000000000000000000000..1050607dd0fde9ef1fa0a2b1bfd1a552ce4ec343
Binary files /dev/null and b/GUI/src/main/resources/subtract-line.png differ
diff --git a/MeshModel/pom.xml b/MeshModel/pom.xml
index 33f1efcc3d2f86834d051c0b6df40385f1d54d29..762834084c81ccc852da5fd2cd16d6505315729f 100644
--- a/MeshModel/pom.xml
+++ b/MeshModel/pom.xml
@@ -21,6 +21,7 @@
                        <publicPackage>cz.fidentis.analyst.mesh.io.*</publicPackage>
                        <publicPackage>cz.fidentis.analyst.mesh.*</publicPackage>
                        <publicPackage>cz.fidentis.analyst.kdtree.*</publicPackage>
+                       <publicPackage>cz.fidentis.analyst.feature.*</publicPackage>
                        <!--<publicPackage>cz.fidentis.analyst.mesh.core.MeshFacet</publicPackage>-->
                        <!--<publicPackage>cz.fidentis.analyst.mesh.core.MeshPoint</publicPackage>-->
                    </publicPackages>