|
From: <bma...@us...> - 2016-03-03 09:20:11
|
Revision: 9310
http://sourceforge.net/p/fudaa/svn/9310
Author: bmarchan
Date: 2016-03-03 09:20:09 +0000 (Thu, 03 Mar 2016)
Log Message:
-----------
Ajout centre de rotation dans panneau de transformation + sauvegarde/restitution
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationParameters.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -23,7 +23,7 @@
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuLabel;
-import com.memoire.bu.BuPanel;
+import com.memoire.bu.BuLib;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuTextField;
import com.memoire.bu.BuToolButton;
@@ -40,8 +40,9 @@
protected BuTextField tfTx_;
protected BuTextField tfTy_;
protected BuTextField tfTz_;
+ protected BuTextField tfXCenter_;
+ protected BuTextField tfYCenter_;
protected BuTextField tfRz_;
- protected BuLabel lbRz_;
protected PivProject prj_;
/**
@@ -57,8 +58,10 @@
tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
tfTy_ = BuTextField.createDoubleField();
tfTz_ = BuTextField.createDoubleField();
+ tfXCenter_ = BuTextField.createDoubleField();
+ tfYCenter_ = BuTextField.createDoubleField();
tfRz_ = BuTextField.createDoubleField();
- lbRz_ = new BuLabel("Rz:");
+ tfRz_.setToolTipText(PivResource.getS("Angle en degr\xE9s"));
btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
btApply_.addActionListener(new ActionListener() {
@@ -70,13 +73,17 @@
Double ty = (Double) tfTy_.getValue();
Double tz = (Double) tfTz_.getValue();
Double rz = (Double)tfRz_.getValue();
+ Double xc = (Double)tfXCenter_.getValue();
+ Double yc = (Double)tfYCenter_.getValue();
- if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
+ if (tx != null && ty != null && tz != null && rz != null && xc != null && yc != null && prj_!=null) {
PivTransformationParameters params=prj_.getTransformationParameters();
params.setTranslationX(tx);
params.setTranslationY(ty);
params.setTranslationZ(tz);
params.setRotationZ(rz);
+ params.setXCenter(xc);
+ params.setYCenter(yc);
prj_.setTransformationParameters(params);
}
}
@@ -100,27 +107,47 @@
tfTy_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationY()));
tfTz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationZ()));
tfRz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getRotationZ()));
+ tfXCenter_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getXCenter()));
+ tfYCenter_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getYCenter()));
}
protected void buildComponent() {
- BuPanel pnMain = new BuPanel();
- pnMain.setLayout(new BuGridLayout(2, 2, 2));
- pnMain.add(new BuLabel("Tx:"));
- pnMain.add(tfTx_);
- pnMain.add(new BuLabel("Ty:"));
- pnMain.add(tfTy_);
- pnMain.add(new BuLabel("Tz:"));
- pnMain.add(tfTz_);
- pnMain.add(lbRz_);
- pnMain.add(tfRz_);
+ JLabel lbTx = new JLabel("Tx:");
+ JLabel lbXCenter = new BuLabel(PivResource.getS("X centre:"));
+ BuLib.giveSameWidth(lbTx,lbXCenter);
+
+ JPanel pnTrans = new JPanel();
+ pnTrans.setLayout(new BuGridLayout(2, 2, 2));
+ pnTrans.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Translation")));
+ pnTrans.add(lbTx);
+ pnTrans.add(tfTx_);
+ pnTrans.add(new BuLabel("Ty:"));
+ pnTrans.add(tfTy_);
+ pnTrans.add(new BuLabel("Tz:"));
+ pnTrans.add(tfTz_);
+
+ JPanel pnRot = new JPanel();
+ pnRot.setLayout(new BuGridLayout(2, 2, 2));
+ pnRot.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Rotation")));
+ pnRot.add(lbXCenter);
+ pnRot.add(tfXCenter_);
+ pnRot.add(new BuLabel(PivResource.getS("Y centre:")));
+ pnRot.add(tfYCenter_);
+ pnRot.add(new BuLabel("Rz:"));
+ pnRot.add(tfRz_);
+
+ JPanel pnMain = new JPanel();
+ pnMain.setLayout(new BuGridLayout(1, 2, 2));
+ pnMain.add(pnTrans);
+ pnMain.add(pnRot);
- BuPanel pnButtons = new BuPanel();
+ JPanel pnButtons = new JPanel();
pnButtons.setLayout(new BorderLayout(5, 5));
pnButtons.add(btApply_, BorderLayout.SOUTH);
setLayout(new BorderLayout(5, 5));
setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
- add(new JLabel(PivResource.getS("<html><p>Param\xE8tres de transformation<br>du rep\xE8re d'origine<br>vers le rep\xE8re de calcul</html>")), BorderLayout.NORTH);
+ add(new JLabel(PivResource.getS("<html><p>Param\xE8tres de transformation du rep\xE8re<br>d'origine vers le rep\xE8re de calcul</html>")), BorderLayout.NORTH);
add(pnMain, BorderLayout.CENTER);
add(pnButtons, BorderLayout.EAST);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -17,6 +17,10 @@
public double ty;
/** Translation Z */
public double tz;
+ /** Le coordonn\xE9e X du point centre de la rotation suivant Z */
+ public double xcenter;
+ /** Le coordonn\xE9e Y du point centre de la rotation suivant Z */
+ public double ycenter;
/** Rotation Z */
public double rz;
}
\ No newline at end of file
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -87,6 +87,13 @@
params.ty=Double.parseDouble(elMat.getAttribute("ty"));
params.tz=Double.parseDouble(elMat.getAttribute("tz"));
params.rz=Double.parseDouble(elMat.getAttribute("rz"));
+ String xcenter = elMat.getAttribute("xcenter");
+ String ycenter = elMat.getAttribute("ycenter");
+ // Formats sup\xE9rieurs \xE0 1.4.5
+ if (!xcenter.isEmpty() && !ycenter.isEmpty()) {
+ params.xcenter=Double.parseDouble(xcenter);
+ params.ycenter=Double.parseDouble(ycenter);
+ }
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -39,7 +39,8 @@
writer.endTag("srcImages");
// La rotation/translation appliqu\xE9s \xE0 l'espace r\xE9el.
- writer.startTagWithAttrs("transfMatrix", new String[]{"tx","ty","tz","rz"}, new String[]{ "" + _param.tx,"" + _param.ty,"" + _param.tz,"" + _param.rz});
+ writer.startTagWithAttrs("transfMatrix", new String[]{"tx","ty","tz","rz","xcenter","ycenter"},
+ new String[]{ "" + _param.tx,"" + _param.ty,"" + _param.tz,"" + _param.rz,"" + _param.xcenter,"" + _param.ycenter});
writer.endTag("transfMatrix");
// writeTransects(writer, _param.transects);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -450,7 +450,7 @@
});
// Affectation des param\xE8tres de transformation.
- PivTransformationParameters params=new PivTransformationParameters(paramXml.tx,paramXml.ty,paramXml.tz,paramXml.rz);
+ PivTransformationParameters params=new PivTransformationParameters(paramXml.tx, paramXml.ty, paramXml.tz, paramXml.rz, paramXml.xcenter, paramXml.ycenter);
prj_.setTransformationParameters(params);
prj_.srcFiles_.clear();
@@ -477,6 +477,8 @@
params.ty=prj_.getTransformationParameters().getTranslationY();
params.tz=prj_.getTransformationParameters().getTranslationZ();
params.rz=prj_.getTransformationParameters().getRotationZ();
+ params.xcenter = prj_.getTransformationParameters().getXCenter();
+ params.ycenter = prj_.getTransformationParameters().getYCenter();
File globalFile = new File(prj_.getOutputDir(), "global.xml");
new PivGlobalXmlWriter().write(params, globalFile, _prog);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationParameters.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationParameters.java 2016-02-26 10:04:29 UTC (rev 9309)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationParameters.java 2016-03-03 09:20:09 UTC (rev 9310)
@@ -4,7 +4,7 @@
/**
* Les param\xE8tres de transformation du rep\xE8re d'origine vers le rep\xE8re de calcul. On stocke ces param\xE8tres,
- * car ils sont dfifficiles a retrouver depuis les matrices de transformation.
+ * car ils sont difficiles a retrouver depuis les matrices de transformation.
* @author Bertrand Marchand (mar...@de...)
*/
public class PivTransformationParameters {
@@ -16,6 +16,10 @@
private double translationZ;
/** La rotation suivant z, en degr\xE9s */
private double rotationZ;
+ /** La coordonn\xE9e X du point de rotation Z */
+ private double xcenter;
+ /** La coordonn\xE9e Y du point de rotation Z */
+ private double ycenter;
/** Morphisme de original -> calcul */
private GrMorphisme toComputing;
/** Morphisme de calcul -> original */
@@ -26,14 +30,16 @@
private GrMorphisme identite=GrMorphisme.identite();
public PivTransformationParameters() {
- this(0,0,0,0);
+ this(0, 0, 0, 0, 0, 0);
}
- public PivTransformationParameters(double _tx, double _ty, double _tz, double _rz) {
+ public PivTransformationParameters(double _tx, double _ty, double _tz, double _rz, double _xpt, double _ypt) {
translationX=_tx;
translationY=_ty;
translationZ=_tz;
rotationZ=_rz;
+ xcenter = _xpt;
+ ycenter = _ypt;
}
/**
@@ -108,6 +114,42 @@
}
}
+ /**
+ * @return the X rotation
+ */
+ public double getXCenter() {
+ return xcenter;
+ }
+
+ /**
+ * @param _xRotation the X rotation to set
+ */
+ public void setXCenter(double _xRotation) {
+ if (xcenter != _xRotation) {
+ this.xcenter=_xRotation;
+ toComputing=null;
+ toOriginal=null;
+ }
+ }
+
+ /**
+ * @return the Y rotation
+ */
+ public double getYCenter() {
+ return ycenter;
+ }
+
+ /**
+ * @param _yRotation the Y rotation to set
+ */
+ public void setYCenter(double _yRotation) {
+ if (ycenter != _yRotation) {
+ this.ycenter=_yRotation;
+ toComputing=null;
+ toOriginal=null;
+ }
+ }
+
public GrMorphisme getToComputing() {
if (toComputing==null)
toComputing=GrMorphisme.translation(translationX, translationY, translationZ).composition(GrMorphisme.rotationZ(Math.toRadians(rotationZ)));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|