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 a92a50994cb1b6dfae58f2b4c12b7a86fa9f561d..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,6 +38,7 @@ 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) { @@ -66,6 +67,7 @@ public class MouseRotationListener extends MouseAdapter { /** * Actualize mouse movement + * @param evt Mouse position info */ @Override public void mouseMoved(MouseEvent e) { @@ -75,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) { @@ -88,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) { @@ -97,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/scene/DrawableMesh.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java index 05b630742639a5aad23dc08e6f2dbd9633da05a1..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 @@ -15,6 +15,7 @@ import javax.vecmath.Vector3d; * This class encapsulates rendering state and parameters, * * @author Radek Oslejsek + * @author Richard Pajersky */ public class DrawableMesh { @@ -22,20 +23,56 @@ 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; + /** + * Flag if back should be rendered + */ private boolean showBackface = true; - // feature points + + /* 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; /** @@ -82,70 +119,135 @@ 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; } + /** + * @return {@link List} of {@link FeaturePoint} + */ public List<FeaturePoint> getFeaturePoints() { return featurePoints; } + /** + * Sets feature points + * @param featurePoints Feature points + */ public void setFeaturePoints(List<FeaturePoint> featurePoints) { this.featurePoints = featurePoints; List<Color> colors = new ArrayList<>(); @@ -155,26 +257,47 @@ public class DrawableMesh { 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 25538f94afc39831b959ff71ae1f50e307793daa..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 @@ -19,6 +19,7 @@ import javax.vecmath.Vector3d; * * @author Natalia Bebjakova * @author Radek Oslejsek + * @author Richard Pajersky */ public class SceneRenderer { 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 05b84ea2288e60a766ae6045d503ec4ebd6ece92..b263fb3124f20b47dac5c55d5fcade6c740535d7 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 @@ -2031,8 +2031,8 @@ <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" attributes="0"> <Group type="103" groupAlignment="0" attributes="0"> - <Component id="highShiftRB" alignment="0" min="-2" max="-2" attributes="0"/> - <Component id="lowShiftRB" min="-2" max="-2" 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> @@ -2048,9 +2048,9 @@ <Group type="102" alignment="0" attributes="0"> <Component id="shiftLabel" min="-2" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/> - <Component id="highShiftRB" 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> @@ -2070,38 +2070,38 @@ </Property> </Properties> </Component> - <Component class="javax.swing.JRadioButton" name="highShiftRB"> + <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/gui/tab/Bundle.properties" key="PostRegistrationCP.highShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.lowShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> </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.highShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.lowShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> </Property> <Property name="opaque" type="boolean" value="false"/> </Properties> <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="highShiftRBActionPerformed"/> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="lowShiftRBActionPerformed"/> </Events> </Component> - <Component class="javax.swing.JRadioButton" name="lowShiftRB"> + <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/gui/tab/Bundle.properties" key="PostRegistrationCP.lowShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.highShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> </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.lowShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.highShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> </Property> <Property name="opaque" type="boolean" value="false"/> </Properties> <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="lowShiftRBActionPerformed"/> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="highShiftRBActionPerformed"/> </Events> </Component> </SubComponents> 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 6b3e97591321d2a45f42be3417b2e15b6d9addbf..7d3f176f43f169c1adc323d0d2d530451cddd009 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 @@ -18,10 +18,13 @@ public class PostRegistrationCP extends javax.swing.JPanel { * into {@link cz.fidentis.analyst.gui.scene.DrawableMesh} */ private RegistrationCPEventListener listener; + /** + * Animator which animates transformations + */ private final ModelRotationAnimator animator = new ModelRotationAnimator(); /** - * Creates new form PostRegistrationPanel + * Creates new form {@link PostRegistrationPanel} * * @param listener Listener */ @@ -39,7 +42,7 @@ public class PostRegistrationCP extends javax.swing.JPanel { secondaryColorPanel.setBackground(RegistrationCPEventListener.DEFAULT_SECONDARY_COLOR); primaryFillRB.setSelected(true); secondaryFillRB.setSelected(true); - highShiftRB.setSelected(true); + lowShiftRB.setSelected(true); thersholdFTF.setValue(listener.getFeaturePointsThreshold()); resetAllButtonActionPerformed(null); } @@ -49,6 +52,7 @@ public class PostRegistrationCP extends javax.swing.JPanel { * by updating specific formatted field * * @param dir Transformation direction + * @throws UnsupportedOperationException if {@code dir} is invalid */ public void transform(Direction dir) { double newValue; @@ -213,8 +217,8 @@ public class PostRegistrationCP extends javax.swing.JPanel { jSeparator9 = new javax.swing.JSeparator(); shiftPanel = new javax.swing.JPanel(); shiftLabel = new javax.swing.JLabel(); - highShiftRB = new javax.swing.JRadioButton(); 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(); @@ -1276,16 +1280,6 @@ public class PostRegistrationCP extends javax.swing.JPanel { 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(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.setOpaque(false); - highShiftRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - highShiftRBActionPerformed(evt); - } - }); - 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 @@ -1296,14 +1290,24 @@ public class PostRegistrationCP extends javax.swing.JPanel { } }); + 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.setOpaque(false); + 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(highShiftRB) - .addComponent(lowShiftRB)) + .addComponent(lowShiftRB) + .addComponent(highShiftRB)) .addGap(0, 8, Short.MAX_VALUE)) .addGroup(shiftPanelLayout.createSequentialGroup() .addContainerGap() @@ -1315,9 +1319,9 @@ public class PostRegistrationCP extends javax.swing.JPanel { .addGroup(shiftPanelLayout.createSequentialGroup() .addComponent(shiftLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(highShiftRB) - .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)) ); @@ -1426,6 +1430,10 @@ public class PostRegistrationCP extends javax.swing.JPanel { ); }// </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; @@ -1437,7 +1445,11 @@ public class PostRegistrationCP extends javax.swing.JPanel { 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*RegistrationCPEventListener.TRANSPARENCY_RANGE) { return; @@ -1450,12 +1462,21 @@ public class PostRegistrationCP extends javax.swing.JPanel { } }//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(10); + transparencySlider.setValue(RegistrationCPEventListener.TRANSPARENCY_RANGE); transparencySlider.repaint(); - listener.setTransparency(10); + listener.setTransparency(RegistrationCPEventListener.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) { @@ -1490,14 +1511,26 @@ public class PostRegistrationCP extends javax.swing.JPanel { 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); @@ -1505,6 +1538,10 @@ public class PostRegistrationCP extends javax.swing.JPanel { 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); @@ -1512,101 +1549,185 @@ public class PostRegistrationCP extends javax.swing.JPanel { 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()) + if (primaryHighlightsCB.isSelected()) { listener.setPrimaryHighlights(); - else + } + 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()) + if (secondaryHighlightsCB.isSelected()) { listener.setSecondaryHighlights(); - else + } + 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(RegistrationCPEventListener.DEFAULT_PRIMARY_COLOR); secondaryColorPanel.setBackground(RegistrationCPEventListener.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.isFeaturePointsActive()) { featurePointsButton.setText("show"); @@ -1625,144 +1746,284 @@ public class PostRegistrationCP extends javax.swing.JPanel { } }//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(listener.getFeaturePointsThreshold()); + thersholdFTF.setValue(RegistrationCPEventListener.LOW_SHIFT_QUOTIENT); }//GEN-LAST:event_thersholdButtonActionPerformed - private void highShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_highShiftRBActionPerformed + /** + * Sets transformation shifting amount to low + * @param evt + */ + private void lowShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lowShiftRBActionPerformed listener.setMoveModifier(RegistrationCPEventListener.LOW_SHIFT_QUOTIENT); - }//GEN-LAST:event_highShiftRBActionPerformed + }//GEN-LAST:event_lowShiftRBActionPerformed - private void lowShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lowShiftRBActionPerformed + /** + * Sets transformation shifting amount to high + * @param evt + */ + private void highShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_highShiftRBActionPerformed listener.setMoveModifier(RegistrationCPEventListener.HIGH_SHIFT_QUOTIENT); - }//GEN-LAST:event_lowShiftRBActionPerformed + }//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"); diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java index 4fb24fe09ac94f18fc1a55bec1392f5aac933aa5..87a6d7011af5d8e3d28e3f4042c42678fcd45d9e 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java @@ -1,8 +1,3 @@ -/* - * 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.registration; import cz.fidentis.analyst.gui.canvas.Direction; @@ -30,7 +25,7 @@ public class ModelRotationAnimator { private final FPSAnimator animator; /* - * Animatio timer + * Animation timer */ private long startClickTime = 0; private TimerTask task; diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationCPEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationCPEventListener.java index e48e793ad99a7cb0f736c079db73cb302ec598fa..5b56c55a1323c3298bc9a5c48b6cb5b701e4afec 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationCPEventListener.java +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationCPEventListener.java @@ -1,8 +1,3 @@ -/* - * 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.registration; import com.jogamp.opengl.GL2; @@ -18,10 +13,11 @@ import javax.vecmath.Point3d; import javax.vecmath.Vector3d; /** - * Updates primary resp. secondary DrawableMesh + * Updates primary resp. secondary {@link DrawableMesh} * * @author Richard Pajersky */ + public class RegistrationCPEventListener { /** @@ -92,9 +88,10 @@ public class RegistrationCPEventListener { * First initialize {@link #canvas} then * {@link #primaryFace} and {@link #secondaryFace} * Then computes movement amounts based on - * {@link cz.fidentis.analyst.visitors.mesh.BoundingBox} of secondary face + * {@link BoundingBox} of secondary face * * @param canvas Canvas with two faces + * @throws IllegalArgumentException if the canvas is {@code null} */ public RegistrationCPEventListener(Canvas canvas) { if (canvas == null) { @@ -518,7 +515,7 @@ public class RegistrationCPEventListener { } /** - * @return true if feature points are being renderes + * @return {@code true} if feature points are being rendered */ public boolean isFeaturePointsActive() { return primaryFace.isRenderFeaturePoints(); @@ -576,7 +573,7 @@ public class RegistrationCPEventListener { } /** - * @return true if back face is beaing shown + * @return {@code true} if back face is being shown */ public boolean isShowBackfaceActive() { return primaryFace.isShowBackface(); diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationTestTopComponent.java b/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationTestTopComponent.java index 151fb88002cc740790a68a7946b46d2e60c4eb1c..77c580a12978fe31ef5b7e179fde6997717c84d7 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationTestTopComponent.java +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/RegistrationTestTopComponent.java @@ -1,25 +1,13 @@ -/* - * 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.registration; import cz.fidentis.analyst.registration.RegistrationCPEventListener; import cz.fidentis.analyst.face.HumanFace; import cz.fidentis.analyst.feature.FeaturePoint; -import cz.fidentis.analyst.feature.services.FeaturePointImportExportService; 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; @@ -27,7 +15,7 @@ import org.openide.windows.TopComponent; import org.openide.util.NbBundle.Messages; /** - * Top component which displays something. + * Top component used to test registration adjustment */ @ConvertAsProperties( dtd = "-//cz.fidentis.analyst.gui//RegistrationTest//EN", @@ -59,12 +47,12 @@ public final class RegistrationTestTopComponent extends TopComponent { 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); @@ -79,10 +67,9 @@ public final class RegistrationTestTopComponent extends TopComponent { 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); @@ -113,7 +100,6 @@ public final class RegistrationTestTopComponent extends TopComponent { postRegistrationCP1.initPostRegistrationCP(new RegistrationCPEventListener(canvas1)); - } /** 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 6fc5165c1776d1d145d310fd83c57e09a6ecf012..f0cbcd4f6b094696fce5c33177b5fa6788ec2e8a 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 @@ -82,9 +82,9 @@ PostRegistrationCP.registrationAdjustmentLabel.text=Registration adjustment PostRegistrationCP.resetAllButton.toolTipText=reset all transformations PostRegistrationCP.applyButton.toolTipText=apply transformations PostRegistrationCP.shiftLabel.text=shift -PostRegistrationCP.highShiftRB.toolTipText=set low shifting amount -PostRegistrationCP.highShiftRB.text=low -PostRegistrationCP.lowShiftRB.toolTipText=set high shifting amount -PostRegistrationCP.lowShiftRB.text=high PostRegistrationCP.backfaceButton.text=hide backface PostRegistrationCP.shiftLabel.toolTipText=transformation amount +PostRegistrationCP.highShiftRB.text=high +PostRegistrationCP.highShiftRB.toolTipText=set high shifting amount +PostRegistrationCP.lowShiftRB.text=low +PostRegistrationCP.lowShiftRB.toolTipText=set low shifting amount