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. |