diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java
index c23d6018342da698f45d9b88e71e55b8f2511b3c..ca70058489ca36da5aa0d1041ab23a97fbf46767 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java
@@ -107,4 +107,16 @@ public class RegistrationCPEventListener {
     public Color getDefaultSecondaryColor() {
         return defaultSecondaryColor;
     }
+    
+    public void resetTranslation() {
+        secondaryFace.resetTranslation();
+    }
+    
+    public void resetRotation() {
+        secondaryFace.resetRotation();
+    }
+
+    public void resetScale() {
+        secondaryFace.resetScale();
+    }
 }
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 4b2895606a522fcecb56193d902e5ced7c8d7296..9faa2a24fdcc795cca20beae2b08dd8f6ac87ef0 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
@@ -4,6 +4,7 @@ import cz.fidentis.analyst.mesh.core.MeshFacet;
 import cz.fidentis.analyst.mesh.core.MeshModel;
 import java.awt.Color;
 import java.util.List;
+import javax.vecmath.Vector3f;
 
 /**
  * A drawable triangular mesh, i.e., a mesh model with drawing information like 
@@ -21,6 +22,9 @@ public class DrawableMesh {
     // TO DO - R. Pajersky: add transformation attributes and methods
     private Color color = new Color(255, 255, 255);
     private float transparency = 1f;
+    private Vector3f translation = new Vector3f(0, 0, 0);
+    private Vector3f rotation = new Vector3f(0, 0, 0);
+    private Vector3f scale = new Vector3f(0, 0, 0);
     
     /**
      * Constructor. 
@@ -81,4 +85,76 @@ public class DrawableMesh {
     public void setTransparency(float transparency) {
         this.transparency = transparency;
     }
+    
+    public Vector3f getTranslation() {
+        return translation;
+    }
+
+    public void setTranslation(Vector3f translation) {
+        this.translation = translation;
+    }
+
+    public Vector3f getRotation() {
+        return rotation;
+    }
+
+    public void setRotation(Vector3f rotation) {
+        this.rotation = rotation;
+    }
+
+    public Vector3f getScale() {
+        return scale;
+    }
+
+    public void setScale(Vector3f scale) {
+        this.scale = scale;
+    }
+    
+    /*public void increaseXTranslation(float value) {
+        this.translation.x = this.translation.x + value;
+    }
+    
+    public void increaseYTranslation(float value) {
+        this.translation.y = this.translation.y + value;
+    }
+    
+    public void increaseZTranslation(float value) {
+        this.translation.z = this.translation.z + value;
+    }
+    
+    public void increaseXRotation(float value) {
+        this.rotation.x = this.rotation.x + value;
+    }
+    
+    public void increaseYRotation(float value) {
+        this.rotation.y = this.rotation.y + value;
+    }
+    
+    public void increaseZRotation(float value) {
+        this.rotation.z = this.rotation.z + value;
+    }
+    
+    public void increaseXScale(float value) {
+        this.scale.x = this.scale.x + value;
+    }
+    
+    public void increaseYScale(float value) {
+        this.scale.y = this.scale.y + value;
+    }
+    
+    public void increaseZScale(float value) {
+        this.scale.z = this.scale.z + value;
+    }*/
+    
+    public void resetTranslation() {
+        this.translation = new Vector3f(0, 0, 0);
+    }
+    
+    public void resetRotation() {
+        this.rotation = new Vector3f(0, 0, 0);
+    }
+        
+    public void resetScale() {
+        this.scale = new Vector3f(0, 0, 0);
+    }
 }
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 93bdb55ea2bc8272f1a5d5440f7a13156f26c59a..3e048886446c22be7859f2c0ede70e4390fac9b3 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
@@ -142,7 +142,17 @@ public class SceneRenderer {
 
             for (MeshFacet facet: obj.getFacets()) {
                 // TO DO - R. Pajersky: add transformation (glPushMatrix, glRotate, ...)
+                // rotate
+                gl.glPushMatrix();
+                gl.glRotatef(obj.getRotation().x, 1f, 0f, 0f);
+                gl.glRotatef(obj.getRotation().y, 0f, 1f, 0f);
+                gl.glRotatef(obj.getRotation().z, 0f, 0f, 1f);
+                // move
+                gl.glTranslatef(obj.getTranslation().x, obj.getTranslation().y, obj.getTranslation().z);
+                // scale
+                gl.glScalef(obj.getScale().x, obj.getScale().y, obj.getScale().z);
                 renderFacet(facet);
+                gl.glPopMatrix();
             }
         }
          gl.glFlush();
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
index 954b7ab4e3914482e9a9fb95d92c0aae48d78085..c6230ec493f2096cb13ca57ec65737a7e3c6f3d2 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form
@@ -518,6 +518,9 @@
         </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="translationXButton">
       <Properties>
@@ -654,6 +657,9 @@
         </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>
@@ -672,6 +678,9 @@
         </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>
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
index 172509e7840eced8b5f1869b6ffeaaec64f4e51d..5c45276bb969125acdfbd37720d3d9c9c0d6b583 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java
@@ -210,6 +210,11 @@ public class PostRegistrationCP extends javax.swing.JPanel {
         translationButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
         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(translationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXButton.text")); // NOI18N
         translationXButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXButton.toolTipText")); // NOI18N
@@ -273,6 +278,11 @@ public class PostRegistrationCP extends javax.swing.JPanel {
         rotationButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
         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
@@ -280,6 +290,11 @@ public class PostRegistrationCP extends javax.swing.JPanel {
         scaleButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
         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));
@@ -704,6 +719,18 @@ public class PostRegistrationCP extends javax.swing.JPanel {
         listener.setSideFacing();
     }//GEN-LAST:event_profileButtonActionPerformed
 
+    private void translationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translationButtonActionPerformed
+        listener.resetTranslation();
+    }//GEN-LAST:event_translationButtonActionPerformed
+
+    private void rotationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotationButtonActionPerformed
+        listener.resetRotation();
+    }//GEN-LAST:event_rotationButtonActionPerformed
+
+    private void scaleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleButtonActionPerformed
+        listener.resetScale();
+    }//GEN-LAST:event_scaleButtonActionPerformed
+
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton applyButton;