|
From: <bma...@us...> - 2015-04-20 09:44:43
|
Revision: 9114
http://sourceforge.net/p/fudaa/svn/9114
Author: bmarchan
Date: 2015-04-20 09:44:41 +0000 (Mon, 20 Apr 2015)
Log Message:
-----------
Nouveaux outils Deplacement et rotation.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFille2d.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShow3DTransectAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFille2d.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFille2d.java 2015-04-20 09:14:18 UTC (rev 9113)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFille2d.java 2015-04-20 09:44:41 UTC (rev 9114)
@@ -40,7 +40,7 @@
JComponent[] cmps=getVisuPanel().getSpecificTools();
JComponent[] tools=new JComponent[cmps.length+superCmps.length];
System.arraycopy(superCmps, 0, tools, 0, superCmps.length);
- System.arraycopy(cmps, 0, tools, superCmps.length-1, cmps.length);
+ System.arraycopy(cmps, 0, tools, superCmps.length, cmps.length);
return tools;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-04-20 09:14:18 UTC (rev 9113)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-04-20 09:44:41 UTC (rev 9114)
@@ -25,8 +25,10 @@
import javax.imageio.ImageReader;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
+import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
+import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
@@ -696,11 +698,22 @@
mr.setResource(PivResource.PIV);
}
+ // Le menu Editer
+ BuMenu mn= (BuMenu)mb.getMenu("MENU_EDITION");
+ int idx=mn.indexOf("COPIER");
+ // Au cas ou...
+ if (idx==-1)
+ idx=mn.getComponentCount();
+ mn.add(get2dFrame().getVisuPanel().getEditAction().buildMenuItem(EbliComponentFactory.INSTANCE),idx++);
+ mn.add(get2dFrame().getVisuPanel().getDeplacementAction().buildMenuItem(EbliComponentFactory.INSTANCE),idx++);
+ mn.add(get2dFrame().getVisuPanel().getRotationAction().buildMenuItem(EbliComponentFactory.INSTANCE),idx++);
+ mn.insertSeparator(idx++);
+
// les menus exporter et importer sont construit dynamiquement
// buildImportMenu();
setEnabledForAction("IMPORTER", false);
buildExportMenu();
- BuMenu mn=buildPivMenu();
+ mn=buildPivMenu();
mb.addMenu(mn);
}
@@ -808,7 +821,7 @@
mn.add(sm);
mn.add(get2dFrame().getVisuPanel().getRealView().getParamsTransectAction().buildMenuItem(EbliComponentFactory.INSTANCE));
mn.add(new PivComputeFlowAction(this));
- mn.add(get2dFrame().getVisuPanel().getShowFlowAction().buildMenuItem(EbliComponentFactory.INSTANCE));
+// mn.add(get2dFrame().getVisuPanel().getShowFlowAction().buildMenuItem(EbliComponentFactory.INSTANCE));
mn.add(new PivShow3DTransectAction(this));
mn.addSeparator(PivResource.getS("Vue"));
@@ -822,8 +835,6 @@
mn.add(itOriginalView);
mn.add(itRealView);
mn.add(itTransfView);
- mn.addSeparator();
- mn.add(get2dFrame().getVisuPanel().getEditAction());
mn.setVisible(true);
return mn;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-04-20 09:14:18 UTC (rev 9113)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-04-20 09:44:41 UTC (rev 9114)
@@ -8,6 +8,7 @@
package org.fudaa.fudaa.piv;
import java.awt.Color;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -15,18 +16,22 @@
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JMenu;
+import javax.swing.SwingUtilities;
import org.fudaa.ctulu.gis.GISAttributeDouble;
import org.fudaa.ctulu.gis.GISAttributeString;
import org.fudaa.ebli.animation.EbliAnimationSourceInterface;
import org.fudaa.ebli.calque.BCalqueAffichage;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
+import org.fudaa.ebli.calque.action.SceneDeplacementAction;
+import org.fudaa.ebli.calque.action.SceneRotationAction;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction;
import org.fudaa.ebli.calque.edition.ZEditorDefault;
import org.fudaa.ebli.commun.EbliActionAbstract;
import org.fudaa.ebli.commun.EbliActionInterface;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.commun.EbliComponentFactory;
import org.fudaa.ebli.commun.EbliUIProperties;
import org.fudaa.ebli.trace.TraceIcon;
import org.fudaa.ebli.trace.TraceIconModel;
@@ -121,6 +126,8 @@
private PivShowVelocityAction actShowVelocities_;
private PivShowFlowAction actShowFlow_;
private PivEditAction actEdit_;
+ private SceneRotationAction actRotation_;
+ private SceneDeplacementAction actDeplacement_;
/**
* Construction des calques. Une partie est d\xE9j\xE0 construite par d\xE9faut dans
@@ -272,9 +279,8 @@
actShowFlow_=new PivShowFlowAction((PivImplementation)getCtuluUI());
actEdit_=new PivEditAction(this);
getScene().addSelectionListener(actEdit_);
-
// Les actions affich\xE9es dans le menu contextuel.
- getEditor().getSceneEditor().setActions(new EbliActionInterface[]{actEdit_,null});
+ getEditor().getSceneEditor().setActions(new EbliActionInterface[]{actEdit_});
}
/**
@@ -349,6 +355,50 @@
return actEdit_;
}
+ public SceneRotationAction getRotationAction() {
+ if (actRotation_==null) {
+ actRotation_=new SceneRotationAction(getArbreCalqueModel().getTreeSelectionModel(), gisEditor_, gisEditor_.getSceneEditor(),getEbliFormatter()) {
+
+ /**
+ * Surchag\xE9 pour d\xE9finir le desktop au moment de l'affichage.
+ */
+ @Override
+ public void showWindow() {
+ // Necessaire, sinon la palette est visualis\xE9e en externe. Ne peut \xEAtre fait avant, car le desktop n'est pas
+ // encore existant.
+ BuDesktop desk=(BuDesktop)SwingUtilities.getAncestorOfClass(BuDesktop.class,PivVisuPanel.this);
+ if (desk!=null)
+ setDesktop(desk);
+ super.showWindow();
+ }
+ };
+ }
+
+ return actRotation_;
+ }
+
+ public SceneDeplacementAction getDeplacementAction() {
+ if (actDeplacement_==null) {
+ actDeplacement_=new SceneDeplacementAction(getArbreCalqueModel().getTreeSelectionModel(), gisEditor_, getEbliFormatter(), null) {
+
+ /**
+ * Surchag\xE9 pour d\xE9finir le desktop au moment de l'affichage.
+ */
+ @Override
+ public void showWindow() {
+ // Necessaire, sinon la palette est visualis\xE9e en externe. Ne peut \xEAtre fait avant, car le desktop n'est pas
+ // encore existant.
+ BuDesktop desk=(BuDesktop)SwingUtilities.getAncestorOfClass(BuDesktop.class,PivVisuPanel.this);
+ if (desk!=null)
+ setDesktop(desk);
+ super.showWindow();
+ }
+ };
+ }
+
+ return actDeplacement_;
+ }
+
/**
* @return Le calque d'edition de formes.
*/
@@ -483,10 +533,27 @@
return new EbliActionInterface[0];
}
+ AbstractButton btRotation_;
+ AbstractButton btDeplacement_;
+
+ /**
+ * @return Les actions sp\xE9cifiques de la vue affich\xE9es dans la barre d'actions.
+ */
public JComponent[] getSpecificTools() {
BuDesktop desk=((PivImplementation)getCtuluUI()).getMainPanel().getDesktop();
- JComponent[] cps=getCurrentView().getSpecificTools();
+ JComponent[] cpsView=getCurrentView().getSpecificTools();
+ JComponent[] cps=new JComponent[cpsView.length+2];
+ System.arraycopy(cpsView, 0, cps, 2, cpsView.length);
+
+ if (btRotation_==null)
+ btRotation_=getRotationAction().buildToolButton(EbliComponentFactory.INSTANCE);
+ if (btDeplacement_==null)
+ btDeplacement_=getDeplacementAction().buildToolButton(EbliComponentFactory.INSTANCE);
+
+ cps[0]=btRotation_;
+ cps[1]=btDeplacement_;
+
for (JComponent cp : cps) {
if (cp instanceof AbstractButton) {
AbstractButton bt=(AbstractButton)cp;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShow3DTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShow3DTransectAction.java 2015-04-20 09:14:18 UTC (rev 9113)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShow3DTransectAction.java 2015-04-20 09:44:41 UTC (rev 9114)
@@ -30,7 +30,7 @@
PivShow3DTransectPanel pn;
public PivShow3DTransectAction(PivImplementation _impl) {
- super(PivResource.getS("Graphe 3D du(des) transect(s)..."), null, "SHOW_3D_GRAPH_TRANS");
+ super(PivResource.getS("Vue 3D du(des) transect(s)..."), null, "SHOW_3D_GRAPH_TRANS");
impl=_impl;
_impl.get2dFrame().getVisuPanel().getScene().addSelectionListener(this);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java 2015-04-20 09:14:18 UTC (rev 9113)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java 2015-04-20 09:44:41 UTC (rev 9114)
@@ -3,7 +3,6 @@
import java.awt.Graphics2D;
import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable;
-import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-16 14:54:23
|
Revision: 9132
http://sourceforge.net/p/fudaa/svn/9132
Author: bmarchan
Date: 2015-06-16 14:54:20 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Am?\195?\169lioration : Possiblit?\195?\169 d'ouvrir la fenetre parametres transect pour plusieurs transects.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -5,35 +5,38 @@
import org.fudaa.fudaa.piv.io.PivExeLauncher;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import org.omg.PortableServer._ServantLocatorStub;
/**
- * Un panneau de saisie des param\xE8tres du transect pour le calcul des d\xE9bits.
+ * Un panneau de saisie des param\xE8tres des transects s\xE9lectionn\xE9s pour le calcul des d\xE9bits.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
*/
public class PivTransectParamPanel extends CtuluDialogPanel {
PivImplementation impl_;
- PivTransect savedTrans_;
- int idSel_;
+ PivTransect[] savedTrans_;
+ PivTransect[] trans_;
+ int[] selIds_;
/**
* Constructeur.
*/
- public PivTransectParamPanel(PivImplementation _impl, int _idSel) {
+ public PivTransectParamPanel(PivImplementation _impl) {
impl_=_impl;
- idSel_=_idSel;
initComponents();
customize();
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- // Sauvegarde du transect pr\xE9cedent pour le cas d'annulation.
- savedTrans_=trans[_idSel].clone();
+ trans_=impl_.getCurrentProject().getTransects();
+ // Sauvegarde des transects pr\xE9cedents pour le cas d'annulation.
+ savedTrans_=new PivTransect[trans_.length];
+ for (int i=0; i<savedTrans_.length; i++)
+ savedTrans_[i]=trans_[i].clone();
- PivTransectParams params=trans[_idSel].getParams();
+// PivTransectParams params=trans[_idSel].getParams();
// if (params==null)
// params=new PivTransectParams();
- setFlowParams(params);
+// setFlowParams(params);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(true);
}
@@ -45,26 +48,71 @@
}
/**
+ * Change selection
+ * @param _selIds Les transects s\xE9lectionn\xE9s.
+ */
+ public void setSelected(int... _selIds) {
+ selIds_=_selIds;
+ initFlowParams();
+ }
+
+ /**
* Rempli le panneau depuis les donn\xE9es du projet.
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit.
*/
- public void setFlowParams(PivTransectParams _params) {
- tfCoef.setText("" + _params.getSurfaceCoef());
- tfDmax.setText("" + _params.getRadius());
- tfInterpolationStep.setText("" + _params.getInterpolationStep());
+ private void initFlowParams() {
+ String scoef=null;
+ String sradius=null;
+ String sstep=null;
+
+ for (int id : selIds_) {
+ if (scoef==null)
+ scoef=""+trans_[id].getParams().getSurfaceCoef();
+ else if (!scoef.equals(""+trans_[id].getParams().getSurfaceCoef())) {
+ scoef="";
+ }
+ if (sradius==null)
+ sradius=""+trans_[id].getParams().getRadius();
+ else if (!sradius.equals(""+trans_[id].getParams().getRadius())) {
+ sradius="";
+ }
+ if (sstep==null)
+ sstep=""+trans_[id].getParams().getInterpolationStep();
+ else if (!sstep.equals(""+trans_[id].getParams().getInterpolationStep())) {
+ sstep="";
+ }
+ }
+
+ if (scoef==null)
+ scoef="";
+ if (sstep==null)
+ sstep="";
+ if (sradius==null)
+ sradius="";
+
+ tfCoef.setText(scoef);
+ tfDmax.setText(sradius);
+ tfInterpolationStep.setText(sstep);
+
}
-
+
/**
- * Retourne les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
- * retourn\xE9s dans _params.
- *
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit servant \xE0 transf\xE9rer les
- * valeurs mises \xE0 jour.
+ * Recup\xE8re les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
+ * retourn\xE9s dans les params transects.
*/
- public void retrieveFlowParams(PivTransectParams _params) {
- _params.setSurfaceCoef(Double.parseDouble(tfCoef.getText().trim()));
- _params.setRadius(Double.parseDouble(tfDmax.getText().trim()));
- _params.setInterpolationStep(Double.parseDouble(tfInterpolationStep.getText().trim()));
+ private void retrieveFlowParams() {
+ String scoef=tfCoef.getText().trim();
+ String sradius=tfDmax.getText().trim();
+ String sstep=tfInterpolationStep.getText().trim();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ if (!scoef.isEmpty())
+ trans[id].getParams().setSurfaceCoef(Double.parseDouble(scoef));
+ if (!sradius.isEmpty())
+ trans[id].getParams().setRadius(Double.parseDouble(sradius));
+ if (!sstep.isEmpty())
+ trans[id].getParams().setInterpolationStep(Double.parseDouble(sstep));
+ }
}
/**
@@ -176,42 +224,41 @@
public boolean isDataValid() {
setErrorText("");
boolean bok=
- isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
- isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
- isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
+ tfCoef.getText().trim().isEmpty() || isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
+ tfDmax.getText().trim().isEmpty() || isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
+ tfInterpolationStep.getText().trim().isEmpty() || isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
return bok;
}
@Override
public void apply() {
- PivTransect trans=savedTrans_.clone();
- retrieveFlowParams(trans.getParams());
-
- CtuluLog log=new CtuluLog();
- log.setDesc(PivResource.getS("Reconditionnement du transect"));
- PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans, null);
- if (log.containsErrorOrSevereError()) {
- impl_.error(log.getResume());
- return;
+ retrieveFlowParams();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ CtuluLog log=new CtuluLog();
+ log.setDesc(PivResource.getS("Reconditionnement du transect"));
+ PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans[id], null);
+ if (log.containsErrorOrSevereError()) {
+ impl_.error(log.getResume());
+ return;
+ }
}
- PivTransect[] transects=impl_.getCurrentProject().getTransects();
- transects[idSel_]=trans;
- impl_.getCurrentProject().setTransects(transects);
+ // Pour forcer le rafraichissement d'\xE9cran
+ impl_.getCurrentProject().setTransects(trans);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
}
@Override
public boolean cancel() {
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- trans[idSel_]=savedTrans_;
- impl_.getCurrentProject().setTransects(trans);
+ impl_.getCurrentProject().setTransects(savedTrans_);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(false);
return super.cancel();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -20,7 +20,7 @@
import org.fudaa.fudaa.piv.PivResource;
/**
- * Une action pour saisir les parametres de calcul de d\xE9bit d'un transect.
+ * Une action pour saisir les parametres de calcul de d\xE9bit des transects selectectionn\xE9s.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
@@ -40,11 +40,12 @@
*/
@Override
public void actionPerformed(final ActionEvent _e) {
- int idSel=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getMinIndex();
+ int[] selIds=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getSelectedIndex();
- PivTransectParamPanel pn=new PivTransectParamPanel(impl, idSel);
+ PivTransectParamPanel pn=new PivTransectParamPanel(impl);
+ pn.setSelected(selIds);
- pn.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ pn.afficheModale(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
}
@Override
@@ -59,7 +60,7 @@
if (cq==impl.get2dFrame().getVisuPanel().getRealView().getTransectLayer() &&
((ZCalqueLigneBriseeEditable)cq).getLayerSelection() !=null &&
- ((ZCalqueLigneBriseeEditable)cq).getLayerSelection().getNbSelectedIndex()==1) {
+ !((ZCalqueLigneBriseeEditable)cq).getLayerSelection().isEmpty()) {
b=true;
}
super.setEnabled(b);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-16 16:36:59
|
Revision: 9133
http://sourceforge.net/p/fudaa/svn/9133
Author: bmarchan
Date: 2015-06-16 16:36:57 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Ajout des r?\195?\169sultats de d?\195?\169bit dans la fenetre qui s'affiche ?\195?\160 la fin d'un calcul
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-06-16 14:54:20 UTC (rev 9132)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-06-16 16:36:57 UTC (rev 9133)
@@ -7,10 +7,20 @@
*/
package org.fudaa.fudaa.piv;
-import com.memoire.bu.BuGridLayout;
+import java.awt.BorderLayout;
+import java.awt.Component;
import java.awt.Dimension;
+import java.text.NumberFormat;
+
import javax.swing.JLabel;
-import javax.swing.JTextField;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.SwingConstants;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableModel;
+
+import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
@@ -21,56 +31,137 @@
* @version $Id$
*/
public class PivFlowInfoPanel extends CtuluDialogPanel {
- private PivFlowResults res_;
- private JTextField tfWaterElevation;
- private JTextField tfDischarge;
- private JTextField tfWettedArea;
- private JTextField tfMeanVelocity;
+ private PivFlowResults[] res_;
+ private double meanDisch_;
+ private double meanArea_;
+ private double meanMeanV_;
+
+ /**
+ * Une classe pour le modele de la table affichant les r\xE9sultats.
+ */
+ private class DischargeTableModel implements TableModel {
+
+ public int getRowCount() {
+ return res_.length+1;
+ }
+
+ public int getColumnCount() {
+ return 7;
+ }
+
+ public String getColumnName(int columnIndex) {
+ switch (columnIndex) {
+ default:
+ case 0:
+ return PivResource.getS("N\xB0");
+ case 1:
+ return PivResource.getS("D\xE9bit total (m\xB3/s)");
+ case 2:
+ return PivResource.getS("Ecart (%)");
+ case 3:
+ return PivResource.getS("Aire mouill\xE9e (m\xB2)");
+ case 4:
+ return PivResource.getS("Ecart (%)");
+ case 5:
+ return PivResource.getS("Vit. moy. (m/s)");
+ case 6:
+ return PivResource.getS("Ecart (%)");
+ }
+ }
+
+ public Class<?> getColumnClass(int columnIndex) {
+ return columnIndex==0 ? String.class:Double.class;
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return false;
+ }
+
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ double val;
+
+ switch (columnIndex) {
+ default:
+ case 0:
+ return rowIndex==res_.length? PivResource.getS("Moyenne"):""+(rowIndex+1);
+ case 1:
+ return rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
+ case 2:
+ val=rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
+ return Math.abs(val-meanDisch_)/meanDisch_*100;
+ case 3:
+ return rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
+ case 4:
+ val=rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
+ return Math.abs(val-meanArea_)/meanArea_*100;
+ case 5:
+ return rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
+ case 6:
+ val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
+ return Math.abs(val-meanMeanV_)/meanMeanV_*100;
+ }
+ }
+
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {}
+ public void addTableModelListener(TableModelListener l) {}
+ public void removeTableModelListener(TableModelListener l) {}
+ }
+
+ /**
+ * Une classe pour une repr\xE9sentation des doubles.
+ */
+ private class DischargeCellRenderer extends DefaultTableCellRenderer {
+ NumberFormat fmt = CtuluLib.getDecimalFormat(3);
+
+ public DischargeCellRenderer() {
+ this.setHorizontalAlignment(SwingConstants.RIGHT);
+ fmt.setMaximumFractionDigits(3);
+ fmt.setMinimumFractionDigits(3);
+ }
+
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
+
+ if (value instanceof Double) {
+ this.setText(fmt.format((Double)value));
+ }
+ return this;
+ }
+ }
/**
* Construction du panneau avec les r\xE9sutalts de d\xE9bit
* @param _res Les r\xE9sultats.
*/
- public PivFlowInfoPanel(PivFlowResults _res) {
-
- setLayout(new BuGridLayout(2,3,3));
- add(new JLabel(PivResource.getS("Niveau d'eau (m)")));
- add(tfWaterElevation=new JTextField());
- add(new JLabel(PivResource.getS("D\xE9bit total (m\xB3/s)")));
- add(tfDischarge=new JTextField());
- add(new JLabel(PivResource.getS("Aire mouill\xE9e (m\xB2)")));
- add(tfWettedArea=new JTextField());
- add(new JLabel(PivResource.getS("Vitesse moyenne sur la section (m/s)")));
- add(tfMeanVelocity=new JTextField());
+ public PivFlowInfoPanel(PivFlowResults[] _res) {
+ setLayout(new BorderLayout(5,5));
+ JTable tbResults=new JTable();
+ tbResults.setModel(new DischargeTableModel());
+ tbResults.setDefaultRenderer(Double.class,new DischargeCellRenderer());
+ JScrollPane spResults=new JScrollPane();
+ spResults.getViewport().add(tbResults);
+ spResults.setPreferredSize(new Dimension(700,200));
+ add(new JLabel(PivResource.getS("Liste des transects")),BorderLayout.NORTH);
+ add(spResults, BorderLayout.CENTER);
- tfWaterElevation.setEditable(false);
- tfDischarge.setPreferredSize(new Dimension(80,tfDischarge.getPreferredSize().height));
- tfDischarge.setEditable(false);
- tfWettedArea.setEditable(false);
- tfMeanVelocity.setEditable(false);
-
- setResults(_res);
+ res_=_res;
+ computeMoyennes();
}
- /**
- * Affecte les r\xE9sultats au dialogue et les affiche.
- * @param _res Les r\xE9sultats. Peut \xEAtre <tt>null</tt>
- */
- public void setResults(PivFlowResults _res) {
- res_=_res;
+ protected void computeMoyennes() {
+ meanDisch_=0;
+ meanArea_=0;
+ meanMeanV_=0;
- if (res_!=null) {
- tfWaterElevation.setText(""+res_.getWaterElevation());
- tfDischarge.setText(""+res_.getDischarge());
- tfWettedArea.setText(""+res_.getWettedArea());
- tfMeanVelocity.setText(""+res_.getMeanVelocity());
+ for (PivFlowResults res : res_) {
+ meanDisch_+=res.getDischarge();
+ meanArea_+=res.getWettedArea();
+ meanMeanV_+=res.getMeanVelocity();
}
- else {
- tfWaterElevation.setText("");
- tfDischarge.setText("");
- tfWettedArea.setText("");
- tfMeanVelocity.setText("");
- }
+
+ meanDisch_/=res_.length;
+ meanArea_/=res_.length;
+ meanMeanV_/=res_.length;
}
@Override
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-06-16 14:54:20 UTC (rev 9132)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-06-16 16:36:57 UTC (rev 9133)
@@ -100,11 +100,11 @@
// Probl\xE8me de thread swing probablement...
SwingUtilities.invokeLater(new Runnable() {
public void run() {
- impl.message(PivResource.getS("Calcul termin\xE9"), PivResource.getS("Le calcul s'est termin\xE9 avec succ\xE8s"), false);
+// impl.message(PivResource.getS("Calcul termin\xE9"), PivResource.getS("Le calcul s'est termin\xE9 avec succ\xE8s"), false);
+// impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
+ PivFlowInfoPanel pnInfo=new PivFlowInfoPanel(impl.getCurrentProject().getFlowResults());
+ pnInfo.afficheModale(impl.getFrame(), PivResource.getS("Calcul termin\xE9 avec succ\xE8s"), CtuluDialog.OK_OPTION);
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
-// PivFlowInfoPanel pnInfo=new PivFlowInfoPanel(impl.getCurrentProject().getFlowResults()[0]);
-// pnInfo.afficheModale(impl.getFrame(), PivResource.getS("Calcul termin\xE9"), CtuluDialog.OK_OPTION);
-// impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
impl.get2dFrame().getVisuPanel().setFlowLayerVisible(true);
}
});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-22 14:45:19
|
Revision: 9134
http://sourceforge.net/p/fudaa/svn/9134
Author: bmarchan
Date: 2015-06-22 14:45:16 +0000 (Mon, 22 Jun 2015)
Log Message:
-----------
Matrice de transformation repere d'origine vers repere de calcul
Modified Paths:
--------------
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/PivProject.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
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 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -11,4 +11,12 @@
public GrPoint iaCenter;
/** La liste ordonn\xE9e des noms des images source */
public String[] srcImages;
+ /** Translation X */
+ public double tx;
+ /** Translation Y */
+ public double ty;
+ /** Translation Z */
+ public double tz;
+ /** 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 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -79,6 +79,17 @@
params.srcImages[ind]=name;
}
+ // La matrice de transformation espace d'origine => espace de calcul.
+ NodeList ndlMat=doc.getElementsByTagName("transfMatrix");
+ for (int i=0; i<ndlMat.getLength(); i++) {
+ Element elMat=(Element)ndlMat.item(i);
+ params.tx=Double.parseDouble(elMat.getAttribute("tx"));
+ params.ty=Double.parseDouble(elMat.getAttribute("ty"));
+ params.tz=Double.parseDouble(elMat.getAttribute("tz"));
+ params.rz=Double.parseDouble(elMat.getAttribute("rz"));
+ }
+
+
// // Les transects
// NodeList ndlTrans=doc.getElementsByTagName("transect");
// params.transects=new PivTransect[ndlTrans.getLength()];
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 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -38,6 +38,10 @@
}
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.endTag("transfMatrix");
+
// writeTransects(writer, _param.transects);
writer.finish();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -1,6 +1,7 @@
package org.fudaa.fudaa.piv.metier;
import java.awt.Dimension;
+import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
@@ -102,6 +103,10 @@
protected Dimension imgPgmSize=null;
/** True : Les images d'origine ont \xE9t\xE9 modifi\xE9es */
protected boolean areSrcImagesChanged=true;
+ /** La matrice de transformation pour passer du systeme d'origine au systeme de calcul. Identit\xE9 au lancement */
+ protected PivTransformationMatrix matrix=new PivTransformationMatrix();
+ /** Definit si les coordonn\xE9es affich\xE9es le sont dans le system de coordonn\xE9es d'origine ou de calcul. */
+ protected boolean isOriginalSystemCoords_;
/** Les listeners notifi\xE9s lors d'une modification du projet. */
protected HashSet<PivProjectStateListener> listeners=new HashSet<PivProjectStateListener>();
@@ -1018,6 +1023,40 @@
return usedInstantResults;
}
+ /**
+ * @param _matrix La matrice de transformation pour passer du repere origine au repere calcul
+ */
+ public void setMatrixToComputation(PivTransformationMatrix _matrix) {
+ matrix=_matrix;
+ isModified=true;
+ fireProjectStateChanged("matrix");
+ }
+
+ /**
+ * @return La matrice de transformation pour passer du repere origine au repere calcul
+ */
+ public PivTransformationMatrix getMatrixToComputation() {
+ return matrix;
+ }
+
+ public void setOriginalSystemCoords(boolean _b) {
+ isOriginalSystemCoords_=_b;
+ }
+
+ public boolean isOriginalSystemCoords() {
+ return isOriginalSystemCoords_;
+ }
+
+ /**
+ * @return La matrice de transformation pour le systeme courant.
+ */
+ public PivTransformationMatrix getMatrixForCurrentSystem() {
+ if (isOriginalSystemCoords())
+ return matrix;
+ else
+ return new PivTransformationMatrix();
+ }
+
void fireProjectStateChanged(String _prop) {
for (PivProjectStateListener listener : listeners) {
listener.projectStateChanged(this,_prop);
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 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -448,6 +448,12 @@
return names.indexOf(o1.getName()) - names.indexOf(o2.getName());
}
});
+
+ // Affectation de la transformation.
+ prj_.matrix=new PivTransformationMatrix();
+ prj_.matrix.setToTranslation(paramXml.tx, paramXml.ty);
+ prj_.matrix.setTranslateZ(paramXml.tz);
+ prj_.matrix.rotate(paramXml.rz);
prj_.srcFiles_.clear();
prj_.srcFiles_.addAll(Arrays.asList(srcFiles));
@@ -467,6 +473,12 @@
for (int i=0; i<prj_.srcFiles_.size(); i++) {
params.srcImages[i]=prj_.srcFiles_.get(i).getName();
}
+
+ // La matrice de transformation
+ params.tx=prj_.matrix.getTranslateX();
+ params.ty=prj_.matrix.getTranslateY();
+ params.tz=prj_.matrix.getTranslateZ();
+ params.rz=prj_.matrix.getRotationZ();
File globalFile = new File(prj_.getOutputDir(), "global.xml");
new PivGlobalXmlWriter().write(params, globalFile, _prog);
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -0,0 +1,51 @@
+package org.fudaa.fudaa.piv.metier;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+
+import org.fudaa.ebli.geometrie.GrPoint;
+
+/**
+ * Une classe pour d\xE9finir la translation et la rotation du systeme d'origine vers le systeme de calcul. On ajoute aussi
+ * une translation en Z qui ne sert pas pour l'affichage, mais pour les calculs.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivTransformationMatrix extends AffineTransform {
+ /** Translation suivant Z */
+ private double tz_=0;
+ /** Des caches */
+ Point2D pt2D=new Point2D.Double();
+
+ /**
+ * @return L'angle de rotation suivant Z (en radians).
+ */
+ public double getRotationZ() {
+ return Math.atan2(getShearY(),getScaleX());
+ }
+
+ /**
+ * @param _tz La translation suivant Z.
+ */
+ public void setTranslateZ(double _tz) {
+ tz_=_tz;
+ }
+
+ /**
+ * @return La translation suivant Z.
+ */
+ public double getTranslateZ() {
+ return tz_;
+ }
+
+ /**
+ * Transforme le point suivant la matrice.
+ * @param _pt Le point d'entr\xE9e.
+ * @return LE point transform\xE9.
+ */
+ public GrPoint transform(GrPoint _pt) {
+ pt2D.setLocation(_pt.x_, _pt.y_);
+ transform(pt2D, pt2D);
+ GrPoint pt=new GrPoint(pt2D.getX(),pt2D.getY(),_pt.z_+tz_);
+ return pt;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-22 14:46:12
|
Revision: 9135
http://sourceforge.net/p/fudaa/svn/9135
Author: bmarchan
Date: 2015-06-22 14:46:09 +0000 (Mon, 22 Jun 2015)
Log Message:
-----------
Ajout d'une vue en repere diff?\195?\169rent
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -44,6 +44,7 @@
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
+import org.fudaa.fudaa.piv.action.PivChangeTransformationAction;
import org.fudaa.fudaa.piv.action.PivCreateParticleLinesAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
import org.fudaa.fudaa.piv.action.PivRealViewAction;
@@ -61,6 +62,7 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivProjectStateListener;
import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.particles.PivParticlesLayer;
import org.fudaa.fudaa.piv.particles.PivResultSource;
@@ -81,10 +83,12 @@
private PivNewTransectAction actNewTransect_;
private PivTransectParamAction actParamsTransect_;
+ private PivChangeTransformationAction actTransfMatrix_;
private EbliActionAbstract actRealView_;
private PivVisuPanel pnLayers_;
private JComboBox<CtuluVariable> cbVar_;
+ private JComboBox<String> cbRep_;
private JComboBox<String> cbImg_;
private BuTransparentToggleButton btLock_;
private JComboBox<String> cbVel_;
@@ -92,9 +96,11 @@
private AbstractButton btAnim_;
private PivCreateParticleLinesAction actParticleLines_;
private AbstractButton btStreamLines_;
+ private AbstractButton btTransfMatrix_;
private PivProject prj_;
private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>();
private boolean enableEvents2_=true;
+ private boolean enableEvents_=true;
ZCalquePointEditable cqRealOrthoPoints_;
ZCalqueMultiPointEditable cqRealControlPoints_;
@@ -407,6 +413,23 @@
* Mise a jour des calques depuis le projet.
*/
private void majLayers() {
+ PivResultsI averageResults=null;
+ if (prj_.getAverageResults()!=null)
+ averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getMatrixForCurrentSystem());
+ PivResultsI[] rawResults=null;
+ if (prj_.getInstantRawResults()!=null) {
+ rawResults=new PivResultsI[prj_.getInstantRawResults().length];
+ for (int i=0; i<rawResults.length; i++) {
+ rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+ PivResultsI[] filteredResults=null;
+ if (prj_.getInstantFilteredResults()!=null) {
+ filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
+ for (int i=0; i<filteredResults.length; i++) {
+ filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
mdlRealOrthoPoints=new PivOrthoPointsModel(PivVisuPanel.MODE_REAL_VIEW);
mdlRealOrthoPoints.setProjet(prj_);
@@ -420,48 +443,42 @@
mdlRealImage.setProjet(prj_);
cqRealImg_.setModele(mdlRealImage);
- if (prj_.getAverageResults()!=null) {
- mdlVelResults=new PivVelResultsModel(prj_.getAverageResults());
+ if (averageResults!=null) {
+ mdlVelResults=new PivVelResultsModel(averageResults);
cqVelResults.setModele(mdlVelResults);
- cqVelResults.setVisible(false);
}
- if (prj_.getInstantRawResults()!=null) {
- mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantRawResults());
+ if (rawResults!=null) {
+ mdlInstantVelResults=new PivVelResultsModel(rawResults);
cqInstantVelResults_.setModele(mdlInstantVelResults);
- cqInstantVelResults_.setVisible(false);
}
- if (prj_.getInstantFilteredResults()!=null) {
- mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults());
+ if (filteredResults!=null) {
+ mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
- cqInstantVelFltResults_.setVisible(false);
}
mdlFlowResults=new PivFlowResultsModel();
mdlFlowResults.setProjet(prj_);
cqFlowResults.setModele(mdlFlowResults);
- cqFlowResults.setVisible(false);
-// mdlTransect=new PivTransectModel();
-// mdlTransect.setProjet(prj_);
// Evite de perdre la selection en cours.
cqTransect_.modeleDonnees().setProjet(prj_);
- if (prj_.getInstantRawResults()!=null) {
- mdlInstantResults=new PivResultsModel(prj_.getInstantRawResults(),null);
+ if (rawResults!=null) {
+ mdlInstantResults=new PivResultsModel(rawResults,null);
cqInstantIso_.setModele(mdlInstantResults);
cqRawParticles_.getSource().setResults(mdlInstantResults);
}
- if (prj_.getInstantFilteredResults()!=null) {
- mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null);
+ if (filteredResults!=null) {
+ mdlInstantFltResults=new PivResultsModel(filteredResults,null);
cqInstantFltIso_.setModele(mdlInstantFltResults);
cqFltParticles_.getSource().setResults(mdlInstantFltResults);
}
- if (prj_.getAverageResults()!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()}, null);
+ if (averageResults!=null) {
+ mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults}, null);
cqAverageIso_.setModele(mdlAverageResults);
cqAveParticles_.getSource().setResults(mdlAverageResults);
}
@@ -472,9 +489,6 @@
return layers_.toArray(new BCalqueAffichage[0]);
}
-
- private boolean enableEvents_=true;
-
/**
* Construction des outils sp\xE9cifiques \xE0 cette vue.
*/
@@ -488,6 +502,10 @@
new PivParticlesLayer[]{cqAveParticles_,cqFltParticles_,cqRawParticles_});
btStreamLines_=actParticleLines_.buildToolButton(EbliComponentFactory.INSTANCE);
+ // Le bouton des param\xE8tres du rep\xE8re.
+ actTransfMatrix_=new PivChangeTransformationAction();
+ btTransfMatrix_=actTransfMatrix_.buildToolButton(EbliComponentFactory.INSTANCE);
+
// La liste des variables possibles
cbVar_=new JComboBox<>();
cbVar_.addItemListener(new ItemListener() {
@@ -504,6 +522,21 @@
cbVar_.setToolTipText(PivResource.getS("Affiche les r\xE9sultats pour la variable s\xE9lectionn\xE9e"));
cbVar_.setEnabled(false);
+ // La liste des rep\xE8res
+ cbRep_=new JComboBox<>();
+ cbRep_.setToolTipText("Changement de rep\xE8re");
+ cbRep_.addItem("Rep\xE8re de calcul");
+ cbRep_.addItem("Rep\xE8re d'origine");
+ cbRep_.setPreferredSize(new Dimension(120, cbRep_.getPreferredSize().height));
+ cbRep_.setMaximumSize(cbRep_.getPreferredSize());
+ cbRep_.addItemListener(new ItemListener() {
+
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ setViewInOriginalSystemCoords(cbRep_.getSelectedIndex()!=0);
+ }
+ });
+
// La liste d\xE9roulante des images
cbImg_ = new JComboBox<>();
cbImg_.addItemListener(new ItemListener() {
@@ -616,6 +649,16 @@
}
}
}
+
+ /**
+ * Change la vue du rep\xE8re d'origine vers le rep\xE8re de calcul.
+ * @param _b True : Vue dans le syst\xE8me d'origine. Sinon dans le syst\xE8me de calcul.
+ */
+ private void setViewInOriginalSystemCoords(boolean _b) {
+ prj_.setOriginalSystemCoords(_b);
+ majLayers();
+ pnLayers_.restaurer();
+ }
/**
* Mise a jour les outils.
@@ -638,6 +681,12 @@
if (prj_==null) return;
+ actTransfMatrix_.getPanel().setProject(prj_);
+
+ if (prj_.isOriginalSystemCoords()) {
+ cbRep_.setSelectedIndex(1);
+ }
+
// La liste d\xE9roulante des images
File[] imgs=prj_.getReadyTransfImageFiles();
if (imgs != null) {
@@ -711,6 +760,24 @@
@Override
public void projectStateChanged(PivProject _prj, String _prop) {
+ PivResultsI averageResults=null;
+ if (prj_.getAverageResults()!=null)
+ averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getMatrixForCurrentSystem());
+ PivResultsI[] rawResults=null;
+ if (prj_.getInstantRawResults()!=null) {
+ rawResults=new PivResultsI[prj_.getInstantRawResults().length];
+ for (int i=0; i<rawResults.length; i++) {
+ rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+ PivResultsI[] filteredResults=null;
+ if (prj_.getInstantFilteredResults()!=null) {
+ filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
+ for (int i=0; i<filteredResults.length; i++) {
+ filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+
if ("transfImages".equals(_prop)) {
majTools();
mdlRealImage.update();
@@ -725,9 +792,9 @@
mdlFlowResults.update();
}
else if("averageResults".equals(_prop)) {
- if (_prj.getAverageResults()!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()},null);
- mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()});
+ if (averageResults!=null) {
+ mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults},null);
+ mdlVelResults=new PivVelResultsModel(new PivResultsI[]{averageResults});
}
else {
mdlAverageResults=null;
@@ -740,9 +807,9 @@
majTools();
}
else if ("instantResults".equals(_prop)) {
- if (_prj.getInstantRawResults()!=null) {
- mdlInstantResults=new PivResultsModel(prj_.getInstantRawResults(),null);
- mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantRawResults());
+ if (rawResults!=null) {
+ mdlInstantResults=new PivResultsModel(rawResults,null);
+ mdlInstantVelResults=new PivVelResultsModel(rawResults);
}
else {
mdlInstantResults=null;
@@ -755,9 +822,9 @@
majTools();
}
else if ("instantFilteredResults".equals(_prop)) {
- if (_prj.getInstantFilteredResults()!=null) {
- mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null);
- mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults());
+ if (filteredResults!=null) {
+ mdlInstantFltResults=new PivResultsModel(filteredResults,null);
+ mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
}
else {
mdlInstantFltResults=null;
@@ -780,7 +847,7 @@
@Override
public JComponent[] getSpecificTools() {
- return new JComponent[]{btStreamLines_,btAnim_,cbVar_,cbImg_,btLock_,cbVel_};
+ return new JComponent[]{btStreamLines_,btTransfMatrix_,cbRep_,btAnim_,cbVar_,cbImg_,btLock_,cbVel_};
}
@Override
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -0,0 +1,129 @@
+/*
+ * @creation 5 avr. 2005
+ * @modification $Date: 2008-05-13 12:10:31 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.fudaa.ebli.commun.EbliFormatterInterface;
+import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuPanel;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuToolButton;
+
+/**
+ * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivTransformationPanel extends JPanel {
+
+ protected JButton btApply_;
+ protected EbliFormatterInterface formatter_;
+ protected BuTextField tfTx_;
+ protected BuTextField tfTy_;
+ protected BuTextField tfTz_;
+ protected BuTextField tfRz_;
+ protected BuLabel lbRz_;
+ protected PivProject prj_;
+
+ /**
+ * @param _deplacement le calque de deplacement
+ * @param _formatter
+ */
+ public PivTransformationPanel(EbliFormatterInterface _formatter) {
+ super();
+
+ formatter_ = _formatter;
+
+ tfTx_ = BuTextField.createDoubleField();
+ tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
+ tfTy_ = BuTextField.createDoubleField();
+ tfTz_ = BuTextField.createDoubleField();
+ tfRz_ = BuTextField.createDoubleField();
+ lbRz_ = new BuLabel("Rz:");
+
+ btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
+ btApply_.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
+ Double tx = (Double) tfTx_.getValue();
+ Double ty = (Double) tfTy_.getValue();
+ Double tz = (Double) tfTz_.getValue();
+ Double rz = Math.toRadians((Double)tfRz_.getValue());
+
+ if (tx != null && ty != null && tz != null && rz != null) {
+ PivTransformationMatrix mat=new PivTransformationMatrix();
+ mat.setToTranslation(-tx, -ty);
+ mat.setTranslateZ(-tz);
+ mat.rotate(-rz);
+ if (prj_ != null)
+ prj_.setMatrixToComputation(mat);
+ }
+ }
+ }
+ });
+
+ buildComponent();
+ updateComponent();
+ }
+
+ public void setProject(PivProject _prj) {
+ prj_=_prj;
+ updateComponent();
+ }
+
+ public void updateComponent() {
+ if (prj_==null)
+ return;
+
+ tfTx_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateX()));
+ tfTy_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateY()));
+ tfTz_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateZ()));
+ tfRz_.setValue(formatter_.getXYFormatter().format(Math.toDegrees(-prj_.getMatrixToComputation().getRotationZ())));
+ }
+
+ 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_);
+
+ BuPanel pnButtons = new BuPanel();
+ 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("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
+ add(pnMain, BorderLayout.CENTER);
+ add(pnButtons, BorderLayout.EAST);
+
+
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -0,0 +1,33 @@
+package org.fudaa.fudaa.piv.action;
+
+import javax.swing.JComponent;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.commun.EbliFormatter;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.fudaa.piv.PivTransformationPanel;
+
+public class PivChangeTransformationAction extends EbliActionPaletteAbstract {
+ PivTransformationPanel pn_;
+
+ public PivChangeTransformationAction() {
+ super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
+ setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
+ }
+
+ @Override
+ protected JComponent buildContentPane() {
+ return getPanel();
+ }
+
+ public PivTransformationPanel getPanel() {
+ if (pn_==null) {
+ EbliFormatter fmt=new EbliFormatter();
+ fmt.setFmt(CtuluLib.getDecimalFormat(2));
+ pn_=new PivTransformationPanel(fmt);
+ }
+ return pn_;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -7,11 +7,11 @@
*/
package org.fudaa.fudaa.piv.io;
+import gnu.trove.TDoubleArrayList;
+
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import org.fudaa.ctulu.CtuluActivity;
import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
@@ -57,10 +57,10 @@
*/
private synchronized PivFlowResults readResults() {
PivFlowResults res = new PivFlowResults();
- List<Double> lx=new ArrayList<Double>();
- List<Double> ly=new ArrayList<Double>();
- List<Double> lvx=new ArrayList<Double>();
- List<Double> lvy=new ArrayList<Double>();
+ TDoubleArrayList lx=new TDoubleArrayList();
+ TDoubleArrayList ly=new TDoubleArrayList();
+ TDoubleArrayList lvx=new TDoubleArrayList();
+ TDoubleArrayList lvy=new TDoubleArrayList();
if (super.in_ == null) {
analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
@@ -114,10 +114,10 @@
}
// Sortie normale
catch (final EOFException e) {
- res.setX(lx.toArray(new Double[0]));
- res.setY(ly.toArray(new Double[0]));
- res.setVx(lvx.toArray(new Double[0]));
- res.setVy(lvy.toArray(new Double[0]));
+ res.setX(lx.toNativeArray());
+ res.setY(ly.toNativeArray());
+ res.setVx(lvx.toNativeArray());
+ res.setVy(lvy.toNativeArray());
}
catch (final IOException e) {
analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber());
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -1,13 +1,16 @@
package org.fudaa.fudaa.piv.layer;
-import com.vividsolutions.jts.geom.CoordinateSequence;
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISMultiPoint;
import org.fudaa.ctulu.gis.GISZoneCollectionMultiPoint;
import org.fudaa.ebli.calque.edition.ZModeleMultiPointEditable;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+
/**
* Un modele pour les points d'orthorectification recalcul\xE9s, dans l'espace r\xE9el.
*
@@ -42,6 +45,8 @@
GISZoneCollectionMultiPoint zp = (GISZoneCollectionMultiPoint) getGeomData();
zp.removeAll(null);
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
+
if (prj_.getOrthoPoints() != null) {
PivOrthoPoint[] pts = prj_.getOrthoPoints();
if (pts.length == 0 || pts[0].getComputeRealPoint() == null) {
@@ -50,8 +55,9 @@
CoordinateSequence seq = GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(pts.length, 2);
for (int i = 0; i < pts.length; i++) {
- seq.setOrdinate(i, 0, pts[i].getComputeRealPoint().x_);
- seq.setOrdinate(i, 1, pts[i].getComputeRealPoint().y_);
+ GrPoint ptReal=mat.transform(pts[i].getComputeRealPoint());
+ seq.setOrdinate(i, 0, ptReal.x_);
+ seq.setOrdinate(i, 1, ptReal.y_);
}
GISMultiPoint mp = (GISMultiPoint) GISGeometryFactory.INSTANCE.createMultiPoint(seq);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -14,6 +14,8 @@
import org.fudaa.fudaa.piv.metier.PivFlowResults;
import org.fudaa.fudaa.piv.metier.PivGlobalFlowResults;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
/**
* Un modele pour le trac\xE9 des d\xE9bits sous forme de vecteurs vitesses.
@@ -48,7 +50,11 @@
* Met a jour le mod\xE8le
*/
public void update() {
- res_=new PivGlobalFlowResults(prj_.getFlowResults());
+ PivResultsI[] res=prj_.getFlowResults();
+ PivResultsI[] adapters=new PivResultsI[res==null ? 0:res.length];
+ for (int i=0; i<res.length; i++)
+ adapters[i]=new PivResultsTransformationAdapter(res[i], prj_.getMatrixForCurrentSystem());
+ res_=new PivGlobalFlowResults(adapters);
}
/** Non implement\xE9 */
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -16,7 +16,7 @@
import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivProject;
-import org.fudaa.fudaa.piv.metier.PivTransect;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
/**
* Un modele pour les points d'orthorectification, soit dans l'espace d'image
@@ -123,7 +123,7 @@
}
/**
- * Met a jour le mod\xE8le en fonction des points d'orthorectification.
+ * Met a jour le mod\xE8le en fonction des points d'orthorectification et du rep\xE8re.
*/
public void update() {
if (!eventEnabled_) return;
@@ -137,6 +137,7 @@
if (prj_.getOrthoPoints() != null) {
PivOrthoPoint[] pts=prj_.getOrthoPoints();
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
for (int ipt=0; ipt < pts.length; ipt++) {
@@ -194,13 +195,14 @@
// GISMultiPoint mp=(GISMultiPoint) GISGeometryFactory.INSTANCE.createMultiPoint(seq);
// zp.addGeometry(mp, null, null);
- GISPoint pt=new GISPoint(pts[ipt].getRealPoint().x_, pts[ipt].getRealPoint().y_, 0);
+ GrPoint ptReal=mat.transform(pts[ipt].getRealPoint());
+ GISPoint pt=new GISPoint(ptReal.x_, ptReal.y_, 0);
zp.add(pt, null);
// Les valeurs d'attributs
zp.getModel(ATT_IND_XI).setObject(ipt, pts[ipt].getImgPoint().x_, null);
zp.getModel(ATT_IND_YI).setObject(ipt, imgSize.height - pts[ipt].getImgPoint().y_, null);
- zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(ipt, pts[ipt].getRealPoint().z_, null);
+ zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(ipt, ptReal.z_, null);
zp.getModel(PivVisuPanel.ATT_LABEL).setObject(ipt, "P" + (ipt + 1), null);
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -3,12 +3,15 @@
import java.awt.geom.Point2D;
import java.io.File;
import java.util.Iterator;
+
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
+
import org.fudaa.ctulu.CtuluImageContainer;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
/**
* Un modele pour l'image dans l'espace r\xE9el.
@@ -57,6 +60,8 @@
File[] imgFiles=prj_.getReadyTransfImageFiles();
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
+
// Si l'indice d'image est bien dans les images disponibles
if (_idx!=-1 && imgFiles.length>_idx && prj_.getOrthoParameters()!=null) {
File img=prj_.getCacheImageFile(imgFiles[_idx]);
@@ -86,6 +91,7 @@
new Point2D.Double(prj_.getOrthoParameters().getXmax(),prj_.getOrthoParameters().getYmin()),
new Point2D.Double(prj_.getOrthoParameters().getXmin(),prj_.getOrthoParameters().getYmax())
};
+ mat.transform(realPts,0,realPts,0,realPts.length);
setImage(imgCont);
setProj(imgPts, realPts);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -20,6 +20,7 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
import com.vividsolutions.jts.geom.CoordinateSequence;
@@ -125,11 +126,16 @@
try {
GISZoneCollectionLigneBrisee zl=(GISZoneCollectionLigneBrisee) getGeomData();
zl.removeAll(null);
+
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
PivTransect[] trans=prj_.getTransects();
if (trans != null) {
for (int i=0; i < trans.length; i++) {
- GrPolyligne pl=trans[i].getStraight();
+ GrPolyligne pl=new GrPolyligne();
+ for (int ipt=0; ipt<trans[i].getStraight().nombre(); ipt++)
+ pl.sommets_.ajoute(mat.transform(trans[i].getStraight().sommet(ipt)));
+
this.addGeometry(pl, null, null, new AttributeDataAdapter(trans[i]));
// Initialisation du Z.
zl.initZAttribute(i);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/f...
[truncated message content] |
|
From: <bma...@us...> - 2015-07-02 09:24:53
|
Revision: 9137
http://sourceforge.net/p/fudaa/svn/9137
Author: bmarchan
Date: 2015-07-02 09:24:50 +0000 (Thu, 02 Jul 2015)
Log Message:
-----------
Fix : Correctif pour le passage RO <-> RC
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -243,6 +243,13 @@
public ZCalquePointEditable getOrthoPointsLayer() {
return cqOrthoPoints_;
}
+
+ /**
+ * Change le repere.
+ */
+ public void changeViewSystemCoords() {
+ majLayers();
+ }
@Override
public EbliActionAbstract getActivationAction() {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -4,14 +4,17 @@
import java.awt.Component;
import java.awt.Dimension;
import java.text.NumberFormat;
+
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
+
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
/**
@@ -26,6 +29,7 @@
PivOrthoPoint[] pts_;
PivImplementation impl_;
boolean bImgVisible_;
+ private GrMorphisme toReal_;
/**
* Une classe pour le modele de la table affichant les valeurs r\xE9elles et
@@ -73,13 +77,13 @@
case 0:
return rowIndex+1;
case 1:
- return pts_[rowIndex].getRealPoint().x_;
+ return pts_[rowIndex].getRealPoint().applique(toReal_).x_;
case 2:
- return pts_[rowIndex].getRealPoint().y_;
+ return pts_[rowIndex].getRealPoint().applique(toReal_).y_;
case 3:
- return pts_[rowIndex].getComputeRealPoint().x_;
+ return pts_[rowIndex].getComputeRealPoint().applique(toReal_).x_;
case 4:
- return pts_[rowIndex].getComputeRealPoint().y_;
+ return pts_[rowIndex].getComputeRealPoint().applique(toReal_).y_;
case 5:
return pts_[rowIndex].getError();
}
@@ -119,6 +123,7 @@
public PivOrthoVerifyGRPPanel(PivImplementation _impl) {
impl_=_impl;
pts_=_impl.getCurrentProject().getOrthoPoints();
+ toReal_=_impl.getCurrentProject().getTransformationParameters().getToReal();
// On efface le calque image, l'image qu'elle contient n'est pas forcement pertinente.
bImgVisible_=impl_.get2dFrame().getVisuPanel().isImageLayerVisible();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -632,12 +632,10 @@
}
/**
- * Change la vue du rep\xE8re d'origine vers le rep\xE8re de calcul.
- * @param _b True : Vue dans le syst\xE8me d'origine. Sinon dans le syst\xE8me de calcul.
+ * Change le repere.
*/
public void changeViewSystemCoords() {
majLayers();
- pnLayers_.restaurer();
}
/**
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -5,6 +5,8 @@
import java.awt.Dimension;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolyligne;
import org.fudaa.ebli.graphe3D.EG3dGraph;
import org.fudaa.ebli.graphe3D.data.EG3dLineModelAbstract;
@@ -12,6 +14,9 @@
import org.fudaa.ebli.graphe3D.ui.panel.EG3dGraphPanel;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.metier.PivTransect;
/**
@@ -25,14 +30,14 @@
EG3dGraph pnGraph_;
private EG3dDefaultDataRenderer transRenderer_;
private EG3dDefaultDataRenderer disRenderer_;
+ /** Le morphisme pour passer des donn\xE9es data vers le repere courant */
+ GrMorphisme toReal_;
class TransectModel extends EG3dLineModelAbstract {
- PivTransect trans_;
GrPolyligne pl_;
- public TransectModel(PivTransect _trans) {
- trans_=_trans;
- pl_=trans_.getStraight();
+ public TransectModel(GrPolyligne _pl) {
+ pl_=_pl;
}
@Override
@@ -57,42 +62,42 @@
}
class DischargeModel extends EG3dLineModelAbstract {
- PivFlowResults res_;
- PivTransect trans_;
+ PivResultsI res_;
+ GrPolyligne pl_;
double zniv_;
double ratio_;
- public DischargeModel(PivTransect _trans, PivFlowResults _res) {
+ public DischargeModel(GrPolyligne _pl, double _zniv, PivResultsI _res) {
res_=_res;
- trans_=_trans;
- zniv_=_res.getWaterElevation();
+ pl_=_pl;
+ zniv_=_zniv;
double lgArrowMax=Double.NEGATIVE_INFINITY;
double vx;
double vy;
- for (int i=0; i<_res.getNombre(); i++) {
- vx=_res.getVx(i);
- vy=_res.getVy(i);
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ vx=_res.getValue(i,TYPE.VX);
+ vy=_res.getValue(i,TYPE.VY);
lgArrowMax=Math.max(lgArrowMax,Math.sqrt(vx*vx+vy*vy));
}
- ratio_=_trans.getStraight().longueurXY()/6./lgArrowMax;
+ ratio_=pl_.longueurXY()/6./lgArrowMax;
}
// Le nombre est modifi\xE9 pour afficher les fleches + une ligne horizontale
@Override
public int getNbPoints() {
- return res_.getNombre()*5+2;
+ return res_.getNbPoints()*5+2;
}
@Override
public float getX(int _idx) {
// 1er point ligne horizontale
if (_idx==0) {
- return (float)trans_.getStraight().sommet(0).x_;
+ return (float)pl_.sommet(0).x_;
}
// 2eme point ligne horizontale
if (_idx==1) {
- return (float)trans_.getStraight().sommet(trans_.getStraight().nombre()-1).x_;
+ return (float)pl_.sommet(pl_.nombre()-1).x_;
}
_idx-=2;
@@ -108,19 +113,19 @@
// Point extremit\xE9
case 1:
case 3:
- return (float)(res_.getX(_idx/5)+res_.getVx(_idx/5)*ratio_);
+ return (float)(res_.getX(_idx/5)+res_.getValue(_idx/5,TYPE.VX)*ratio_);
// Point extremite 1 fleche
case 2:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
double angVit=Math.atan2(vy, vx);
double angFleche=angVit+5./6.*Math.PI;
return (float)(lgFleche*Math.cos(angFleche)+res_.getX(_idx/5)+vx);
// Point extremite 2 fleche
case 4:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
angVit=Math.atan2(vy,vx);
angFleche=angVit-5./6.*Math.PI;
@@ -132,11 +137,11 @@
public float getY(int _idx) {
// 1er point ligne horizontale
if (_idx==0) {
- return (float)trans_.getStraight().sommet(0).y_;
+ return (float)pl_.sommet(0).y_;
}
// 2eme point ligne horizontale
else if (_idx==1) {
- return (float)trans_.getStraight().sommet(trans_.getStraight().nombre()-1).y_;
+ return (float)pl_.sommet(pl_.nombre()-1).y_;
}
_idx-=2;
@@ -152,19 +157,19 @@
// Point extremit\xE9
case 1:
case 3:
- return (float)(res_.getY(_idx/5)+res_.getVy(_idx/5)*ratio_);
+ return (float)(res_.getY(_idx/5)+res_.getValue(_idx/5,TYPE.VY)*ratio_);
// Point extremite 1 fleche
case 2:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
double angVit=Math.atan2(vy, vx);
double angFleche=angVit+5./6.*Math.PI;
return (float)(lgFleche*Math.sin(angFleche)+res_.getY(_idx/5)+vy);
// Point extremite 2 fleche
case 4:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
angVit=Math.atan2(vy, vx);
angFleche=angVit-5./6.*Math.PI;
@@ -229,10 +234,12 @@
public void setSelectedTransects(int... _isels) {
pnGraph_.removeAllDatas();
+ toReal_=impl_.getCurrentProject().getTransformationParameters().getToReal();
+
PivTransect[] transects=impl_.getCurrentProject().getTransects();
for (int i=0; i<_isels.length; i++) {
- TransectModel mdl=new TransectModel(transects[_isels[i]]);
+ TransectModel mdl=new TransectModel(transects[_isels[i]].getStraight().applique(toReal_));
pnGraph_.addData(mdl);
pnGraph_.setDataRenderer(i, transRenderer_);
}
@@ -240,7 +247,12 @@
PivFlowResults[] res=impl_.getCurrentProject().getFlowResults();
if (res!=null) {
for (int i=0; i<_isels.length; i++) {
- DischargeModel mdl=new DischargeModel(transects[_isels[i]],res[_isels[i]]);
+ PivResultsI resAdapter=new PivResultsTransformationAdapter(res[_isels[i]], toReal_);
+ GrPolyligne pl=transects[_isels[i]].getStraight().applique(toReal_);
+ GrPoint ptZ=new GrPoint(0,0,res[_isels[i]].getWaterElevation()).applique(toReal_);
+
+ DischargeModel mdl=new DischargeModel(pl,ptZ.z_,resAdapter);
+
pnGraph_.addData(mdl);
pnGraph_.setDataRenderer(i+_isels.length, disRenderer_);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -227,6 +227,8 @@
setViewMode(MODE_TRANSF_VIEW);
else
setViewMode(MODE_ORIGINAL_VIEW);
+
+ cbRep_.setSelectedIndex(projet.getTransformationParameters().isCurrentSystemOriginal()?1:0);
}
/**
@@ -311,6 +313,8 @@
projet.getTransformationParameters().setCurrentSystemOriginal(cbRep_.getSelectedIndex() != 0);
getRealView().changeViewSystemCoords();
+ getOriginalView().changeViewSystemCoords();
+ restaurer();
}
});
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -16,6 +16,7 @@
import org.fudaa.ctulu.CtuluIOResult;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.PivImplementation;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
@@ -80,7 +81,13 @@
return;
}
+ // Transformation des points reels vers data.
PivOrthoPoint[] pts=ret.getSource();
+ GrMorphisme toData=impl.getCurrentProject().getTransformationParameters().getToData();
+ for (PivOrthoPoint pt : pts) {
+ pt.getRealPoint().autoApplique(toData);
+ }
+
PivOrthoPoint[] newpts;
if (keepPreviousPts) {
PivOrthoPoint[] oldpts=impl.getCurrentProject().getOrthoPoints();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -6,11 +6,13 @@
import org.fudaa.ctulu.CtuluIOResult;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.PivImplementation;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.io.PivBathyReader;
+import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivTransect;
/**
@@ -62,7 +64,12 @@
impl.error(ret.getAnalyze().getResume());
return;
}
- impl.getCurrentProject().addTransect(ret.getSource());
+
+ GrMorphisme toData=impl.getCurrentProject().getTransformationParameters().getToData();
+ PivTransect trans=ret.getSource();
+ trans.getStraight().autoApplique(toData);
+
+ impl.getCurrentProject().addTransect(trans);
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -7,16 +7,11 @@
*/
package org.fudaa.fudaa.piv.action;
-import com.memoire.bu.BuButton;
-import com.memoire.bu.BuDesktop;
-import com.memoire.fu.FuLog;
-
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.Arrays;
import javax.swing.AbstractButton;
import javax.swing.JComponent;
@@ -35,14 +30,19 @@
import org.fudaa.ebli.calque.edition.ZEditionAttributesDataI;
import org.fudaa.ebli.calque.edition.ZEditorLigneBriseePanel;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
-import org.fudaa.fudaa.piv.metier.PivTransect;
+import com.memoire.bu.BuButton;
+import com.memoire.bu.BuDesktop;
+import com.memoire.fu.FuLog;
+
/**
* Une action pour cr\xE9er un transect. Cette action est
* utilis\xE9e comme controlleur \xE0 la palette et au calque d'\xE9dition d\xE9di\xE9.
@@ -122,6 +122,11 @@
_pl.sommet(i).z_=(Double) _data.getValue(PivVisuPanel.ATT_IND_ZR, i);
}
+ // Transformation vers repere courant.
+ GrMorphisme toData=pnCalques_.getProject().getTransformationParameters().getToData();
+ _pl.autoApplique(toData);
+
+
PivTransectParams params=new PivTransectParams();
params.setInterpolationStep((Double)_data.getValue(PivVisuPanel.ATT_INTER, 0));
params.setRadius((Double)_data.getValue(PivVisuPanel.ATT_RAYON, 0));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -31,6 +31,7 @@
import org.fudaa.ebli.calque.edition.ZEditionAttributesDataI;
import org.fudaa.ebli.calque.edition.ZEditorLigneBriseePanel;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
@@ -93,12 +94,15 @@
PivOrthoPoint[] oldPoints=pnCalques_.getProject().getOrthoPoints();
// Valeurs des points r\xE9els.
+ GrMorphisme toData=pnCalques_.getProject().getTransformationParameters().getToData();
+
GrPoint[] realPts = new GrPoint[_pg.sommets_.nombre()];
for (int i = 0; i < _pg.sommets_.nombre(); i++) {
Double x = (Double) _data.getValue(PivOrthoPointsModel.ATT_IND_XR, i);
Double y = (Double) _data.getValue(PivOrthoPointsModel.ATT_IND_YR, i);
Double z = (Double) _data.getValue(PivVisuPanel.ATT_IND_ZR, i);
realPts[i] = new GrPoint(x.doubleValue(), y.doubleValue(), z.doubleValue());
+ realPts[i].autoApplique(toData);
}
if (oldPoints==null) {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -45,6 +45,12 @@
* @param _e L'evenement pour l'action.
*/
public void actionPerformed(final ActionEvent _e) {
+ // On ne saisit les donn\xE9es que dans le rep\xE8re de calcul
+ if (impl.getCurrentProject().getTransformationParameters().isCurrentSystemOriginal()) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul."));
+ return;
+ }
+
if (!isValide()) return;
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-07-02 09:30:13
|
Revision: 9138
http://sourceforge.net/p/fudaa/svn/9138
Author: bmarchan
Date: 2015-07-02 09:30:11 +0000 (Thu, 02 Jul 2015)
Log Message:
-----------
Refactoring
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
Added 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/action/PivChangeCoordinatesSystemAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java (from rev 9136, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -0,0 +1,129 @@
+/*
+ * @creation 5 avr. 2005
+ * @modification $Date: 2008-05-13 12:10:31 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.fudaa.ebli.commun.EbliFormatterInterface;
+import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationParameters;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuPanel;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuToolButton;
+
+/**
+ * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivCoordinatesSystemPanel extends JPanel {
+
+ protected JButton btApply_;
+ protected EbliFormatterInterface formatter_;
+ protected BuTextField tfTx_;
+ protected BuTextField tfTy_;
+ protected BuTextField tfTz_;
+ protected BuTextField tfRz_;
+ protected BuLabel lbRz_;
+ protected PivProject prj_;
+
+ /**
+ * @param _deplacement le calque de deplacement
+ * @param _formatter
+ */
+ public PivCoordinatesSystemPanel(EbliFormatterInterface _formatter) {
+ super();
+
+ formatter_ = _formatter;
+
+ tfTx_ = BuTextField.createDoubleField();
+ tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
+ tfTy_ = BuTextField.createDoubleField();
+ tfTz_ = BuTextField.createDoubleField();
+ tfRz_ = BuTextField.createDoubleField();
+ lbRz_ = new BuLabel("Rz:");
+
+ btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
+ btApply_.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
+ Double tx = (Double) tfTx_.getValue();
+ Double ty = (Double) tfTy_.getValue();
+ Double tz = (Double) tfTz_.getValue();
+ Double rz = (Double)tfRz_.getValue();
+
+ if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
+ PivTransformationParameters params=new PivTransformationParameters();
+ params.setTranslationX(tx);
+ params.setTranslationY(ty);
+ params.setTranslationZ(tz);
+ params.setRotationZ(rz);
+ prj_.setTransformationParameters(params);
+ }
+ }
+ }
+ });
+
+ buildComponent();
+ updateComponent();
+ }
+
+ public void setProject(PivProject _prj) {
+ prj_=_prj;
+ updateComponent();
+ }
+
+ public void updateComponent() {
+ if (prj_==null)
+ return;
+
+ tfTx_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationX()));
+ tfTy_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationY()));
+ tfTz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationZ()));
+ tfRz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getRotationZ()));
+ }
+
+ 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_);
+
+ BuPanel pnButtons = new BuPanel();
+ 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("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
+ add(pnMain, BorderLayout.CENTER);
+ add(pnButtons, BorderLayout.EAST);
+
+
+ }
+}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -1,129 +0,0 @@
-/*
- * @creation 5 avr. 2005
- * @modification $Date: 2008-05-13 12:10:31 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.fudaa.piv;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import org.fudaa.ebli.commun.EbliFormatterInterface;
-import org.fudaa.fudaa.piv.metier.PivProject;
-import org.fudaa.fudaa.piv.metier.PivTransformationParameters;
-
-import com.memoire.bu.BuGridLayout;
-import com.memoire.bu.BuLabel;
-import com.memoire.bu.BuPanel;
-import com.memoire.bu.BuResource;
-import com.memoire.bu.BuTextField;
-import com.memoire.bu.BuToolButton;
-
-/**
- * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
- *
- * @author Bertrand Marchand (mar...@de...)
- */
-public class PivTransformationPanel extends JPanel {
-
- protected JButton btApply_;
- protected EbliFormatterInterface formatter_;
- protected BuTextField tfTx_;
- protected BuTextField tfTy_;
- protected BuTextField tfTz_;
- protected BuTextField tfRz_;
- protected BuLabel lbRz_;
- protected PivProject prj_;
-
- /**
- * @param _deplacement le calque de deplacement
- * @param _formatter
- */
- public PivTransformationPanel(EbliFormatterInterface _formatter) {
- super();
-
- formatter_ = _formatter;
-
- tfTx_ = BuTextField.createDoubleField();
- tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
- tfTy_ = BuTextField.createDoubleField();
- tfTz_ = BuTextField.createDoubleField();
- tfRz_ = BuTextField.createDoubleField();
- lbRz_ = new BuLabel("Rz:");
-
- btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
- btApply_.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent _e) {
- if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
- Double tx = (Double) tfTx_.getValue();
- Double ty = (Double) tfTy_.getValue();
- Double tz = (Double) tfTz_.getValue();
- Double rz = (Double)tfRz_.getValue();
-
- if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
- PivTransformationParameters params=new PivTransformationParameters();
- params.setTranslationX(tx);
- params.setTranslationY(ty);
- params.setTranslationZ(tz);
- params.setRotationZ(rz);
- prj_.setTransformationParameters(params);
- }
- }
- }
- });
-
- buildComponent();
- updateComponent();
- }
-
- public void setProject(PivProject _prj) {
- prj_=_prj;
- updateComponent();
- }
-
- public void updateComponent() {
- if (prj_==null)
- return;
-
- tfTx_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationX()));
- tfTy_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationY()));
- tfTz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationZ()));
- tfRz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getRotationZ()));
- }
-
- 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_);
-
- BuPanel pnButtons = new BuPanel();
- 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("<html><p>Param\xE8tres de transformation du<br>rep\xE8re 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/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -40,7 +40,7 @@
import org.fudaa.ebli.trace.TraceIconModel;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
-import org.fudaa.fudaa.piv.action.PivChangeTransformationAction;
+import org.fudaa.fudaa.piv.action.PivChangeCoordinatesSystemAction;
import org.fudaa.fudaa.piv.action.PivComputeGridDefinitionAction;
import org.fudaa.fudaa.piv.action.PivEditAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
@@ -132,7 +132,7 @@
private PivEditAction actEdit_;
private SceneRotationAction actRotation_;
private SceneDeplacementAction actDeplacement_;
- private PivChangeTransformationAction actTransfMatrix_;
+ private PivChangeCoordinatesSystemAction actTransfMatrix_;
private JComboBox<String> cbRep_;
AbstractButton btRotation_;
@@ -291,7 +291,7 @@
actShowVelocities_=new PivShowVelocityAction((PivImplementation)getCtuluUI());
actShowFlow_=new PivShowFlowAction((PivImplementation)getCtuluUI());
actEdit_=new PivEditAction(this);
- actTransfMatrix_=new PivChangeTransformationAction((PivImplementation)getCtuluUI());
+ actTransfMatrix_=new PivChangeCoordinatesSystemAction((PivImplementation)getCtuluUI());
getScene().addSelectionListener(actEdit_);
// Les actions affich\xE9es dans le menu contextuel.
getEditor().getSceneEditor().setActions(new EbliActionInterface[]{actEdit_});
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java (from rev 9136, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -0,0 +1,42 @@
+package org.fudaa.fudaa.piv.action;
+
+import javax.swing.JComponent;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.commun.EbliFormatter;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivCoordinatesSystemPanel;
+
+public class PivChangeCoordinatesSystemAction extends EbliActionPaletteAbstract {
+ PivCoordinatesSystemPanel pn_;
+ PivImplementation impl_;
+
+ public PivChangeCoordinatesSystemAction(PivImplementation _impl) {
+ super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
+ setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
+ impl_=_impl;
+ }
+
+ @Override
+ protected JComponent buildContentPane() {
+ return getPanel();
+ }
+
+ public PivCoordinatesSystemPanel getPanel() {
+ if (pn_==null) {
+ EbliFormatter fmt=new EbliFormatter();
+ fmt.setFmt(CtuluLib.getDecimalFormat(2));
+ pn_=new PivCoordinatesSystemPanel(fmt);
+ }
+ return pn_;
+ }
+
+ @Override
+ public void updateBeforeShow() {
+ super.updateBeforeShow();
+ pn_.setProject(impl_.getCurrentProject());
+ }
+}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -1,42 +0,0 @@
-package org.fudaa.fudaa.piv.action;
-
-import javax.swing.JComponent;
-
-import org.fudaa.ctulu.CtuluLib;
-import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
-import org.fudaa.ebli.commun.EbliFormatter;
-import org.fudaa.ebli.commun.EbliLib;
-import org.fudaa.ebli.ressource.EbliResource;
-import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivTransformationPanel;
-
-public class PivChangeTransformationAction extends EbliActionPaletteAbstract {
- PivTransformationPanel pn_;
- PivImplementation impl_;
-
- public PivChangeTransformationAction(PivImplementation _impl) {
- super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
- setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
- impl_=_impl;
- }
-
- @Override
- protected JComponent buildContentPane() {
- return getPanel();
- }
-
- public PivTransformationPanel getPanel() {
- if (pn_==null) {
- EbliFormatter fmt=new EbliFormatter();
- fmt.setFmt(CtuluLib.getDecimalFormat(2));
- pn_=new PivTransformationPanel(fmt);
- }
- return pn_;
- }
-
- @Override
- public void updateBeforeShow() {
- super.updateBeforeShow();
- pn_.setProject(impl_.getCurrentProject());
- }
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-07-03 07:05:07
|
Revision: 9139
http://sourceforge.net/p/fudaa/svn/9139
Author: bmarchan
Date: 2015-07-03 07:05:05 +0000 (Fri, 03 Jul 2015)
Log Message:
-----------
Fix : Correctif pour le passage RO <-> RC
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/PivOriginalView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeAndDisplayParticlesActivity.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesGISDataModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanelController.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 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -72,7 +72,7 @@
Double rz = (Double)tfRz_.getValue();
if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
- PivTransformationParameters params=new PivTransformationParameters();
+ PivTransformationParameters params=prj_.getTransformationParameters();
params.setTranslationX(tx);
params.setTranslationY(ty);
params.setTranslationZ(tz);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -198,6 +198,10 @@
@Override
public void projectStateChanged(PivProject _prj, String _prop) {
+
+ if ("transfParams".equals(_prop)) {
+ changeViewSystemCoords();
+ }
if("pgmImages".equals(_prop)) {
majTools();
mdlOriginalImage.setSelectedImage(cbImg_.getSelectedIndex());
@@ -247,7 +251,7 @@
/**
* Change le repere.
*/
- public void changeViewSystemCoords() {
+ protected void changeViewSystemCoords() {
majLayers();
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -136,6 +136,12 @@
PivResultsModel mdlInstantFltResults;
PivResultsModel mdlAverageResults;
+ private PivResultsModel mdlParticleAverageResults_;
+
+ private PivResultsModel mdlParticleRawResults_;
+
+ private PivResultsModel mdlParticleFilteredResults_;
+
/**
* Une classe de d\xE9finition de la s\xE9quence d'animation.
* @author Bertrand Marchand (mar...@de...)
@@ -406,27 +412,23 @@
}
/**
- * Mise a jour des calques depuis le projet.
+ * @return Les resultats avec les coordonn\xE9es converties dans le repere courant.
*/
+ public PivResultsI[] buildResultsToReal(PivResultsI... _res) {
+ // Optimisation : On est dans le repere calcul, pas de transformation
+ if (!prj_.getTransformationParameters().isCurrentSystemOriginal())
+ return _res;
+
+ PivResultsI[] ret=new PivResultsI[_res.length];
+ for (int i=0; i<ret.length; i++)
+ ret[i]=new PivResultsTransformationAdapter(_res[i], prj_.getTransformationParameters().getToReal());
+ return ret;
+ }
+
+ /**
+ * Mise a jour des calques quand il y a chagement de projet.
+ */
protected void majLayers() {
- PivResultsI averageResults=null;
- if (prj_.getAverageResults()!=null)
- averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getTransformationParameters().getToReal());
- PivResultsI[] rawResults=null;
- if (prj_.getInstantRawResults()!=null) {
- rawResults=new PivResultsI[prj_.getInstantRawResults().length];
- for (int i=0; i<rawResults.length; i++) {
- rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getTransformationParameters().getToReal());
- }
- }
- PivResultsI[] filteredResults=null;
- if (prj_.getInstantFilteredResults()!=null) {
- filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
- for (int i=0; i<filteredResults.length; i++) {
- filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getTransformationParameters().getToReal());
- }
- }
-
mdlRealOrthoPoints=new PivOrthoPointsModel(PivVisuPanel.MODE_REAL_VIEW);
mdlRealOrthoPoints.setProjet(prj_);
cqRealOrthoPoints_.setModele(mdlRealOrthoPoints);
@@ -439,19 +441,42 @@
mdlRealImage.setProjet(prj_);
cqRealImg_.setModele(mdlRealImage);
- if (averageResults!=null) {
- mdlVelResults=new PivVelResultsModel(averageResults);
+ if (prj_.getAverageResults()!=null) {
+ mdlVelResults=new PivVelResultsModel(prj_,prj_.getAverageResults());
cqVelResults.setModele(mdlVelResults);
+
+ mdlAverageResults=new PivResultsModel(prj_, null, prj_.getAverageResults());
+ cqAverageIso_.setModele(mdlAverageResults);
+
+ // Les resultats restent dans le repere de calcul. Seules les lignes calcul\xE9es le sont dans le rep\xE8re courant.
+ mdlParticleAverageResults_=new PivResultsModel(prj_,null,prj_.getAverageResults());
+ cqAveParticles_.getSource().setResults(mdlParticleAverageResults_);
+ cqAveParticles_.changeRepere();
}
- if (rawResults!=null) {
- mdlInstantVelResults=new PivVelResultsModel(rawResults);
+ if (prj_.getInstantRawResults()!=null) {
+ mdlInstantVelResults=new PivVelResultsModel(prj_, prj_.getInstantRawResults());
cqInstantVelResults_.setModele(mdlInstantVelResults);
+
+ mdlInstantResults=new PivResultsModel(prj_, null, prj_.getInstantRawResults());
+ cqInstantIso_.setModele(mdlInstantResults);
+
+ // Les resultats restent dans le repere de calcul. Seules les lignes calcul\xE9es le sont dans le rep\xE8re courant.
+ mdlParticleRawResults_=new PivResultsModel(prj_, null, prj_.getInstantRawResults());
+ cqRawParticles_.getSource().setResults(mdlParticleRawResults_);
+ cqRawParticles_.changeRepere();
}
- if (filteredResults!=null) {
- mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
+ if (prj_.getInstantFilteredResults()!=null) {
+ mdlInstantVelFltResults=new PivVelResultsModel(prj_, prj_.getInstantFilteredResults());
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
+
+ mdlInstantFltResults=new PivResultsModel(prj_,null, prj_.getInstantFilteredResults());
+ cqInstantFltIso_.setModele(mdlInstantFltResults);
+
+ mdlParticleFilteredResults_=new PivResultsModel(prj_,null,prj_.getInstantFilteredResults());
+ cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
+ cqFltParticles_.changeRepere();
}
mdlFlowResults=new PivFlowResultsModel();
@@ -460,24 +485,6 @@
// Evite de perdre la selection en cours.
cqTransect_.modeleDonnees().setProjet(prj_);
-
- if (rawResults!=null) {
- mdlInstantResults=new PivResultsModel(rawResults,null);
- cqInstantIso_.setModele(mdlInstantResults);
- cqRawParticles_.getSource().setResults(mdlInstantResults);
- }
-
- if (filteredResults!=null) {
- mdlInstantFltResults=new PivResultsModel(filteredResults,null);
- cqInstantFltIso_.setModele(mdlInstantFltResults);
- cqFltParticles_.getSource().setResults(mdlInstantFltResults);
- }
-
- if (averageResults!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults}, null);
- cqAverageIso_.setModele(mdlAverageResults);
- cqAveParticles_.getSource().setResults(mdlAverageResults);
- }
}
@Override
@@ -634,7 +641,7 @@
/**
* Change le repere.
*/
- public void changeViewSystemCoords() {
+ protected void changeViewSystemCoords() {
majLayers();
}
@@ -738,25 +745,23 @@
@Override
public void projectStateChanged(PivProject _prj, String _prop) {
- PivResultsI averageResults=null;
- if (prj_.getAverageResults()!=null)
- averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getTransformationParameters().getToReal());
- PivResultsI[] rawResults=null;
- if (prj_.getInstantRawResults()!=null) {
- rawResults=new PivResultsI[prj_.getInstantRawResults().length];
- for (int i=0; i<rawResults.length; i++) {
- rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getTransformationParameters().getToReal());
- }
+ if ("transfParams".equals(_prop)) {
+ mdlRealImage.update();
+ mdlRealOrthoPoints.update();
+ cqTransect_.modeleDonnees().update();
+ mdlFlowResults.update();
+ mdlAverageResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+ mdlVelResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+ mdlInstantResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+ mdlInstantVelResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+ mdlInstantFltResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+ mdlInstantVelFltResults.setSystemViewOriginal(prj_.getTransformationParameters().isCurrentSystemOriginal());
+
+ cqAveParticles_.changeRepere();
+ cqFltParticles_.changeRepere();
+ cqRawParticles_.changeRepere();
}
- PivResultsI[] filteredResults=null;
- if (prj_.getInstantFilteredResults()!=null) {
- filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
- for (int i=0; i<filteredResults.length; i++) {
- filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getTransformationParameters().getToReal());
- }
- }
-
- if ("transfImages".equals(_prop)) {
+ else if ("transfImages".equals(_prop)) {
majTools();
mdlRealImage.update();
}
@@ -770,47 +775,52 @@
mdlFlowResults.update();
}
else if("averageResults".equals(_prop)) {
- if (averageResults!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults},null);
- mdlVelResults=new PivVelResultsModel(new PivResultsI[]{averageResults});
- }
- else {
- mdlAverageResults=null;
- mdlVelResults=null;
- }
+ PivResultsI[] aveResultats=null;
+ if (prj_.getAverageResults()!=null)
+ aveResultats=new PivResultsI[]{prj_.getAverageResults()};
+
+ mdlAverageResults.setResults(aveResultats);
+ mdlParticleAverageResults_.setResults(aveResultats);
+ mdlVelResults.setResults(aveResultats);
+// }
+// else {
+// mdlAverageResults=null;
+// mdlVelResults=null;
+// }
cqAverageIso_.setModele(mdlAverageResults);
cqVelResults.setModele(mdlVelResults);
- cqAveParticles_.getSource().setResults(mdlAverageResults);
+ cqAveParticles_.getSource().setResults(mdlParticleAverageResults_);
majTools();
}
else if ("instantResults".equals(_prop)) {
- if (rawResults!=null) {
- mdlInstantResults=new PivResultsModel(rawResults,null);
- mdlInstantVelResults=new PivVelResultsModel(rawResults);
- }
- else {
- mdlInstantResults=null;
- mdlInstantVelResults=null;
- }
+ mdlParticleRawResults_.setResults(prj_.getInstantRawResults());
+ mdlInstantResults.setResults(prj_.getInstantRawResults());
+ mdlInstantVelResults.setResults(prj_.getInstantRawResults());
+// }
+// else {
+// mdlInstantResults=null;
+// mdlInstantVelResults=null;
+// }
cqInstantIso_.setModele(mdlInstantResults);
cqInstantVelResults_.setModele(mdlInstantVelResults);
- cqRawParticles_.getSource().setResults(mdlInstantResults);
+ cqRawParticles_.getSource().setResults(mdlParticleRawResults_);
majTools();
}
else if ("instantFilteredResults".equals(_prop)) {
- if (filteredResults!=null) {
- mdlInstantFltResults=new PivResultsModel(filteredResults,null);
- mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
- }
- else {
- mdlInstantFltResults=null;
- mdlInstantVelFltResults=null;
- }
+// if (prj_.getInstantFilteredResults()!=null) {
+ mdlParticleFilteredResults_.setResults(prj_.getInstantFilteredResults());
+ mdlInstantFltResults.setResults(prj_.getInstantFilteredResults());
+ mdlInstantVelFltResults.setResults(prj_.getInstantFilteredResults());
+// }
+// else {
+// mdlInstantFltResults=null;
+// mdlInstantVelFltResults=null;
+// }
cqInstantFltIso_.setModele(mdlInstantFltResults);
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
- cqFltParticles_.getSource().setResults(mdlInstantFltResults);
+ cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
majTools();
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -49,6 +49,7 @@
import org.fudaa.fudaa.piv.action.PivShowVelocityAction;
import org.fudaa.fudaa.piv.layer.PivEditableModel;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationParameters;
import com.memoire.bu.BuDesktop;
import com.memoire.bu.BuSpecificBar;
@@ -145,7 +146,7 @@
* @param _impl L'implementation de l'application.
*/
public PivVisuPanel(PivImplementation _impl) {
- super(_impl);
+ super(null, new PivVisuPanelController(_impl));
// getCqSelectionI().setEditSelectionWhenDoubleClick(false);
getScene().setRestrictedToCalqueActif(true);
@@ -211,10 +212,10 @@
* @param _prj Le projet.
*/
public void setProjet(PivProject _prj) {
+ projet=_prj;
for (PivViewI view : getViews()) {
view.setProject(_prj);
}
- projet=_prj;
// -1 : pour forcer la mise a jour de la vue.
viewMode_=-1;
@@ -309,12 +310,12 @@
@Override
public void itemStateChanged(ItemEvent e) {
- if (projet != null)
- projet.getTransformationParameters().setCurrentSystemOriginal(cbRep_.getSelectedIndex() != 0);
-
- getRealView().changeViewSystemCoords();
- getOriginalView().changeViewSystemCoords();
+ if (projet != null) {
+ PivTransformationParameters params=projet.getTransformationParameters();
+ params.setCurrentSystemOriginal(cbRep_.getSelectedIndex() != 0);
+ projet.setTransformationParameters(params);
restaurer();
+ }
}
});
}
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanelController.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanelController.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanelController.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -0,0 +1,19 @@
+package org.fudaa.fudaa.piv;
+
+import org.fudaa.ctulu.CtuluUI;
+import org.fudaa.ebli.calque.ZEbliCalquePanelController;
+import org.fudaa.ebli.commun.EbliActionInterface;
+
+public class PivVisuPanelController extends ZEbliCalquePanelController {
+
+ public PivVisuPanelController(CtuluUI _ui) {
+ super(_ui);
+ }
+
+ @Override
+ protected EbliActionInterface createRepereAction() {
+ return null;
+ }
+
+
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanelController.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -6,28 +6,26 @@
import javax.swing.event.TreeSelectionListener;
import org.fudaa.ebli.calque.BCalque;
-import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.commun.EbliActionSimple;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
import org.fudaa.fudaa.commun.impl.FudaaPanelTask;
import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.particles.PivParticlesSourceI;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.particles.PivComputeParticlesTaskModel;
import org.fudaa.fudaa.piv.particles.PivParticlesLayer;
-import org.fudaa.fudaa.piv.particles.PivComputeParticlesTaskModel;
-import org.fudaa.fudaa.sig.FSigResource;
/**
* Permet d'afficher le dialogue pour les trajectoire/ligne de courant
*/
public class PivCreateParticleLinesAction extends EbliActionSimple implements TreeSelectionListener {
- protected ZEbliCalquesPanel pnCalque_;
+ protected PivVisuPanel pnCalque_;
protected FudaaCommonImplementation impl_;
protected PivParticlesLayer destLayer_;
PivParticlesLayer[] layers_;
PivComputeParticlesTaskModel taskTrajectories = null;
- public PivCreateParticleLinesAction(final ZEbliCalquesPanel panel, FudaaCommonImplementation impl, PivParticlesLayer[] _layers) {
+ public PivCreateParticleLinesAction(final PivVisuPanel panel, FudaaCommonImplementation impl, PivParticlesLayer[] _layers) {
super(PivResource.getS("Calcul des lignes de courant/trajectoires..."), PivResource.PIV.getIcon("crystal_oscilloscope.png"), "TRAJ");
impl_ = impl;
pnCalque_ = panel;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -24,7 +24,9 @@
import org.fudaa.fudaa.meshviewer.layer.MvIsoModelInterface;
import org.fudaa.fudaa.meshviewer.model.MvElementModelDefault;
import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.poly2tri.Poly2Tri;
import org.poly2tri.triangulation.TriangulationPoint;
import org.poly2tri.triangulation.delaunay.DelaunayTriangle;
@@ -45,24 +47,84 @@
private CtuluVariable var;
/** Le temps courant pour lequel les valeurs sont retourn\xE9es */
private int tIdx=0;
+ /** Tous les resultats dans le repere courant pour tous les temps */
+ private PivResultsI[] results;
/** Tous les resultats pour tous les temps */
- private PivResultsI[] results;
+ private PivResultsI[] resData;
+ /** Le projet associ\xE9 */
+ private PivProject prj_;
/** Pour emettre un evenement de propri\xE9t\xE9 */
private PropertyChangeSupport propDelegate=new PropertyChangeSupport(this);
+ /** La progression */
+ ProgressionInterface prog_;
+ /** Le system de coordonn\xE9es */
+ private boolean isSystemOriginal_=false;
/**
* Construction avec les resultats.
* @param _res Les resultats.
*/
- public PivResultsModel(PivResultsI[] _res, ProgressionInterface _prog) {
+ public PivResultsModel(PivProject _prj, ProgressionInterface _prog, PivResultsI... _res) {
super(null);
- results=_res;
+ prj_=_prj;
+ resData=_res;
+ prog_=_prog;
+ setSystemViewOriginal(false);
+
var=results[0].getResults()[0];
- EfGrid grid=buildFromResults(_res[0], _prog);
+ }
+
+ public void setResults(PivResultsI[] _res) {
+
+ resData=_res;
+
+ if (!isSystemOriginal_) {
+ results=resData;
+ }
+ else {
+ results=adaptResultsToReal(resData);
+ }
+ EfGrid grid=null;
+ if (results!=null && results.length != 0) {
+ grid=buildFromResults(results[0], prog_);
+ }
setGrid(grid);
}
/**
+ * Definit si le system de coordonn\xE9es est original ou calcul.
+ * @param _b True : Original
+ */
+ public void setSystemViewOriginal(boolean _b) {
+ if (!_b) {
+ results=resData;
+ }
+ else {
+ results=adaptResultsToReal(resData);
+ }
+ EfGrid grid=null;
+ if (results!=null && results.length != 0) {
+ grid=buildFromResults(results[0], prog_);
+ }
+ setGrid(grid);
+
+ propDelegate.firePropertyChange("system", isSystemOriginal_, isSystemOriginal_=_b);
+ }
+
+ /**
+ * @return Les resultats avec les coordonn\xE9es adapt\xE9es dans le repere courant.
+ */
+ protected PivResultsI[] adaptResultsToReal(PivResultsI... _res) {
+ if (_res==null)
+ return null;
+
+ PivResultsI[] ret=new PivResultsI[_res.length];
+ for (int i=0; i<ret.length; i++)
+ ret[i]=new PivResultsTransformationAdapter(_res[i], prj_.getTransformationParameters().getToOriginal());
+ return ret;
+ }
+
+ /**
* Ajout d'un calque listener pour les propri\xE9t\xE9s du mod\xE8le (hors datas).
* @param _listener Le listener
*/
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -9,8 +9,10 @@
import org.fudaa.ebli.geometrie.GrSegment;
import org.fudaa.ebli.palette.BPaletteInfo.InfoData;
import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivResultsI;
import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import com.memoire.bu.BuTable;
@@ -25,17 +27,63 @@
int iselres_=0;
/** Le point, toujours le m\xEAme, pour retourner les coordonn\xE9es 3D d'un r\xE9sultat. */
GrPoint ptCache_=new GrPoint();
- /** Les resultats */
+ /** Les resultats dans le rep\xE8re courant */
PivResultsI[] results_;
+ /** Tous les r\xE9sultats */
+ PivResultsI[] resData;
+ /** Le projet */
+ PivProject prj_;
+ /** Le system de coordonn\xE9es */
+ private boolean isSystemOriginal_=false;
/**
* Le constructeur.
*/
- public PivVelResultsModel(PivResultsI... _res) {
- results_=_res;
+ public PivVelResultsModel(PivProject _prj, PivResultsI... _res) {
+ resData=_res;
+ prj_=_prj;
+ setSystemViewOriginal(false);
}
+ public void setResults(PivResultsI[] _res) {
+ resData=_res;
+
+ if (!isSystemOriginal_) {
+ results_=resData;
+ }
+ else {
+ results_=adaptResultsToReal(resData);
+ }
+ }
+
/**
+ * Definit si le system de coordonn\xE9es est original ou calcul.
+ * @param _b True : Original
+ */
+ public void setSystemViewOriginal(boolean _b) {
+ if (!_b) {
+ results_=resData;
+ }
+ else {
+ results_=adaptResultsToReal(resData);
+ }
+ isSystemOriginal_=_b;
+ }
+
+ /**
+ * @return Les resultats avec les coordonn\xE9es adapt\xE9es dans le repere courant.
+ */
+ protected PivResultsI[] adaptResultsToReal(PivResultsI... _res) {
+ if (_res==null)
+ return null;
+
+ PivResultsI[] ret=new PivResultsI[_res.length];
+ for (int i=0; i<ret.length; i++)
+ ret[i]=new PivResultsTransformationAdapter(_res[i], prj_.getTransformationParameters().getToOriginal());
+ return ret;
+ }
+
+ /**
* @return Le nombre de temps du mod\xE8le
*/
public int getNbTime() {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeAndDisplayParticlesActivity.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeAndDisplayParticlesActivity.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeAndDisplayParticlesActivity.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -17,6 +17,7 @@
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeDefault;
import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.sig.layer.FSigLayerGroup;
import com.memoire.fu.FuLog;
@@ -101,7 +102,7 @@
FSigLayerGroup ligneDeCourant_;
- final ZEbliCalquesPanel pn_;
+ final PivVisuPanel pn_;
boolean stop_;
@@ -116,7 +117,7 @@
* @param c
* @param _tester Peut \xEAtre null
*/
- public PivComputeAndDisplayParticlesActivity(final ZEbliCalquesPanel calque, PivParticlesLayer c, EfLineIntersectionsCorrectionTester _tester) {
+ public PivComputeAndDisplayParticlesActivity(final PivVisuPanel calque, PivParticlesLayer c, EfLineIntersectionsCorrectionTester _tester) {
this.pn_ = calque;
destLayer_ = c;
lineIntersectTester_=_tester;
@@ -140,7 +141,7 @@
// final Map<GISAttributeInterface, CtuluVariable> varAtttributes = new HashMap<GISAttributeInterface, CtuluVariable>(
// 20);
// final List<GISAttributeInterface> attDansOrdreIns = fillCorrespondantAttributeVariable(data, calque, varAtttributes);
- PivParticlesGISDataModel model = PivParticlesGISDataModel.build(result, log);
+ PivParticlesGISDataModel model = PivParticlesGISDataModel.build(result, pn_.getProject().getTransformationParameters().getToReal(), log);
if (model == null || log.containsFatalError()) return;
final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -36,11 +36,13 @@
import org.fudaa.dodico.ef.operation.EfIndexHelper;
import org.fudaa.dodico.ef.operation.EfTrajectoireParameters;
import org.fudaa.dodico.ef.operation.EfTrajectoireParametersMarqueur;
-import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.fudaa.commun.impl.FudaaPanelTaskModel;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.sig.layer.FSigTempLineInLayer;
import com.memoire.bu.BuComboBox;
@@ -48,7 +50,6 @@
import com.memoire.bu.BuPanel;
import com.memoire.bu.BuValueValidator;
import com.memoire.bu.BuVerticalLayout;
-import com.memoire.fu.FuLog;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.LineString;
@@ -110,7 +111,8 @@
private static final double MAXDIST = 1E-3;
PivComputeAndDisplayParticlesActivity algoCalcul_;
- ZEbliCalquesPanel pnCalques_;
+ PivVisuPanel pnCalques_;
+ PivProject prj_;
// choix mode
JComboBox<String> choixMode_ = new JComboBox<>(new String[] { PivResource.getS("Lignes de courant"), PivResource.getS("Trajectoires") });
JComponent duree_;
@@ -145,9 +147,10 @@
* @param _source
* @param _destLayer Le calque de destination. Peut \xEAtre null.
*/
- public PivComputeParticlesTaskModel(final ZEbliCalquesPanel _pnCalques, PivParticlesLayer _destLayer) {
+ public PivComputeParticlesTaskModel(final PivVisuPanel _pnCalques, PivParticlesLayer _destLayer) {
destlayer_=_destLayer;
pnCalques_ = _pnCalques;
+ prj_=pnCalques_.getProject();
int nbTimeStep = destlayer_.getSource().getNbTimeStep();
if (nbTimeStep < 2)
choixMode_.setEnabled(false);
@@ -241,12 +244,16 @@
}
// -- premier point --//
- doubleEditor_.setValue(dataReplay.segment_.get(0).x, x_);
- doubleEditor_.setValue(dataReplay.segment_.get(0).y, y_);
+ GrPoint ptFirst=new GrP...
[truncated message content] |
|
From: <bma...@us...> - 2015-08-14 20:43:20
|
Revision: 9146
http://sourceforge.net/p/fudaa/svn/9146
Author: bmarchan
Date: 2015-08-14 20:43:18 +0000 (Fri, 14 Aug 2015)
Log Message:
-----------
Nettoyage sur layers resultats
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -61,7 +61,6 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivProjectStateListener;
import org.fudaa.fudaa.piv.metier.PivResultsI;
-import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.particles.PivParticlesLayer;
import org.fudaa.fudaa.piv.particles.PivResultSource;
@@ -74,7 +73,6 @@
public class PivRealView implements PivViewI, PivProjectStateListener {
/** Le nom de la vue en espace image r\xE9el */
public static final String TITLE=PivResource.getS("Espace r\xE9el");
-
/** La d\xE9finition de coordonn\xE9e pour X */
private static final EbliCoordinateDefinition DEF_COOR_X=new EbliCoordinateDefinition("X", new EbliFormatter(SI.METER));
/** La d\xE9finition de coordonn\xE9e pour Y */
@@ -82,7 +80,7 @@
private PivNewTransectAction actNewTransect_;
private PivTransectParamAction actParamsTransect_;
-
+ private PivCreateParticleLinesAction actParticleLines_;
private EbliActionAbstract actRealView_;
private PivVisuPanel pnLayers_;
private JComboBox<CtuluVariable> cbVar_;
@@ -91,15 +89,17 @@
private JComboBox<String> cbVel_;
private EbliAnimationAction actAnim_;
private AbstractButton btAnim_;
- private PivCreateParticleLinesAction actParticleLines_;
private AbstractButton btStreamLines_;
private PivProject prj_;
private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>();
private boolean enableEvents2_=true;
private boolean enableEvents_=true;
+ /** L'affichage des GRP */
ZCalquePointEditable cqRealOrthoPoints_;
+ /** L'affichage des GRP de controle */
ZCalqueMultiPointEditable cqRealControlPoints_;
+ /** L'affichage de l'image en coordon\xE9es r\xE9elles */
PivImageRasterLayer cqRealImg_;
/** L'affichage d'un transect */
PivTransectLayer cqTransect_;
@@ -135,13 +135,10 @@
PivResultsModel mdlInstantResults;
PivResultsModel mdlInstantFltResults;
PivResultsModel mdlAverageResults;
+ PivResultsModel mdlParticleAverageResults_;
+ PivResultsModel mdlParticleRawResults_;
+ PivResultsModel mdlParticleFilteredResults_;
- private PivResultsModel mdlParticleAverageResults_;
-
- private PivResultsModel mdlParticleRawResults_;
-
- private PivResultsModel mdlParticleFilteredResults_;
-
/**
* Une classe de d\xE9finition de la s\xE9quence d'animation.
* @author Bertrand Marchand (mar...@de...)
@@ -412,20 +409,6 @@
}
/**
- * @return Les resultats avec les coordonn\xE9es converties dans le repere courant.
- */
- public PivResultsI[] buildResultsToReal(PivResultsI... _res) {
- // Optimisation : On est dans le repere calcul, pas de transformation
- if (!prj_.getTransformationParameters().isCurrentSystemOriginal())
- return _res;
-
- PivResultsI[] ret=new PivResultsI[_res.length];
- for (int i=0; i<ret.length; i++)
- ret[i]=new PivResultsTransformationAdapter(_res[i], prj_.getTransformationParameters().getToReal());
- return ret;
- }
-
- /**
* Mise a jour des calques quand il y a chagement de projet.
*/
protected void majLayers() {
@@ -441,20 +424,23 @@
mdlRealImage.setProjet(prj_);
cqRealImg_.setModele(mdlRealImage);
- if (prj_.getAverageResults()!=null) {
- mdlVelResults=new PivVelResultsModel(prj_,prj_.getAverageResults());
+ PivResultsI[] aveResultats=null;
+ if (prj_.getAverageResults()!=null)
+ aveResultats=new PivResultsI[]{prj_.getAverageResults()};
+// if (prj_.getAverageResults()!=null) {
+ mdlVelResults=new PivVelResultsModel(prj_,aveResultats);
cqVelResults.setModele(mdlVelResults);
- mdlAverageResults=new PivResultsModel(prj_, null, prj_.getAverageResults());
+ mdlAverageResults=new PivResultsModel(prj_, null, aveResultats);
cqAverageIso_.setModele(mdlAverageResults);
// Les resultats restent dans le repere de calcul. Seules les lignes calcul\xE9es le sont dans le rep\xE8re courant.
- mdlParticleAverageResults_=new PivResultsModel(prj_,null,prj_.getAverageResults());
+ mdlParticleAverageResults_=new PivResultsModel(prj_,null,aveResultats);
cqAveParticles_.getSource().setResults(mdlParticleAverageResults_);
cqAveParticles_.changeRepere();
- }
+// }
- if (prj_.getInstantRawResults()!=null) {
+// if (prj_.getInstantRawResults()!=null) {
mdlInstantVelResults=new PivVelResultsModel(prj_, prj_.getInstantRawResults());
cqInstantVelResults_.setModele(mdlInstantVelResults);
@@ -465,9 +451,9 @@
mdlParticleRawResults_=new PivResultsModel(prj_, null, prj_.getInstantRawResults());
cqRawParticles_.getSource().setResults(mdlParticleRawResults_);
cqRawParticles_.changeRepere();
- }
+// }
- if (prj_.getInstantFilteredResults()!=null) {
+// if (prj_.getInstantFilteredResults()!=null) {
mdlInstantVelFltResults=new PivVelResultsModel(prj_, prj_.getInstantFilteredResults());
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
@@ -477,7 +463,7 @@
mdlParticleFilteredResults_=new PivResultsModel(prj_,null,prj_.getInstantFilteredResults());
cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
cqFltParticles_.changeRepere();
- }
+// }
mdlFlowResults=new PivFlowResultsModel();
mdlFlowResults.setProjet(prj_);
@@ -637,13 +623,6 @@
}
}
}
-
- /**
- * Change le repere.
- */
- protected void changeViewSystemCoords() {
- majLayers();
- }
/**
* Mise a jour les outils.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -232,7 +232,7 @@
CtuluRange range = new CtuluRange();
this.getRange(range);
palette.initPlages(10, range.min_, range.max_);
- palette.setSousTitre(modele()==null ? null:modele().getCurrentVar().getName());
+ palette.setSousTitre((modele()==null || modele().getCurrentVar()==null) ? null:modele().getCurrentVar().getName());
this.setPaletteCouleurPlages(palette);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -67,28 +67,20 @@
public PivResultsModel(PivProject _prj, ProgressionInterface _prog, PivResultsI... _res) {
super(null);
prj_=_prj;
- resData=_res;
prog_=_prog;
- setSystemViewOriginal(false);
-
- var=results[0].getResults()[0];
+ setResults(_res);
}
public void setResults(PivResultsI[] _res) {
-
+ PivResultsI[] oldRes=resData;
resData=_res;
- if (!isSystemOriginal_) {
- results=resData;
- }
- else {
- results=adaptResultsToReal(resData);
- }
- EfGrid grid=null;
- if (results!=null && results.length != 0) {
- grid=buildFromResults(results[0], prog_);
- }
- setGrid(grid);
+ setSystemViewOriginal(isSystemOriginal_);
+
+ if (results!=null && results.length !=0 && var==null)
+ var=results[0].getResults()[0];
+
+ propDelegate.firePropertyChange("results", oldRes, resData);
}
/**
@@ -108,7 +100,6 @@
}
setGrid(grid);
- propDelegate.firePropertyChange("system", isSystemOriginal_, isSystemOriginal_=_b);
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-02-24 15:56:10
|
Revision: 9292
http://sourceforge.net/p/fudaa/svn/9292
Author: bmarchan
Date: 2016-02-24 15:56:08 +0000 (Wed, 24 Feb 2016)
Log Message:
-----------
- Add show flow results action
- Signe +/- pour l'ecart sur fenetre de resultats de calcul de debit
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowResultsAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-02-24 12:58:11 UTC (rev 9291)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -10,6 +10,7 @@
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
+import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JLabel;
@@ -88,17 +89,17 @@
return rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
case 2:
val=rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
- return Math.abs((val-meanDisch_)/meanDisch_*100);
+ return (val-meanDisch_)/meanDisch_*100;
case 3:
return rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
case 4:
val=rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
- return Math.abs((val-meanArea_)/meanArea_*100);
+ return (val-meanArea_)/meanArea_*100;
case 5:
return rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
case 6:
val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
- return Math.abs((val-meanMeanV_)/meanMeanV_*100);
+ return (val-meanMeanV_)/meanMeanV_*100;
}
}
@@ -111,19 +112,26 @@
* Une classe pour une repr\xE9sentation des doubles.
*/
private class DischargeCellRenderer extends DefaultTableCellRenderer {
- NumberFormat fmt = CtuluLib.getDecimalFormat(3);
+ DecimalFormat fmt = CtuluLib.getDecimalFormat(3);
+ DecimalFormat fmtEcart = CtuluLib.getNoEffectDecimalFormat();
public DischargeCellRenderer() {
this.setHorizontalAlignment(SwingConstants.RIGHT);
fmt.setMaximumFractionDigits(3);
fmt.setMinimumFractionDigits(3);
+ fmtEcart.setMaximumFractionDigits(1);
+ fmtEcart.setMinimumFractionDigits(1);
+ fmtEcart.setPositivePrefix("+");
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
if (value instanceof Double) {
- this.setText(fmt.format((Double)value));
+ if (column==2 || column==4 || column==6)
+ this.setText(fmtEcart.format((Double)value));
+ else
+ this.setText(fmt.format((Double)value));
}
return this;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-02-24 12:58:11 UTC (rev 9291)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -57,6 +57,7 @@
import org.fudaa.fudaa.piv.action.PivOrthoVerifyGRPAction;
import org.fudaa.fudaa.piv.action.PivSelectImagesAction;
import org.fudaa.fudaa.piv.action.PivShow3DTransectAction;
+import org.fudaa.fudaa.piv.action.PivShowFlowResultsAction;
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivProjectStateListener;
@@ -820,7 +821,7 @@
mn.add(sm);
mn.add(get2dFrame().getVisuPanel().getRealView().getParamsTransectAction().buildMenuItem(EbliComponentFactory.INSTANCE));
mn.add(new PivComputeFlowAction(this));
-// mn.add(get2dFrame().getVisuPanel().getShowFlowAction().buildMenuItem(EbliComponentFactory.INSTANCE));
+ mn.add(new PivShowFlowResultsAction(this));
mn.add(new PivShow3DTransectAction(this));
mn.addSeparator(PivResource.getS("Vue"));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-02-24 12:58:11 UTC (rev 9291)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -311,13 +311,6 @@
cqFlowResults.setName("cqRealFlow");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
cqFlowResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
- cqFlowResults.addPropertyChangeListener(new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- if ("visible".equals(evt.getPropertyName())) {
- pnLayers_.getShowFlowAction().setSelected((Boolean)evt.getNewValue());
- }
- }
- });
// Layer des transect
cqTransect_= new PivTransectLayer();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2016-02-24 12:58:11 UTC (rev 9291)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -45,7 +45,6 @@
import org.fudaa.fudaa.piv.action.PivEditAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
import org.fudaa.fudaa.piv.action.PivOrthoGRPAction;
-import org.fudaa.fudaa.piv.action.PivShowFlowAction;
import org.fudaa.fudaa.piv.action.PivShowVelocityAction;
import org.fudaa.fudaa.piv.layer.PivEditableModel;
import org.fudaa.fudaa.piv.metier.PivProject;
@@ -129,7 +128,6 @@
private PivComputeGridDefinitionAction actComputeGrid_;
private PivShowVelocityAction actShowVelocities_;
- private PivShowFlowAction actShowFlow_;
private PivEditAction actEdit_;
private SceneRotationAction actRotation_;
private SceneDeplacementAction actDeplacement_;
@@ -290,7 +288,6 @@
protected void buildActions() {
actComputeGrid_=new PivComputeGridDefinitionAction(this);
actShowVelocities_=new PivShowVelocityAction((PivImplementation)getCtuluUI());
- actShowFlow_=new PivShowFlowAction((PivImplementation)getCtuluUI());
actEdit_=new PivEditAction(this);
actTransfMatrix_=new PivChangeCoordinatesSystemAction((PivImplementation)getCtuluUI());
getScene().addSelectionListener(actEdit_);
@@ -377,14 +374,6 @@
}
/**
- * Retourne l'action pour voir les d\xE9bits.
- * @return L'action.
- */
- public PivShowFlowAction getShowFlowAction() {
- return actShowFlow_;
- }
-
- /**
* Retourne l'action pour \xE9diter une g\xE9om\xE9trie.
* @return L'action.
*/
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowAction.java 2016-02-24 12:58:11 UTC (rev 9291)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowAction.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -1,50 +0,0 @@
-/*
- * @creation 3 juil. 2008
- * @modification $Date:$
- * @license GNU General Public License 2
- * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail fud...@li...
- */
-package org.fudaa.fudaa.piv.action;
-
-import org.fudaa.ebli.commun.EbliActionChangeState;
-import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-
-/**
- * Une action pour voir les d\xE9bits apr\xE8s calcul en espace r\xE9el.
- *
- * @author Bertrand Marchand (mar...@de...)
- * @version $Id$
- */
-public class PivShowFlowAction extends EbliActionChangeState {
- PivImplementation impl;
-
- /**
- * Constructeur.
- * @param _impl L'implementation.
- */
- public PivShowFlowAction(PivImplementation _impl) {
- super(PivResource.getS("Voir les vitesses moyennes sur la verticale"), null, "SHOW_FLOW_RESULTS");
-
- impl=_impl;
- setEnabled(false);
- }
-
-
- @Override
- public String getEnableCondition() {
- return PivResource.getS("Il doit exister des r\xE9sultats de calcul de d\xE9bit");
- }
-
-
- @Override
- public void changeAction() {
- // On bascule dans la bonne vue.
- if (isSelected()) {
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
- }
- impl.get2dFrame().getVisuPanel().setFlowLayerVisible(isSelected());
- }
-}
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowResultsAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowResultsAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowResultsAction.java 2016-02-24 15:56:08 UTC (rev 9292)
@@ -0,0 +1,69 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+
+import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivFlowInfoPanel;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivResource;
+
+/**
+ * Une action pour afficher les resultats de calcul de d\xE9bit (sans refaire le calcul).
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivComputeFlowAction.java 9133 2015-06-16 16:36:57Z bmarchan $
+ */
+public class PivShowFlowResultsAction extends EbliActionSimple {
+ PivImplementation impl;
+ CtuluDialog diProgress_;
+
+ /**
+ * Constructeur.
+ * @param _impl L'implementation.
+ */
+ public PivShowFlowResultsAction(PivImplementation _impl) {
+ super(PivResource.getS("Afficher les r\xE9sultats du calcul..."), null, "SHOW_FLOW_RESULTS");
+
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Affiche la fenetre resultats.
+ * @param _e L'evenement pour l'action.
+ */
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ if (!isValide()) {
+ return;
+ }
+
+ PivFlowInfoPanel pnInfo=new PivFlowInfoPanel(impl.getCurrentProject().getFlowResults());
+ pnInfo.afficheModale(impl.getFrame(), PivResource.getS("R\xE9sultats du calcul"), CtuluDialog.OK_OPTION);
+ }
+
+ /**
+ * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
+ */
+ public boolean isValide() {
+ if (impl.getCurrentProject().getFlowResults()==null) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Il n'existe pas de r\xE9sultats de calcul de d\xE9bit"));
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("Les r\xE9sultats de calcul de d\xE9bit doivent exister");
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivShowFlowResultsAction.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
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.
|
|
From: <bma...@us...> - 2016-10-14 12:35:29
|
Revision: 9440
http://sourceforge.net/p/fudaa/svn/9440
Author: bmarchan
Date: 2016-10-14 12:35:26 +0000 (Fri, 14 Oct 2016)
Log Message:
-----------
Actions Import Ortho parameters et Import Compute parameters
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineComputeParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineOrthoParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-10-13 21:22:53 UTC (rev 9439)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -47,13 +47,15 @@
import org.fudaa.fudaa.piv.action.PivComputeAverageAction;
import org.fudaa.fudaa.piv.action.PivComputeFlowAction;
import org.fudaa.fudaa.piv.action.PivComputeLaunchAction;
-import org.fudaa.fudaa.piv.action.PivComputeParamAction;
+import org.fudaa.fudaa.piv.action.PivDefineComputeParamAction;
+import org.fudaa.fudaa.piv.action.PivDefineOrthoParamAction;
import org.fudaa.fudaa.piv.action.PivExportImagesAction;
+import org.fudaa.fudaa.piv.action.PivImportComputeParamAction;
import org.fudaa.fudaa.piv.action.PivImportGRPAction;
import org.fudaa.fudaa.piv.action.PivImportGridAction;
+import org.fudaa.fudaa.piv.action.PivImportOrthoParamAction;
import org.fudaa.fudaa.piv.action.PivImportTransectAction;
import org.fudaa.fudaa.piv.action.PivOrthoLaunchAction;
-import org.fudaa.fudaa.piv.action.PivOrthoParamAction;
import org.fudaa.fudaa.piv.action.PivOrthoVerifyGRPAction;
import org.fudaa.fudaa.piv.action.PivSelectImagesAction;
import org.fudaa.fudaa.piv.action.PivShow3DTransectAction;
@@ -88,8 +90,8 @@
protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware();
static {
isPIV_.name = "LSPIV";
- isPIV_.version = "1.4.5";
- isPIV_.date = "2016-03-23";
+ isPIV_.version = "1.5.0";
+ isPIV_.date = "2016-10-13";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2016";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
@@ -168,8 +170,10 @@
setEnabledForAction("IMPORT_GRP", bprjOpen && bprjHasSrcImg);
setEnabledForAction("VERIFY_GRP", bprjOpen && project.getOrthoPoints()!=null);
setEnabledForAction("DEFINE_ORTHO_PARAM", bprjOpen && project.getOrthoPoints()!=null && bprjHasSrcImg);
+ setEnabledForAction("IMPORT_ORTHO_PARAM", bprjOpen && project.getOrthoPoints()!=null && bprjHasSrcImg);
setEnabledForAction("COMPUTE_ORTHO", bprjOpen);
setEnabledForAction("DEFINE_PIV_PARAM", bprjOpen && bprjHasTransfImg);
+ setEnabledForAction("IMPORT_PIV_PARAM", bprjOpen && bprjHasTransfImg);
setEnabledForAction("DEFINE_GRID", bprjOpen && bprjHasTransfImg);
setEnabledForAction("IMPORT_GRID", bprjOpen && bprjHasTransfImg);
setEnabledForAction("IMPORT_TRANSECT", bprjOpen && bprjHasTransfImg);
@@ -790,19 +794,38 @@
sm.add(bt);
mn.add(sm);
mn.add(new PivOrthoVerifyGRPAction(this));
- mn.add(new PivOrthoParamAction(this));
+
+ sm=new BuMenu(PivResource.getS("Param\xE8tres de transformation"),"mnTRF",true);
+ bt=new PivDefineOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
+ bt.setText(PivResource.getS("D\xE9finir..."));
+ sm.add(bt);
+ bt=new PivImportOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
+ bt.setText(PivResource.getS("Importer..."));
+ sm.add(bt);
+ mn.add(sm);
+
mn.add(new PivOrthoLaunchAction(this));
mn.addSeparator(PivResource.getS("Analyse LSPIV"));
- mn.add(new PivComputeParamAction(this));
+
+ sm=new BuMenu(PivResource.getS("Param\xE8tres de calcul"),"mnCAL",true);
+ bt=new PivDefineComputeParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
+ bt.setText(PivResource.getS("D\xE9finir..."));
+ sm.add(bt);
+ bt=new PivImportComputeParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
+ bt.setText(PivResource.getS("Importer..."));
+ sm.add(bt);
+ mn.add(sm);
+
sm=new BuMenu(PivResource.getS("Points de grille"),"mnGRP");
bt=get2dFrame().getVisuPanel().getComputeGridDefinitionAction().buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("D\xE9finir..."));
sm.add(bt);
- bt=new PivImportGridAction((this)).buildMenuItem(EbliComponentFactory.INSTANCE);
+ bt=new PivImportGridAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
mn.add(sm);
+
mn.add(new PivComputeLaunchAction(this));
mn.addSeparator(PivResource.getS("Post-traitement"));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2016-10-13 21:22:53 UTC (rev 9439)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -51,6 +51,16 @@
*/
public static BuFileFilter FILE_FLT_GRID;
/**
+ * Un filtre des fichiers img_ref.dat, utilis\xE9e lors de l'import
+ * par boite de dialogue.
+ */
+ public static BuFileFilter FILE_FLT_TRANSF_PARAMS;
+ /**
+ * Un filtre des fichiers PIV_param.dat, utilis\xE9e lors de l'import
+ * par boite de dialogue.
+ */
+ public static BuFileFilter FILE_FLT_COMPUTE_PARAMS;
+ /**
* Un filtre des fichiers images, utilis\xE9e lors de la selection
* des fichiers par boite de dialogue.
*/
@@ -69,12 +79,14 @@
* Initialise les champs statiques d\xE9pendants du language.
*/
static {
- PivUtils.FILE_FLT_PROJ=new BuFileFilter("lspiv.zip",PivResource.getS("Fichier projet"));
- PivUtils.FILE_FLT_PGM=new BuFileFilter("pgm",PivResource.getS("Fichiers images en niveaux de gris"));
- PivUtils.FILE_FLT_IMAGES=new BuFileFilter(new String[]{"jpg","jpeg","gif","png","pgm","tif","tiff","bmp"},PivResource.getS("Fichiers images"));
- PivUtils.FILE_FLT_GRID=new BuFileFilter("dat",PivResource.getS("Fichier grid"));
- PivUtils.FILE_FLT_GRP=new BuFileFilter("dat",PivResource.getS("Fichier GRP"));
- PivUtils.FILE_FLT_BATHY=new BuFileFilter(new String[]{"dat",FILE_FLT_TRANS_BTH.getFirstExt()},PivResource.getS("Fichier bathy"));
+ FILE_FLT_PROJ=new BuFileFilter("lspiv.zip",PivResource.getS("Fichier projet"));
+ FILE_FLT_PGM=new BuFileFilter("pgm",PivResource.getS("Fichiers images en niveaux de gris"));
+ FILE_FLT_IMAGES=new BuFileFilter(new String[]{"jpg","jpeg","gif","png","pgm","tif","tiff","bmp"},PivResource.getS("Fichiers images"));
+ FILE_FLT_GRID=new BuFileFilter("dat",PivResource.getS("Fichier grid"));
+ FILE_FLT_GRP=new BuFileFilter("dat",PivResource.getS("Fichier GRP"));
+ FILE_FLT_BATHY=new BuFileFilter(new String[]{"dat",FILE_FLT_TRANS_BTH.getFirstExt()},PivResource.getS("Fichier bathy"));
+ FILE_FLT_TRANSF_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params transformation"));
+ FILE_FLT_COMPUTE_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params calcul"));
}
/**
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeParamAction.java 2016-10-13 21:22:53 UTC (rev 9439)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -1,63 +0,0 @@
-/*
- * @creation 3 juil. 2008
- * @modification $Date:$
- * @license GNU General Public License 2
- * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail fud...@li...
- */
-package org.fudaa.fudaa.piv.action;
-
-import java.awt.event.ActionEvent;
-
-import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivComputeParamPanel;
-import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.metier.PivComputeParameters;
-
-/**
- * Une action pour saisir les parametres de calcul.
- *
- * @author Bertrand Marchand (mar...@de...)
- * @version $Id$
- */
-public class PivComputeParamAction extends EbliActionSimple {
- PivImplementation impl;
-
- public PivComputeParamAction(PivImplementation _impl) {
- super(PivResource.getS("Param\xE8tres de calcul..."), null, "DEFINE_PIV_PARAM");
- impl=_impl;
- setEnabled(false);
- }
-
- /**
- * Affiche le panneau des param\xE8tres de calcul.
- * @param _e L'evenement pour l'action.
- */
- public void actionPerformed(final ActionEvent _e) {
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_TRANSF_VIEW);
-
- PivComputeParamPanel pn=new PivComputeParamPanel(impl.get2dFrame().getVisuPanel()) {
-
- @Override
- public void apply() {
- PivComputeParameters params=new PivComputeParameters();
- retrieveComputeParams(params);
- impl.getCurrentProject().setComputeParameters(params);
- }
- };
-
- PivComputeParameters params=impl.getCurrentProject().getComputeParameters();
- if (params==null)
- params=new PivComputeParameters();
- pn.setComputeParams(params);
-
- pn.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul"), CtuluDialog.OK_CANCEL_APPLY_OPTION);
- }
-
- public String getEnableCondition() {
- return PivResource.getS("Il doit exister au moins une image transform\xE9e");
- }
-}
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineComputeParamAction.java (from rev 9280, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeParamAction.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineComputeParamAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineComputeParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -0,0 +1,63 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+
+import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivComputeParamPanel;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.metier.PivComputeParameters;
+
+/**
+ * Une action pour saisir les parametres de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivDefineComputeParamAction extends EbliActionSimple {
+ PivImplementation impl;
+
+ public PivDefineComputeParamAction(PivImplementation _impl) {
+ super(PivResource.getS("Param\xE8tres de calcul..."), null, "DEFINE_PIV_PARAM");
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Affiche le panneau des param\xE8tres de calcul.
+ * @param _e L'evenement pour l'action.
+ */
+ public void actionPerformed(final ActionEvent _e) {
+ impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_TRANSF_VIEW);
+
+ PivComputeParamPanel pn=new PivComputeParamPanel(impl.get2dFrame().getVisuPanel()) {
+
+ @Override
+ public void apply() {
+ PivComputeParameters params=new PivComputeParameters();
+ retrieveComputeParams(params);
+ impl.getCurrentProject().setComputeParameters(params);
+ }
+ };
+
+ PivComputeParameters params=impl.getCurrentProject().getComputeParameters();
+ if (params==null)
+ params=new PivComputeParameters();
+ pn.setComputeParams(params);
+
+ pn.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul"), CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ }
+
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image transform\xE9e");
+ }
+}
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineOrthoParamAction.java (from rev 9320, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineOrthoParamAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineOrthoParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -0,0 +1,73 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivOrthoParamPanel;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+
+/**
+ * Une action pour saisir les parametres de l'orthorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivDefineOrthoParamAction extends EbliActionSimple {
+ PivImplementation impl;
+
+ /**
+ * Constructeur.
+ * @param _impl L'implementation.
+ */
+ public PivDefineOrthoParamAction(PivImplementation _impl) {
+ super(PivResource.getS("Param\xE8tres de transformation..."), null, "DEFINE_ORTHO_PARAM");
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image source");
+ }
+
+ /**
+ * Affichage du panneau des param\xE8tres d'orthorectification.
+ * @param _e L'evenement pour l'action.
+ */
+ public void actionPerformed(final ActionEvent _e) {
+ // On ne saisit les donn\xE9es que dans le rep\xE8re de calcul
+ if (impl.getCurrentProject().getTransformationParameters().isCurrentSystemInitial()) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul."));
+ return;
+ }
+
+ if (!isValide()) return;
+
+ impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
+
+ PivOrthoParamPanel pnParams=new PivOrthoParamPanel(impl);
+
+ // La fenetre est affich\xE9e en mode non modal, le traitement est fait dans la
+ // fenetre elle meme.
+ pnParams.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de transformation"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ }
+
+ public boolean isValide() {
+ String mes=impl.getCurrentProject().areOrthoPointsOk();
+ if (mes!=null) {
+ impl.error(PivResource.getS("Erreur"), mes);
+ return false;
+ }
+ return true;
+ }
+}
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -0,0 +1,95 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import org.fudaa.ctulu.CtuluIOResult;
+import org.fudaa.ctulu.gui.CtuluFileChooser;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivUtils;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.io.PivParamReader;
+import org.fudaa.fudaa.piv.metier.PivComputeParameters;
+
+/**
+ * Une action pour importer les parametres de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivImportGridAction.java 9083 2015-03-17 13:05:54Z bmarchan $
+ */
+public class PivImportComputeParamAction extends EbliActionSimple {
+ PivImplementation impl;
+ CtuluFileChooser fcParams;
+
+ /**
+ * Constructeur
+ * @param _impl L'implementation.
+ */
+ public PivImportComputeParamAction(PivImplementation _impl) {
+ super(PivResource.getS("Import des param\xE8tres de calcul..."), null, "IMPORT_PIV_PARAM");
+
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Selectionne le fichier d'import, et remplace les parametres.
+ * @param _e L'evenement pour l'action.
+ */
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ if (!isValide()) {
+ return;
+ }
+
+ if (!impl.question(PivResource.getS("Param\xE8tres de calcul"), PivResource.getS("Les param\xE8tres de filtres seront aussi import\xE9s.\nVoulez-vous continuer ?"))) {
+ return;
+ }
+
+ // Selection du fichier
+ if (fcParams==null)
+ fcParams = new CtuluFileChooser(true);
+
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_COMPUTE_PARAMS);
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de calcul"));
+ if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
+ return;
+ }
+ File paramsFile=fcParams.getSelectedFile();
+
+ CtuluIOResult<Object[]> ret = new PivParamReader().read(paramsFile, null);
+ if (ret.getAnalyze().containsErrorOrSevereError()) {
+ impl.error(ret.getAnalyze().getResume());
+ return;
+ }
+
+ PivComputeParameters params=(PivComputeParameters)ret.getSource()[0];
+
+ impl.getCurrentProject().setComputeParameters(params);
+
+ impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_TRANSF_VIEW);
+ }
+
+ /**
+ * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
+ */
+ public boolean isValide() {
+ return true;
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image transform\xE9e");
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -0,0 +1,107 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import org.fudaa.ctulu.CtuluIOResult;
+import org.fudaa.ctulu.gui.CtuluFileChooser;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivUtils;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.io.PivHReader;
+import org.fudaa.fudaa.piv.io.PivImgRefReader;
+import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
+
+/**
+ * Une action pour importer les parametres de transformation.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivImportGridAction.java 9083 2015-03-17 13:05:54Z bmarchan $
+ */
+public class PivImportOrthoParamAction extends EbliActionSimple {
+ PivImplementation impl;
+ CtuluFileChooser fcParams;
+
+ /**
+ * Constructeur
+ * @param _impl L'implementation.
+ */
+ public PivImportOrthoParamAction(PivImplementation _impl) {
+ super(PivResource.getS("Import des param\xE8tres d'orthorectification..."), null, "IMPORT_ORTHO_PARAM");
+
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Selectionne le fichier d'import, et remplace les parametres.
+ * @param _e L'evenement pour l'action.
+ */
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ if (!isValide()) {
+ return;
+ }
+
+ // Selection du fichier
+ if (fcParams==null)
+ fcParams = new CtuluFileChooser(true);
+
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_TRANSF_PARAMS);
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de transformation"));
+ if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
+ return;
+ }
+ File imgrefFile=fcParams.getSelectedFile();
+
+ CtuluIOResult<PivOrthoParameters> ret = new PivImgRefReader().read(imgrefFile, null);
+ if (ret.getAnalyze().containsErrorOrSevereError()) {
+ impl.error(ret.getAnalyze().getResume());
+ return;
+ }
+
+ PivOrthoParameters params=ret.getSource();
+
+ // Lecture du fichier h.dat associ\xE9.
+ File hFile = new File(imgrefFile.getParentFile(), "h.dat");
+ if (hFile.exists()) {
+ CtuluIOResult<Double> ret2 = new PivHReader().read(hFile, null);
+ if (ret.getAnalyze().containsErrorOrSevereError()) {
+ impl.error(ret.getAnalyze().getResume());
+ return;
+ }
+
+ params.setWaterElevation(ret2.getSource());
+ }
+ else {
+ impl.warn(PivResource.getS("Fichier manquant"), PivResource.getS("Le fichier h.dat correspondant est manquant.\nLe niveau d'eau ne sera pas initialis\xE9."));
+ }
+
+ impl.getCurrentProject().setOrthoParameters(params);
+
+ impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
+ }
+
+ /**
+ * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
+ */
+ public boolean isValide() {
+ return true;
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image source");
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2016-10-13 21:22:53 UTC (rev 9439)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2016-10-14 12:35:26 UTC (rev 9440)
@@ -1,73 +0,0 @@
-/*
- * @creation 3 juil. 2008
- * @modification $Date:$
- * @license GNU General Public License 2
- * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail fud...@li...
- */
-package org.fudaa.fudaa.piv.action;
-
-import java.awt.event.ActionEvent;
-
-import org.fudaa.ctulu.CtuluLog;
-import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivOrthoParamPanel;
-import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-
-/**
- * Une action pour saisir les parametres de l'orthorectification.
- *
- * @author Bertrand Marchand (mar...@de...)
- * @version $Id$
- */
-public class PivOrthoParamAction extends EbliActionSimple {
- PivImplementation impl;
-
- /**
- * Constructeur.
- * @param _impl L'implementation.
- */
- public PivOrthoParamAction(PivImplementation _impl) {
- super(PivResource.getS("Param\xE8tres de transformation..."), null, "DEFINE_ORTHO_PARAM");
- impl=_impl;
- setEnabled(false);
- }
-
- public String getEnableCondition() {
- return PivResource.getS("Il doit exister au moins une image source");
- }
-
- /**
- * Affichage du panneau des param\xE8tres d'orthorectification.
- * @param _e L'evenement pour l'action.
- */
- public void actionPerformed(final ActionEvent _e) {
- // On ne saisit les donn\xE9es que dans le rep\xE8re de calcul
- if (impl.getCurrentProject().getTransformationParameters().isCurrentSystemInitial()) {
- impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul."));
- return;
- }
-
- if (!isValide()) return;
-
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
-
- PivOrthoParamPanel pnParams=new PivOrthoParamPanel(impl);
-
- // La fenetre est affich\xE9e en mode non modal, le traitement est fait dans la
- // fenetre elle meme.
- pnParams.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de transformation"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
- }
-
- public boolean isValide() {
- String mes=impl.getCurrentProject().areOrthoPointsOk();
- if (mes!=null) {
- impl.error(PivResource.getS("Erreur"), mes);
- return false;
- }
- return true;
- }
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-18 11:05:04
|
Revision: 9455
http://sourceforge.net/p/fudaa/svn/9455
Author: bmarchan
Date: 2016-11-18 11:05:02 +0000 (Fri, 18 Nov 2016)
Log Message:
-----------
Ajout des parametres supplementaires pour les filtres de vitesse.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -44,6 +44,8 @@
private JTextField tfNormalMinLimit_;
private JTextField tfNormalMaxLimit_;
private JCheckBox cbVelFlt_;
+ private JTextField tfVxMinLimit_;
+ private JTextField tfVxMaxLimit_;
private JTextField tfVyMinLimit_;
private JTextField tfVyMaxLimit_;
private JCheckBox cbCorrelFlt_;
@@ -72,6 +74,8 @@
boolean b=cbVelFlt_.isSelected();
tfNormalMinLimit_.setEnabled(b);
tfNormalMaxLimit_.setEnabled(b);
+ tfVxMinLimit_.setEnabled(b);
+ tfVxMaxLimit_.setEnabled(b);
tfVyMinLimit_.setEnabled(b);
tfVyMaxLimit_.setEnabled(b);
}
@@ -101,8 +105,31 @@
pnNormalLimits.add(pn);
pnVelocity.add(pnNormalLimits);
+ JPanel pnVxLimits=new JPanel();
+ pnVxLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la composante Vx (m/s)")));
+ pnVxLimits.setLayout(new BuVerticalLayout(3,true,false));
+
+ pn=new JPanel();
+ pn.setLayout(new BorderLayout(3,3));
+ JLabel lbVxMinLimit=new JLabel(PivResource.getS("Min:"));
+ pn.add(lbVxMinLimit, BorderLayout.WEST);
+ tfVxMinLimit_ = new JTextField();
+ tfVxMinLimit_.setEnabled(false);
+ pn.add(tfVxMinLimit_, BorderLayout.CENTER);
+ pnVxLimits.add(pn);
+
+ pn=new JPanel();
+ pn.setLayout(new BorderLayout(3,3));
+ JLabel lbVxMaxLimit=new JLabel(PivResource.getS("Max:"));
+ pn.add(lbVxMaxLimit, BorderLayout.WEST);
+ tfVxMaxLimit_ = new JTextField();
+ tfVxMaxLimit_.setEnabled(false);
+ pn.add(tfVxMaxLimit_, BorderLayout.CENTER);
+ pnVxLimits.add(pn);
+ pnVelocity.add(pnVxLimits);
+
JPanel pnVyLimits=new JPanel();
- pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la vitesse v transversale (m/s)")));
+ pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la componsante Vy (m/s)")));
pnVyLimits.setLayout(new BuVerticalLayout(3,true,false));
pn=new JPanel();
@@ -123,9 +150,10 @@
pn.add(tfVyMaxLimit_, BorderLayout.CENTER);
pnVyLimits.add(pn);
pnVelocity.add(pnVyLimits);
+
tp.addTab(PivResource.getS("Vitesse"), pnVelocity);
- BuLib.giveSameWidth(lbNormalMinLimit, lbNormalMaxLimit, lbVyMinLimit, lbVyMaxLimit);
+ BuLib.giveSameWidth(lbNormalMinLimit, lbNormalMaxLimit, lbVxMinLimit, lbVxMaxLimit, lbVyMinLimit, lbVyMaxLimit);
// Filtre pour la correlation
@@ -236,20 +264,27 @@
if (_params.getSmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
_params.getSmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
- _params.getVmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getVmax()==PivUtils.FORTRAN_DOUBLE_MAX) {
+ _params.getVxmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
+ _params.getVxmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
+ _params.getVymin()==PivUtils.FORTRAN_DOUBLE_MIN &&
+ _params.getVymax()==PivUtils.FORTRAN_DOUBLE_MAX
+ ) {
cbVelFlt_.setSelected(false);
tfNormalMinLimit_.setText("0.");
tfNormalMaxLimit_.setText(""+_params.getSmax());
- tfVyMinLimit_.setText(""+_params.getVmin());
- tfVyMaxLimit_.setText(""+_params.getVmax());
+ tfVxMinLimit_.setText(""+_params.getVxmin());
+ tfVxMaxLimit_.setText(""+_params.getVxmax());
+ tfVyMinLimit_.setText(""+_params.getVymin());
+ tfVyMaxLimit_.setText(""+_params.getVymax());
}
else {
cbVelFlt_.setSelected(true);
tfNormalMinLimit_.setText(""+_params.getSmin());
tfNormalMaxLimit_.setText(""+_params.getSmax());
- tfVyMinLimit_.setText(""+_params.getVmin());
- tfVyMaxLimit_.setText(""+_params.getVmax());
+ tfVxMinLimit_.setText(""+_params.getVxmin());
+ tfVxMaxLimit_.setText(""+_params.getVxmax());
+ tfVyMinLimit_.setText(""+_params.getVymin());
+ tfVyMaxLimit_.setText(""+_params.getVymax());
}
}
@@ -273,14 +308,18 @@
if (cbVelFlt_.isSelected()) {
_params.setSmin(Double.parseDouble(tfNormalMinLimit_.getText()));
_params.setSmax(Double.parseDouble(tfNormalMaxLimit_.getText()));
- _params.setVmin(Double.parseDouble(tfVyMinLimit_.getText()));
- _params.setVmax(Double.parseDouble(tfVyMaxLimit_.getText()));
+ _params.setVxmin(Double.parseDouble(tfVxMinLimit_.getText()));
+ _params.setVxmax(Double.parseDouble(tfVxMaxLimit_.getText()));
+ _params.setVymin(Double.parseDouble(tfVyMinLimit_.getText()));
+ _params.setVymax(Double.parseDouble(tfVyMaxLimit_.getText()));
}
else {
_params.setSmin(PivUtils.FORTRAN_DOUBLE_MIN);
_params.setSmax(PivUtils.FORTRAN_DOUBLE_MAX);
- _params.setVmin(PivUtils.FORTRAN_DOUBLE_MIN);
- _params.setVmax(PivUtils.FORTRAN_DOUBLE_MAX);
+ _params.setVxmin(PivUtils.FORTRAN_DOUBLE_MIN);
+ _params.setVxmax(PivUtils.FORTRAN_DOUBLE_MAX);
+ _params.setVymin(PivUtils.FORTRAN_DOUBLE_MIN);
+ _params.setVymax(PivUtils.FORTRAN_DOUBLE_MAX);
}
}
@@ -346,8 +385,11 @@
!cbVelFlt_.isSelected() || (
isReal(tfNormalMinLimit_.getText(),PivResource.getS("Min norme de vitesse")) &&
isReal(tfNormalMaxLimit_.getText(),PivResource.getS("Max norme de vitesse")) &&
- isReal(tfVyMinLimit_.getText(),PivResource.getS("Min vitesse transversale")) &&
- isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max vitesse transversale")));
+ isReal(tfVyMinLimit_.getText(),PivResource.getS("Min Vx")) &&
+ isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max Vx")) &&
+ isReal(tfVyMinLimit_.getText(),PivResource.getS("Min Vy")) &&
+ isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max Vy"))
+ );
if (!bok) return false;
double min;
@@ -366,16 +408,28 @@
PivResource.getS("Max norme de vitesse"), PivUtils.FORTRAN_DOUBLE_MAX));
return false;
}
+ min=Double.parseDouble(tfVxMinLimit_.getText());
+ if (min<PivUtils.FORTRAN_DOUBLE_MIN) {
+ setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}",
+ PivResource.getS("Min Vx"), PivUtils.FORTRAN_DOUBLE_MIN));
+ return false;
+ }
+ max=Double.parseDouble(tfVxMaxLimit_.getText());
+ if (max>PivUtils.FORTRAN_DOUBLE_MAX) {
+ setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}",
+ PivResource.getS("Max Vx"), PivUtils.FORTRAN_DOUBLE_MAX));
+ return false;
+ }
min=Double.parseDouble(tfVyMinLimit_.getText());
if (min<PivUtils.FORTRAN_DOUBLE_MIN) {
setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}",
- PivResource.getS("Min vitesse transversale"), PivUtils.FORTRAN_DOUBLE_MIN));
+ PivResource.getS("Min Vy"), PivUtils.FORTRAN_DOUBLE_MIN));
return false;
}
max=Double.parseDouble(tfVyMaxLimit_.getText());
if (max>PivUtils.FORTRAN_DOUBLE_MAX) {
setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}",
- PivResource.getS("Max vitesse transversale"), PivUtils.FORTRAN_DOUBLE_MAX));
+ PivResource.getS("Max Vy"), PivUtils.FORTRAN_DOUBLE_MAX));
return false;
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -16,6 +16,8 @@
import org.fudaa.fudaa.piv.metier.PivComputeParameters;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import com.memoire.fu.FuLog;
+
/**
* Un lecteur pour les fichiers des parametres pour le calcul par PIV.
*
@@ -26,6 +28,8 @@
/** Drapeau d'interruption */
boolean bstop_;
+ /** Version du fichier */
+ String version_="1.0";
/**
* Le constructeur.
@@ -65,9 +69,15 @@
}
in_.setJumpBlankLine(true);
-
+
+ // Entete "# FileVersion <num> / IA size"
+ in_.readFields();
+ if ("#".equals(in_.stringField(0)) && "FileVersion".equals(in_.stringField(1))) {
+ version_ = in_.stringField(2);
+ }
+ FuLog.debug("Version du fichier"+"="+version_);
+
// IA size
- in_.readLine();
in_.readFields();
params.setIASize(in_.intField(0));
@@ -110,12 +120,25 @@
in_.readFields();
params.setSmax(in_.doubleField(0));
- // Seuils limites de vitesse transversale vmin, vmax
+ // Seuils composante VX vmin, vmax
in_.readLine();
in_.readFields();
- params.setVmin(in_.doubleField(0));
+ params.setVxmin(in_.doubleField(0));
in_.readFields();
- params.setVmax(in_.doubleField(0));
+ params.setVxmax(in_.doubleField(0));
+
+ if ("2.0".equals(version_)) {
+ // Seuils composante Vy vmin, vmax
+ in_.readLine();
+ in_.readFields();
+ params.setVymin(in_.doubleField(0));
+ in_.readFields();
+ params.setVymax(in_.doubleField(0));
+ }
+ else {
+ params.setVymin(params.getVxmin());
+ params.setVymax(params.getVxmax());
+ }
// Coefficient de surface
in_.readLine();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -15,6 +15,8 @@
* @version $Id$
*/
public class PivParamWriter extends FileCharSimpleWriterAbstract<Object[]> {
+ /** Version du fichier */
+ public static final String VERSION="2.0";
/**
* Ecrit les param\xE8tres d'orthorectification.
@@ -45,8 +47,10 @@
final PrintWriter writer = new PrintWriter(out_);
try {
+ // Entete
+ writer.println("# FileVersion "+VERSION+ " / IA Size");
+
// IA size
- writer.println("IA size");
writer.println(pivDefined ? params.getIASize():-1);
// SA size
@@ -78,11 +82,14 @@
writer.println(pivDefined ? params.getSmin():-1);
writer.println(pivDefined ? params.getSmax():-1);
- // Seuils limites de vitesse v transversale : vmin - vmax
- writer.println("Seuils limites de vitesse v transversale : vmin - vmax");
- writer.println(pivDefined ? params.getVmin():-1);
- writer.println(pivDefined ? params.getVmax():-1);
+ writer.println("Seuils limites de la composante Vx : min - max");
+ writer.println(pivDefined ? params.getVxmin():-1);
+ writer.println(pivDefined ? params.getVxmax():-1);
+ writer.println("Seuils limites de la composante Vy : min - max");
+ writer.println(pivDefined ? params.getVymin():-1);
+ writer.println(pivDefined ? params.getVymax():-1);
+
// Coefficient de surface
writer.println("Coefficient de surface");
writer.println(flowDefined ? paramsFlow.getSurfaceCoef():-1);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -32,10 +32,14 @@
protected double smin=PivUtils.FORTRAN_DOUBLE_MIN;
/** Valeur max des normes de vitesse */
protected double smax=PivUtils.FORTRAN_DOUBLE_MAX;
- /** Valeur min des vitesses transversales */
- protected double vmin=PivUtils.FORTRAN_DOUBLE_MIN;
- /** Valeur max des vitesses transversales */
- protected double vmax=PivUtils.FORTRAN_DOUBLE_MAX;
+ /** Valeur min composante Vx */
+ protected double vxmin=PivUtils.FORTRAN_DOUBLE_MIN;
+ /** Valeur max composante Vx */
+ protected double vxmax=PivUtils.FORTRAN_DOUBLE_MAX;
+ /** Valeur min composante Vy */
+ protected double vymin=PivUtils.FORTRAN_DOUBLE_MIN;
+ /** Valeur max composante Vy */
+ protected double vymax=PivUtils.FORTRAN_DOUBLE_MAX;
public PivComputeParameters() {
}
@@ -183,30 +187,58 @@
/**
* @return the vmin
*/
- public double getVmin() {
- return vmin;
+ public double getVxmin() {
+ return vxmin;
}
/**
* @param vmin the vmin to set
*/
- public void setVmin(double vmin) {
- this.vmin = vmin;
+ public void setVxmin(double vmin) {
+ this.vxmin = vmin;
}
/**
* @return the vmax
*/
- public double getVmax() {
- return vmax;
+ public double getVxmax() {
+ return vxmax;
}
/**
* @param vmax the vmax to set
*/
- public void setVmax(double vmax) {
- this.vmax = vmax;
+ public void setVxmax(double vmax) {
+ this.vxmax = vmax;
}
+
+ /**
+ * @return the vmin
+ */
+ public double getVymin() {
+ return vymin;
+ }
+
+ /**
+ * @param vmin the vmin to set
+ */
+ public void setVymin(double vmin) {
+ this.vymin = vmin;
+ }
+
+ /**
+ * @return the vmax
+ */
+ public double getVymax() {
+ return vymax;
+ }
+
+ /**
+ * @param vmax the vmax to set
+ */
+ public void setVymax(double vmax) {
+ this.vymax = vmax;
+ }
/**
* Definit la position de IA suivant J et I
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-21 15:34:02
|
Revision: 9456
http://sourceforge.net/p/fudaa/svn/9456
Author: bmarchan
Date: 2016-11-21 15:34:00 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
Sauvegarde des fichiers de resultats
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,45 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats scalaires moyenn\xE9s.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivAverageScalWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.NORME) ||
+ !_res.hasResult(TYPE.CORREL) ||
+ !_res.hasResult(TYPE.OMEGA) ||
+ !_res.hasResult(TYPE.DIVERG)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // Format fixe.
+ String s=String.format(Locale.US, "%8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", _res.getX(i),_res.getY(i),_res.getValue(i, TYPE.NORME),_res.getValue(i, TYPE.CORREL),_res.getValue(i, TYPE.OMEGA),_res.getValue(i, TYPE.DIVERG));
+ writer.println(s);
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,41 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats de vitesses moyenn\xE9es.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivAverageVelWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.VX) ||
+ !_res.hasResult(TYPE.VY)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // (est lu par les solveurs en format libre).
+ writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY));
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,42 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats instantan\xE9es filtr\xE9s en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivInstantFilteredWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.VX) ||
+ !_res.hasResult(TYPE.VY)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // (est lu par les solveurs en format libre).
+ writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY));
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,46 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats scalaires instantan\xE9es filtr\xE9s en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivInstantScalWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.NORME) ||
+ !_res.hasResult(TYPE.CORREL) ||
+ !_res.hasResult(TYPE.OMEGA) ||
+ !_res.hasResult(TYPE.DIVERG)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // Format fixe.
+ String s=String.format(Locale.US, "%8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", _res.getX(i),_res.getY(i),_res.getValue(i, TYPE.NORME),_res.getValue(i, TYPE.CORREL),_res.getValue(i, TYPE.OMEGA),_res.getValue(i, TYPE.DIVERG));
+ writer.println(s);
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
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-11-18 11:05:02 UTC (rev 9455)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -18,7 +18,9 @@
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.io.PivAverageScalReader;
+import org.fudaa.fudaa.piv.io.PivAverageScalWriter;
import org.fudaa.fudaa.piv.io.PivAverageVelReader;
+import org.fudaa.fudaa.piv.io.PivAverageVelWriter;
import org.fudaa.fudaa.piv.io.PivBathyPReader;
import org.fudaa.fudaa.piv.io.PivBathyReader;
import org.fudaa.fudaa.piv.io.PivBathyWriter;
@@ -37,7 +39,9 @@
import org.fudaa.fudaa.piv.io.PivImgRefReader;
import org.fudaa.fudaa.piv.io.PivImgRefWriter;
import org.fudaa.fudaa.piv.io.PivInstantFilteredReader;
+import org.fudaa.fudaa.piv.io.PivInstantFilteredWriter;
import org.fudaa.fudaa.piv.io.PivInstantScalReader;
+import org.fudaa.fudaa.piv.io.PivInstantScalWriter;
import org.fudaa.fudaa.piv.io.PivInstantVelReader;
import org.fudaa.fudaa.piv.io.PivParamReader;
import org.fudaa.fudaa.piv.io.PivParamWriter;
@@ -537,6 +541,12 @@
// Les resultats utilis\xE9s pour le calcul de vitesse moyenne.
saveInstantResultsList(false);
+ // Les resultats moyenn\xE9s
+ saveAverageResults(prj_, prj_.averageResults, null);
+
+ // Les resultats filtr\xE9s instantan\xE9s
+ saveInstantFilteredResults(prj_, prj_.instantFilteredResults, null);
+
// Les donn\xE9es globales
saveGlobalData(null);
@@ -614,4 +624,57 @@
}
}
+ /**
+ * Sauve les resultats filtr\xE9s, dans l'ordre
+ * @param prj_ Le projet
+ * @param _res Les resultats a sauver
+ * @param _prog L'interface de progression.
+ */
+ public void saveInstantFilteredResults(PivProject prj_, PivResultsI[] _res, ProgressionInterface _prog) {
+
+ // Suppression des anciens fichiers vitesses
+ File dirVelFilter=new File(prj_.rootPath,PivProject.VEL_FILTER_DIR);
+ dirVelFilter.mkdir();
+ File[] files=dirVelFilter.listFiles();
+ if (files!=null) {
+ for (File file : files) {
+ file.delete();
+ }
+ }
+
+ // Suppression des anciens fichiers scalaires
+ File dirVelScal=new File(prj_.rootPath,PivProject.VEL_SCAL_DIR);
+ dirVelScal.mkdir();
+ files=dirVelScal.listFiles();
+ if (files!=null) {
+ for (File file : files) {
+ file.delete();
+ }
+ }
+
+ if (_res==null) return;
+
+ for (int i = 0; i < _res.length; i++) {
+ File velFile = new File(dirVelFilter, "filter_piv" + PivUtils.formatOn4Chars(i + 1) + ".dat");
+ new PivInstantFilteredWriter().write(_res[i], velFile, _prog);
+
+ File scalFile = new File(dirVelScal, "scal_piv" + PivUtils.formatOn4Chars(i + 1) + ".dat");
+ new PivInstantScalWriter().write(_res[i], scalFile, _prog);
+ }
+ }
+
+ /**
+ * Sauve les resultats moyenn\xE9s dans l'espace r\xE9el
+ * @param prj_ Le projet
+ * @param _res Les resultats a sauver
+ * @param _prog L'interface de progression.
+ */
+ public void saveAverageResults(PivProject prj_, PivResultsI _res, ProgressionInterface _prog) {
+
+ File velFile = new File(prj_.getOutputDir(),"average_vel.out");
+ new PivAverageVelWriter().write(_res, velFile, _prog);
+
+ File scalFile = new File(prj_.getOutputDir(), "average_scal.out");
+ new PivAverageScalWriter().write(_res, scalFile, _prog);
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-25 14:40:53
|
Revision: 9468
http://sourceforge.net/p/fudaa/svn/9468
Author: bmarchan
Date: 2016-11-25 14:40:50 +0000 (Fri, 25 Nov 2016)
Log Message:
-----------
Fix : Pas de possibilit?\195?\169 de supprimer des vitesses sur le calque vitesses brutes et moyennes.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-11-25 14:38:35 UTC (rev 9467)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-11-25 14:40:50 UTC (rev 9468)
@@ -249,6 +249,7 @@
// Layer des vitesses moyennes.
cqVelResults = new PivVelResultsLayer();
+ cqVelResults.setEditable(false);
cqVelResults.setTitle(PivResource.getS("Vit. surf. moy."));
cqVelResults.setLongTitle(PivResource.getS("Vitesses de surface moyenn\xE9es"));
cqVelResults.setTitleModifiable(true);
@@ -266,6 +267,7 @@
// Layer des vitesses instantan\xE9es brutes.
cqInstantVelResults_ = new PivVelResultsLayer();
+ cqInstantVelResults_.setEditable(false);
cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst. brutes"));
cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es brutes"));
cqInstantVelResults_.setName("cqInstantVel");
@@ -273,16 +275,11 @@
cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
cqInstantVelResults_.setTitleModifiable(true);
cqInstantVelResults_.setVisible(false);
-// cqInstantVelResults_.addPropertyChangeListener(new PropertyChangeListener() {
-// public void propertyChange(PropertyChangeEvent evt) {
-// if ("visible".equals(evt.getPropertyName())) {
-// pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue());
-// }
-// }
-// });
// Layer des vitesses instantan\xE9es filtr\xE9es.
cqInstantVelFltResults_ = new PivVelResultsLayer();
+ // Editable, pour supprimer des vitesses.
+ cqInstantVelFltResults_.setEditable(true);
cqInstantVelFltResults_.setTitle(PivResource.getS("Vit. surf. inst. filtr\xE9es"));
cqInstantVelFltResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es filtr\xE9es"));
cqInstantVelFltResults_.setName("cqInstantVelFlt");
@@ -290,13 +287,6 @@
cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker()));
cqInstantVelFltResults_.setTitleModifiable(true);
cqInstantVelFltResults_.setVisible(false);
-// cqInstantVelFltResults_.addPropertyChangeListener(new PropertyChangeListener() {
-// public void propertyChange(PropertyChangeEvent evt) {
-// if ("visible".equals(evt.getPropertyName())) {
-// pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue());
-// }
-// }
-// });
// Layer des d\xE9bits.
cqFlowResults = new ZCalqueFleche() {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2016-11-25 14:38:35 UTC (rev 9467)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2016-11-25 14:40:50 UTC (rev 9468)
@@ -27,6 +27,9 @@
*/
public class PivVelResultsLayer extends ZCalqueFleche implements ZCalqueEditable {
+ /** Defini le caractere editable du calque */
+ private boolean isEditable_=false;
+
@Override
protected String getFlecheUnit() {
return "m/s";
@@ -121,16 +124,34 @@
@Override
public boolean removeSelectedObjects(CtuluCommandContainer _cmd, CtuluUI _ui) {
- FuLog.debug("Remove object");
- if (!isSelectionEmpty()) {
- final boolean r = modeleDonnees().removeVelocity(getSelectedIndex(), _cmd);
- if (r) {
- // Sinon, le calque ne se repaint pas toujours...
- repaint();
+ if (isEditable_) {
+ FuLog.debug("Remove object");
+ if (!isSelectionEmpty()) {
+ final boolean r=modeleDonnees().removeVelocity(getSelectedIndex(), _cmd);
+ if (r) {
+ // Sinon, le calque ne se repaint pas toujours...
+ repaint();
+ }
}
}
return false;
}
+
+ /**
+ * La methode parent n'a aucun sens => On la surcharge.
+ */
+ @Override
+ public boolean isEditable() {
+ return isEditable_;
+ }
+
+ /**
+ * Definit si le calque est editable. Si c'est le cas, les methode d'editions peuvent \xEAtre appel\xE9es.
+ * @param _b True : Le calque est editable.
+ */
+ public void setEditable(boolean _b) {
+ isEditable_=_b;
+ }
// Not used
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-12-19 10:11:52
|
Revision: 9486
http://sourceforge.net/p/fudaa/svn/9486
Author: bmarchan
Date: 2016-12-19 10:11:49 +0000 (Mon, 19 Dec 2016)
Log Message:
-----------
Lecture et affichage du champ "D?\195?\169bit mesur?\195?\169" dans les r?\195?\169sultats du calcul de d?\195?\169bit
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -37,6 +37,7 @@
private double meanDisch_;
private double meanArea_;
private double meanMeanV_;
+ private double meanMeasuredDisch_;
/**
* Une classe pour le modele de la table affichant les r\xE9sultats.
@@ -48,7 +49,7 @@
}
public int getColumnCount() {
- return 7;
+ return 9;
}
public String getColumnName(int columnIndex) {
@@ -68,6 +69,10 @@
return PivResource.getS("Vit. moy. (m/s)");
case 6:
return PivResource.getS("Ecart (%)");
+ case 7:
+ return PivResource.getS("D\xE9bit mesur\xE9 (m/s)");
+ case 8:
+ return PivResource.getS("Ecart (%)");
}
}
@@ -101,6 +106,11 @@
case 6:
val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
return (val-meanMeanV_)/meanMeanV_*100;
+ case 7:
+ return rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
+ case 8:
+ val=rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
+ return (val-meanMeasuredDisch_)/meanMeasuredDisch_*100;
}
}
@@ -129,7 +139,10 @@
super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
if (value instanceof Double) {
- if (column==2 || column==4 || column==6)
+ if (((Double) value).isNaN()) {
+ this.setText(value.toString());
+ }
+ else if (column==2 || column==4 || column==6 || column==8)
this.setText(fmtEcart.format((Double)value));
else
this.setText(fmt.format((Double)value));
@@ -147,9 +160,14 @@
JTable tbResults=new JTable();
tbResults.setModel(new DischargeTableModel());
tbResults.setDefaultRenderer(Double.class,new DischargeCellRenderer());
+ tbResults.getColumnModel().getColumn(0).setMaxWidth(60);
+ tbResults.getColumnModel().getColumn(2).setMaxWidth(70);
+ tbResults.getColumnModel().getColumn(4).setMaxWidth(70);
+ tbResults.getColumnModel().getColumn(6).setMaxWidth(70);
+ tbResults.getColumnModel().getColumn(8).setMaxWidth(70);
JScrollPane spResults=new JScrollPane();
spResults.getViewport().add(tbResults);
- spResults.setPreferredSize(new Dimension(700,200));
+ spResults.setPreferredSize(new Dimension(850,200));
add(new JLabel(PivResource.getS("Liste des transects")),BorderLayout.NORTH);
add(spResults, BorderLayout.CENTER);
@@ -159,9 +177,10 @@
protected void computeMoyennes() {
PivGlobalFlowResults globRes=new PivGlobalFlowResults(res_);
- meanDisch_=globRes.getAverageScalarResult(ResultType.DISCHARGE);
+ meanDisch_=globRes.getAverageScalarResult(ResultType.FULL_DISCHARGE);
meanArea_=globRes.getAverageScalarResult(ResultType.WETTED_AREA);
meanMeanV_=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY);
+ meanMeasuredDisch_=globRes.getAverageScalarResult(ResultType.MEASURED_DISCHARGE);
}
@Override
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -345,7 +345,7 @@
final PivOrthoParameters orthoParams = impl.getCurrentProject().getOrthoParameters();
final PivGlobalFlowResults globRes = new PivGlobalFlowResults(flowResults);
- final Double meanDisch=globRes.getAverageScalarResult(ResultType.DISCHARGE);
+ final Double meanDisch=globRes.getAverageScalarResult(ResultType.FULL_DISCHARGE);
final Double meanArea=globRes.getAverageScalarResult(ResultType.WETTED_AREA);
final Double meanMeanV=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -17,6 +17,7 @@
import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
+import org.fudaa.fudaa.piv.metier.PivResultsI.ResultType;
/**
* Un lecteur pour les fichiers des r\xE9sultats de calcul de d\xE9bit.
@@ -80,6 +81,7 @@
// 1ere ligne
in_.readFields();
+ // Le niveau d'eau
res.setWaterElevation(in_.doubleField(0));
// Debit
res.setDischarge(in_.doubleField(1));
@@ -87,6 +89,10 @@
res.setWettedArea(in_.doubleField(2));
// Vitesse moyenne
res.setMeanVelocity(in_.doubleField(3));
+ // D\xE9bit mesur\xE9 (Fudaa-LSPIV > 1.5.0)
+ if (in_.getNumberOfFields()>4) {
+ res.setValue(0, ResultType.MEASURED_DISCHARGE, in_.doubleField(4));
+ }
// Boucle jusque fin de fichier. Exception EOF si fin.
while (true) {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -19,6 +19,7 @@
import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivResultsI.ResultType;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
@@ -252,6 +253,7 @@
Double discharge=res.getDischarge();
Double wettedArea=res.getWettedArea();
Double meanVelocity=res.getMeanVelocity();
+ Double measuredDischarge=res.getValue(-1,ResultType.MEASURED_DISCHARGE);
for (int idx : selIds) {
res=prj_.getFlowResults()[idx];
@@ -263,6 +265,8 @@
wettedArea=null;
if (meanVelocity != res.getMeanVelocity())
meanVelocity=null;
+ if (measuredDischarge != res.getValue(-1,ResultType.MEASURED_DISCHARGE))
+ measuredDischarge=null;
}
if (waterElevation != null)
@@ -273,6 +277,8 @@
_d.put(PivResource.getS("Aire mouill\xE9e (m\xB2)"), "" + wettedArea);
if (meanVelocity != null)
_d.put(PivResource.getS("Vitesse moyenne sur la section (m/s)"), "" + meanVelocity);
+ if (measuredDischarge != null)
+ _d.put(PivResource.getS("D\xE9bit mesur\xE9 (m\xB3/s)"), "" + measuredDischarge);
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -19,6 +19,8 @@
protected double meanVelocity;
/** Le niveau d'eau */
protected double waterElevation;
+ /** Le d\xE9bit mesur\xE9. Peut \xEAtre NaN si la mesure n'est pas calcul\xE9e (Fudaa-LSPIV < 1.5.0). */
+ protected double measuredDischarge = Double.NaN;
/** Les coordonn\xE9es X des points */
protected double[] x;
/** Les coordonn\xE9es Y des points */
@@ -162,7 +164,7 @@
@Override
public ResultType[] getResults() {
- return new ResultType[]{ResultType.VX,ResultType.VY,ResultType.DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION};
+ return new ResultType[]{ResultType.VX,ResultType.VY,ResultType.FULL_DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION, ResultType.MEASURED_DISCHARGE};
}
@Override
@@ -176,7 +178,7 @@
return getVx(_ind);
else if (ResultType.VY.equals(_tpRes))
return getVy(_ind);
- else if (ResultType.DISCHARGE.equals(_tpRes))
+ else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
return discharge;
else if (ResultType.WETTED_AREA.equals(_tpRes))
return wettedArea;
@@ -184,6 +186,8 @@
return meanVelocity;
else if (ResultType.WATER_ELEVATION.equals(_tpRes))
return waterElevation;
+ else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes))
+ return measuredDischarge;
else
return -1;
}
@@ -194,7 +198,7 @@
return vy;
else if (ResultType.VY.equals(_tpRes))
return vy;
- else if (ResultType.DISCHARGE.equals(_tpRes))
+ else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
return new double[]{discharge};
else if (ResultType.WETTED_AREA.equals(_tpRes))
return new double[]{wettedArea};
@@ -202,6 +206,8 @@
return new double[]{meanVelocity};
else if (ResultType.WATER_ELEVATION.equals(_tpRes))
return new double[]{waterElevation};
+ else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes))
+ return new double[]{measuredDischarge};
else
return null;
}
@@ -211,14 +217,14 @@
if (!hasResult(_tpRes))
return;
- if (_ind>=vx.length)
+ if (_tpRes.isVector() && _ind>=vx.length)
return;
if (ResultType.VX.equals(_tpRes))
vx[_ind] = _val;
else if (ResultType.VY.equals(_tpRes))
vy[_ind] = _val;
- else if (ResultType.DISCHARGE.equals(_tpRes))
+ else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
discharge = _val;
else if (ResultType.WETTED_AREA.equals(_tpRes))
wettedArea = _val;
@@ -226,5 +232,7 @@
meanVelocity = _val;
else if (ResultType.WATER_ELEVATION.equals(_tpRes))
waterElevation = _val;
+ else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes))
+ measuredDischarge = _val;
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 2016-12-16 16:04:05 UTC (rev 9485)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 2016-12-19 10:11:49 UTC (rev 9486)
@@ -22,7 +22,10 @@
CORREL(true),
OMEGA(true),
DIVERG(true),
- DISCHARGE(false),
+ /** D\xE9bit total */
+ FULL_DISCHARGE(false),
+ /** D\xE9bit mesur\xE9 */
+ MEASURED_DISCHARGE(false),
WETTED_AREA(false),
MEAN_VELOCITY(false),
WATER_ELEVATION(false);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-02 14:44:00
|
Revision: 9497
http://sourceforge.net/p/fudaa/svn/9497
Author: bmarchan
Date: 2017-01-02 14:43:57 +0000 (Mon, 02 Jan 2017)
Log Message:
-----------
Fudaa-LSPIV : Detection de mises ?\195?\160 jour
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-02 14:42:28 UTC (rev 9496)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-02 14:43:57 UTC (rev 9497)
@@ -16,6 +16,9 @@
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
@@ -78,6 +81,7 @@
import com.memoire.bu.BuRegistry;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuUserPreferencesPanel;
+import com.memoire.fu.FuLib;
import com.memoire.fu.FuLog;
/**
@@ -92,9 +96,9 @@
protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware();
static {
isPIV_.name = "LSPIV";
- isPIV_.version = "1.5.0";
+ isPIV_.version = "1.5.1";
isPIV_.date = "2016-12-20";
- isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2016";
+ isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
isPIV_.authors=new String[]{"B.Marchand (mar...@de...)"};
@@ -102,6 +106,7 @@
isPIV_.http="http://forge.irstea.fr/projects/fudaa-lspiv";
isPIV_.man="guide_Fudaa-lspiv_"+BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr"))+".pdf";
isPIV_.citation=PivResource.getS("Ichiro Fujita (Prof.), Universit\xE9 de Kob\xE9");
+ isPIV_.update=System.getProperty("piv.update", "http://www.deltacad.fr/downloads");
isPIV_.logo = PivResource.PIV.getIcon("iconepiv.gif");
isPIV_.banner = PivResource.PIV.getIcon("banniere.jpg");
@@ -269,6 +274,10 @@
create();
} else if ("AIDE_INDEX".equals(action)) {
showHelp();
+ } else if ("MAJ".equals(action)) {
+ if (!checkForUpdate(false)) {
+ message(PivResource.getS("Information"),PivResource.getS("La version de Fudaa-LSPIV est \xE0 jour"),false);
+ }
}
else if (action.startsWith("REOUVRIR")) {
FuLog.trace(action.substring(9,action.length()-1));
@@ -706,6 +715,8 @@
setEnabledForAction("IMPORTER", true);
setEnabledForAction("EXPORTER", true);
+ setEnabledForAction("MAJ", true);
+
BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR");
if (mr != null) {
mr.setPreferences(PivPreferences.PIV);
@@ -939,6 +950,42 @@
PivResource.getS("La biblioth\xE8que JAI Image I/O n'est probablement pas install\xE9e.\nElle doit l'\xEAtre dans le r\xE9pertoire des extensions Java.\n\nL'application ne fonctionnera pas correctement."));
}
}
+
+ /**
+ * Controle l'existence d'une mise a jour sur l'URL de mise a jour et affiche un dialogue pour t\xE9l\xE9charger si c'est le cas.
+ * @param _showHideButton True : Le bouton "Ne plus afficher" est affich\xE9 dans le dialogue.
+ * @return True : Une mise a jour existe.
+ */
+ public boolean checkForUpdate(boolean _showHideButton) {
+ try {
+ URL urlFlag=new URL(isPIV_.update+"/fudaa-lspiv-lastversion.txt");
+ if (FuLib.existsURL(urlFlag)) {
+ LineNumberReader is=null;
+ try {
+ is=new LineNumberReader(new InputStreamReader(urlFlag.openStream()));
+ String lastversion;
+ while ((lastversion=is.readLine()) != null && lastversion.trim().startsWith("#")) {
+ }
+
+ if (lastversion.compareTo(isPIV_.version)>0) {
+ URL urlJar = new URL(isPIV_.update+"/fudaa-lspiv-"+lastversion+"-setup.jar");
+ new PivUpdatePanel(lastversion, urlJar, _showHideButton).afficheModale(this.getFrame(),PivResource.getS("Mise \xE0 jour disponible"));
+ return true;
+ }
+ }
+ finally {
+ if (is!=null) {
+ is.close();
+ }
+ }
+ }
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return false;
+ }
/**
* D\xE9marre l'application.
@@ -949,6 +996,10 @@
super.addFrameListLeft();
controlJAILibrary();
+
+ if (PivPreferences.PIV.getBooleanProperty(FudaaStartupExitPreferencesPanel.PREF_CHECK_NEW_VERSION, true)) {
+ checkForUpdate(true);
+ }
}
}
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java 2017-01-02 14:43:57 UTC (rev 9497)
@@ -0,0 +1,82 @@
+/*
+ * @creation 8 sept. 06
+ * @modification $Date: 2009-06-03 15:10:45 +0200 (mer., 03 juin 2009) $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.awt.Cursor;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.net.URL;
+
+import javax.swing.BorderFactory;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.fudaa.commun.FudaaBrowserControl;
+import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
+import org.jdesktop.swingx.VerticalLayout;
+
+
+/**
+ * Un panneau pour l'affichage de la version a telecharger.
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivFlowInfoPanel.java 9491 2016-12-20 14:46:54Z bmarchan $
+ */
+public class PivUpdatePanel extends CtuluDialogPanel {
+
+ private JCheckBox cbHidden_;
+
+ public PivUpdatePanel(String _version, final URL _url, boolean _showHideButton) {
+ setLayout(new VerticalLayout(10));
+ setBorder(BorderFactory.createEmptyBorder(5, 5, 15, 5));
+
+ final JLabel lbLink=new JLabel(PivResource.getS("<html><a href=\"{0}\">T\xE9l\xE9chargez la version {1} de Fudaa-LSPIV</a></html>", _url.toString(), _version));
+ lbLink.addMouseListener(new MouseAdapter() {
+ public void mouseEntered(MouseEvent me) {
+ lbLink.setCursor(new Cursor(Cursor.HAND_CURSOR));
+ }
+
+ public void mouseExited(MouseEvent me) {
+ lbLink.setCursor(Cursor.getDefaultCursor());
+ }
+
+ public void mouseClicked(MouseEvent me) {
+ try {
+ FudaaBrowserControl.displayURL(_url);
+ }
+ catch (Exception e) {
+ System.out.println(e);
+ }
+ }
+ });
+
+
+ add(new JLabel(PivResource.getS("<html>Une mise \xE0 jour de Fudaa-LSPIV est disponible.<br>Cliquez sur le lien ci-dessous pour la t\xE9l\xE9charger.</html>")));
+ add(lbLink);
+
+ if (_showHideButton) {
+ cbHidden_=new JCheckBox(PivResource.getS("Ne plus afficher ce dialogue"));
+ add(cbHidden_);
+ }
+ }
+
+ @Override
+ public boolean isDataValid() {
+ return true;
+ }
+
+ @Override
+ public void apply() {
+ super.apply();
+
+ if (cbHidden_ != null)
+ PivPreferences.PIV.putBooleanProperty(FudaaStartupExitPreferencesPanel.PREF_CHECK_NEW_VERSION, !cbHidden_.isSelected());
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-09 17:22:34
|
Revision: 9500
http://sourceforge.net/p/fudaa/svn/9500
Author: bmarchan
Date: 2017-01-09 17:22:31 +0000 (Mon, 09 Jan 2017)
Log Message:
-----------
LSPIV : Import vid?\195?\169o par ffmpeg
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -357,111 +357,6 @@
_params.setTimeInterval(Double.parseDouble(tfTemps.getText().trim()));
}
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isPositiveInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- int val=Integer.parseInt(_sval.trim());
- bok=val>=0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isPositiveReal(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- double val=Double.parseDouble(_sval.trim());
- bok=val>=0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el >= 0",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isStrictPositiveInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- int val=Integer.parseInt(_sval.trim());
- bok=val>0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier .
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- Integer.parseInt(_sval.trim());
- bok=true;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isStrictPositiveReal(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- double val=Double.parseDouble(_sval.trim());
- bok=val>0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param));
- return false;
- }
- return true;
- }
-
@Override
public boolean isDataValid() {
boolean bposx=!tfPosX.getText().trim().isEmpty();
@@ -473,20 +368,20 @@
}
boolean bok=
- isStrictPositiveReal(tfNbImgSec.getText(),PivResource.getS("Nombre d'images par secondes")) &&
- isStrictPositiveReal(tfTemps.getText(),PivResource.getS("Intervalle de temps")) &&
- isStrictPositiveReal(tfIASize.getText(),PivResource.getS("Taille de l'aire")+" (m)") &&
- isStrictPositiveInteger(tfIASizePix.getText(),PivResource.getS("Taille de l'aire")+" (pix)") &&
- (!bposx || isInteger(tfPosX.getText(), PivResource.getS("Position J"))) &&
- (!bposy || isInteger(tfPosY.getText(), PivResource.getS("Position I"))) &&
- isPositiveReal(tfSim.getText(),PivResource.getS("Sim")+" (m/s)") &&
- isPositiveReal(tfSip.getText(),PivResource.getS("Sip")+" (m/s)") &&
- isPositiveReal(tfSjm.getText(),PivResource.getS("Sjm")+" (m/s)") &&
- isPositiveReal(tfSjp.getText(),PivResource.getS("Sjp")+" (m/s)") &&
- isPositiveInteger(tfSimPix.getText(),PivResource.getS("Sim")+" (pix)") &&
- isPositiveInteger(tfSipPix.getText(),PivResource.getS("Sip")+" (pix)") &&
- isPositiveInteger(tfSjmPix.getText(),PivResource.getS("Sjm")+" (pix)") &&
- isPositiveInteger(tfSjpPix.getText(),PivResource.getS("Sjp")+" (pix)")
+ PivUtils.isStrictPositiveReal(this,tfNbImgSec.getText(),PivResource.getS("Nombre d'images par secondes")) &&
+ PivUtils.isStrictPositiveReal(this,tfTemps.getText(),PivResource.getS("Intervalle de temps")) &&
+ PivUtils.isStrictPositiveReal(this,tfIASize.getText(),PivResource.getS("Taille de l'aire")+" (m)") &&
+ PivUtils.isStrictPositiveInteger(this,tfIASizePix.getText(),PivResource.getS("Taille de l'aire")+" (pix)") &&
+ (!bposx || PivUtils.isInteger(this,tfPosX.getText(), PivResource.getS("Position J"))) &&
+ (!bposy || PivUtils.isInteger(this,tfPosY.getText(), PivResource.getS("Position I"))) &&
+ PivUtils.isPositiveReal(this,tfSim.getText(),PivResource.getS("Sim")+" (m/s)") &&
+ PivUtils.isPositiveReal(this,tfSip.getText(),PivResource.getS("Sip")+" (m/s)") &&
+ PivUtils.isPositiveReal(this,tfSjm.getText(),PivResource.getS("Sjm")+" (m/s)") &&
+ PivUtils.isPositiveReal(this,tfSjp.getText(),PivResource.getS("Sjp")+" (m/s)") &&
+ PivUtils.isPositiveInteger(this,tfSimPix.getText(),PivResource.getS("Sim")+" (pix)") &&
+ PivUtils.isPositiveInteger(this,tfSipPix.getText(),PivResource.getS("Sip")+" (pix)") &&
+ PivUtils.isPositiveInteger(this,tfSjmPix.getText(),PivResource.getS("Sjm")+" (pix)") &&
+ PivUtils.isPositiveInteger(this,tfSjpPix.getText(),PivResource.getS("Sjp")+" (pix)")
;
if (!bok) return false;
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -0,0 +1,141 @@
+/*
+ * @creation 8 sept. 06
+ * @modification $Date: 2009-06-03 15:10:45 +0200 (mer., 03 juin 2009) $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.io.File;
+
+import javax.swing.BorderFactory;
+import javax.swing.JCheckBox;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ctulu.gui.CtuluFileChooserPanel;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuVerticalLayout;
+
+
+/**
+ * Un panneau pour l'affichage des param\xE8tres dimport vid\xE9o.
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivImportVideoParamPanel extends CtuluDialogPanel {
+
+ /** Le file chooser de la vid\xE9o. */
+ private CtuluFileChooserPanel fcVideo_;
+ private JTextField tfNbImgs_;
+ private JTextField tfBeginning_;
+ private JTextField tfEnding_;
+ private JCheckBox cbBeginning_;
+ private JCheckBox cbEnding_;
+
+ public PivImportVideoParamPanel() {
+
+ setBorder(BorderFactory.createEmptyBorder(5, 5, 15, 5));
+ setLayout(new BuVerticalLayout(10));
+
+ fcVideo_=new CtuluFileChooserPanel(PivResource.getS("Fichier vid\xE9o"));
+ fcVideo_.setFileSelectMode(JFileChooser.FILES_ONLY);
+ fcVideo_.setWriteMode(false);
+ JPanel pnDirExport=CtuluFileChooserPanel.buildPanel(fcVideo_, PivResource.getS("Fichier vid\xE9o:"));
+
+ tfNbImgs_=new JTextField();
+ tfBeginning_=new JTextField();
+ tfBeginning_.setEnabled(false);
+ tfEnding_=new JTextField();
+ tfEnding_.setEnabled(false);
+
+ cbBeginning_=new JCheckBox(PivResource.getS("Instant de d\xE9but")+" (s):");
+ cbBeginning_.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ tfBeginning_.setEnabled(cbBeginning_.isSelected());
+ }
+ });
+ cbEnding_=new JCheckBox(PivResource.getS("Instant de fin")+" (s):");
+ cbEnding_.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ tfEnding_.setEnabled(cbEnding_.isSelected());
+ }
+ });
+
+ JPanel pnSampling = new JPanel();
+ pnSampling.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Echantillonage")));
+ pnSampling.setLayout(new BuGridLayout(2, 5, 5, true, false));
+
+ pnSampling.add(new JLabel(PivResource.getS("Nombre d'images par secondes:")));
+ pnSampling.add(tfNbImgs_);
+ pnSampling.add(cbBeginning_);
+ pnSampling.add(tfBeginning_);
+ pnSampling.add(cbEnding_);
+ pnSampling.add(tfEnding_);
+
+ add(pnDirExport);
+ add(pnSampling);
+ }
+
+ @Override
+ public boolean isDataValid() {
+ File fv=fcVideo_.getFile();
+ if (fv == null || !fv.exists()) {
+ setErrorText(PivResource.getS("Un fichier vid\xE9o doit \xEAtre s\xE9lectionn\xE9 et exister"));
+ return false;
+ }
+ if (!PivUtils.isStrictPositiveInteger(this, tfNbImgs_.getText(),PivResource.getS("Nombre d'images par secondes"))) {
+ return false;
+ }
+ if (cbBeginning_.isSelected() && !PivUtils.isPositiveReal(this, tfBeginning_.getText(),PivResource.getS("Instant de d\xE9but"))) {
+ return false;
+ }
+ if (cbEnding_.isSelected() && !PivUtils.isPositiveReal(this, tfEnding_.getText(),PivResource.getS("Instant de fin"))) {
+ return false;
+ }
+ if (cbBeginning_.isSelected() && cbEnding_.isSelected() && Double.parseDouble(tfEnding_.getText())<Double.parseDouble(tfBeginning_.getText())) {
+ setErrorText(PivResource.getS("La valeur de fin doit \xEAtre sup\xE9rieure ou \xE9gale \xE0 la valeur de d\xE9but"));
+ return false;
+ }
+
+ return true;
+ }
+
+ public File getVideoFile() {
+ return fcVideo_.getFile();
+ }
+
+ public int getNbImages() {
+ return Integer.parseInt(tfNbImgs_.getText());
+ }
+
+ public Double getBeginTime() {
+ if (cbBeginning_.isSelected()) {
+ return Double.parseDouble(tfBeginning_.getText());
+ }
+ return null;
+ }
+
+ public Double getEndTime() {
+ if (cbEnding_.isSelected()) {
+ return Double.parseDouble(tfEnding_.getText());
+ }
+ return null;
+ }
+
+ @Override
+ public void apply() {
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -7,19 +7,29 @@
*/
package org.fudaa.fudaa.piv;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
+import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
-import org.fudaa.ctulu.CtuluUI;
+import org.fudaa.ctulu.CtuluLibFile;
+import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluCellTextRenderer;
+import org.fudaa.ctulu.gui.CtuluDialog;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ctulu.gui.CtuluListEditorModel;
import org.fudaa.ctulu.gui.CtuluListEditorPanel;
+import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
+import org.fudaa.fudaa.piv.io.PivExeLauncher;
+import org.fudaa.fudaa.piv.metier.PivProject;
+import com.memoire.bu.BuButton;
import com.memoire.bu.BuVerticalLayout;
+import com.memoire.fu.FuLog;
/**
* Un panneau pour gerer les images d'origine, qu'elles soient pgm ou autres.
@@ -29,21 +39,24 @@
*/
public class PivManageOriginalFilesPanel extends CtuluDialogPanel {
- private CtuluUI ui_;
+ private PivImplementation impl_;
/** Le repertoire racine du projet */
private File prjRoot_;
/** Le mod\xE8le pour la liste des images */
private CtuluListEditorModel mdFiles_;
-
+ /** Le panneau d'import video */
+ private PivImportVideoParamPanel pnImport_;
+ private CtuluDialog diProgress_;
+
/**
* Constructeur.
- * @param _ui Le parent pour la boite de dialogue.
+ * @param _impl Le parent pour la boite de dialogue.
*/
- public PivManageOriginalFilesPanel(CtuluUI _ui) {
- ui_=_ui;
+ public PivManageOriginalFilesPanel(PivImplementation _impl) {
+ impl_=_impl;
setLayout(new BuVerticalLayout(5, true, true));
- setHelpText(PivResource.getS("Les images pgm seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre."));
+ setHelpText(PivResource.getS("Les images seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre."));
// Label images
add(new JLabel(PivResource.getS("Liste des images"),JLabel.LEFT));
@@ -69,7 +82,7 @@
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.setAcceptAllFileFilterUsed(false);
fc.setDialogTitle(PivResource.getS("Ouverture d'un projet"));
- if (fc.showOpenDialog(ui_.getParentComponent()) == JFileChooser.CANCEL_OPTION) {
+ if (fc.showOpenDialog(impl_.getParentComponent()) == JFileChooser.CANCEL_OPTION) {
return;
}
@@ -80,7 +93,79 @@
}
};
+
+ BuButton btImport=new BuButton(PivResource.PIV.getIcon("video"), PivResource.getS("Importer..."));
+ btImport.setToolTipText(PivResource.getS("Importer les images depuis une vid\xE9o"));
+ btImport.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (pnImport_==null) {
+ pnImport_=new PivImportVideoParamPanel();
+ }
+
+ if (pnImport_.afficheModale(PivManageOriginalFilesPanel.this, PivResource.getS("Import des images"))==0) {
+
+ if (!PivExeLauncher.instance().areExeOK()) {
+ PivExePanel pnExe = new PivExePanel();
+
+ if (!pnExe.afficheModaleOk(impl_.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) {
+ return;
+ }
+ }
+
+ // La tache a ex\xE9cuter.
+ CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl_, PivResource.getS("Echantillonnage")) {
+
+ public void act() {
+
+ try {
+ CtuluLog ana=new CtuluLog();
+ ana.setDesc(getName());
+
+ // Les images sont cr\xE9\xE9es dans un repertoire temporaire, pour ne
+ // pas \xE9craser les images existantes avant validation.
+ File tmpOutDir=CtuluLibFile.createTempDir();
+
+ PivExeLauncher.instance().computeSampling(ana, impl_.getCurrentProject(), pnImport_.getVideoFile(), tmpOutDir, pnImport_.getNbImages(), pnImport_.getBeginTime(),
+ pnImport_.getEndTime(), this);
+ if (ana.containsErrorOrSevereError()) {
+ impl_.error(ana.getResume());
+ return;
+ }
+
+ File[] fimgs=tmpOutDir.listFiles(PivProject.FLT_FILES);
+ if (fimgs == null) {
+ fimgs=new File[0];
+ }
+
+ mdFiles_.setData(fimgs);
+ }
+ catch (IOException _exc) {
+ _exc.printStackTrace();
+ }
+ finally {
+ diProgress_.dispose();
+ }
+
+ impl_.message(PivResource.getS("L'\xE9chantillonnage s'est termin\xE9e avec succ\xE8s"));
+ }
+ };
+
+ PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
+ diProgress_=pnProgress_.createDialog(PivManageOriginalFilesPanel.this);
+ diProgress_.setOption(CtuluDialog.ZERO_OPTION);
+ diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
+ diProgress_.setTitle(r.getName());
+
+ r.start();
+ diProgress_.afficheDialogModal();
+ }
+ }
+ });
+ pnFiles.addButton(btImport);
+
pnFiles.setValueListCellRenderer(new CtuluCellTextRenderer() {
@Override
public void setValue(Object _file) {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -115,118 +115,13 @@
}
}
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- protected boolean isPositiveInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- int val=Integer.parseInt(_sval.trim());
- bok=val>=0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- protected boolean isStrictPositiveInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- int val=Integer.parseInt(_sval.trim());
- bok=val>0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un entier .
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- protected boolean isInteger(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- Integer.parseInt(_sval.trim());
- bok=true;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- protected boolean isReal(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- Double.parseDouble(_sval.trim());
- bok=true;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el",_param));
- return false;
- }
- return true;
- }
-
- /**
- * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif.
- * @param _sval La valeur du champ.
- * @param _param Le nom du champ.
- * @return true si la valeur est correcte.
- */
- private boolean isStrictPositiveReal(String _sval, String _param) {
- boolean bok=false;
- try {
- bok=false;
- double val=Double.parseDouble(_sval.trim());
- bok=val>0;
- }
- catch (NumberFormatException _exc) {}
- if (!bok) {
- setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param));
- return false;
- }
- return true;
- }
-
@Override
public boolean isDataValid() {
setErrorText("");
boolean bok=
- tfCoef.getText().trim().isEmpty() || isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
- tfDmax.getText().trim().isEmpty() || isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
- tfInterpolationStep.getText().trim().isEmpty() || isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
+ tfCoef.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
+ tfDmax.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
+ tfInterpolationStep.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
return bok;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -1,7 +1,11 @@
package org.fudaa.fudaa.piv;
import java.awt.Color;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.StringReader;
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
@@ -108,4 +112,154 @@
sb.append(_i);
return sb.toString();
}
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isPositiveInteger(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ int val=Integer.parseInt(_sval.trim());
+ bok=val>=0;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un entier positif.
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isStrictPositiveInteger(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ int val=Integer.parseInt(_sval.trim());
+ bok=val>0;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un entier .
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isInteger(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ Integer.parseInt(_sval.trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif.
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isPositiveReal(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ double val=Double.parseDouble(_sval.trim());
+ bok=val>=0;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el >= 0",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el.
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isReal(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ Double.parseDouble(_sval.trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif.
+ * @param _sval La valeur du champ.
+ * @param _param Le nom du champ.
+ * @return true si la valeur est correcte.
+ */
+ public static boolean isStrictPositiveReal(CtuluDialogPanel _pn, String _sval, String _param) {
+ boolean bok=false;
+ try {
+ bok=false;
+ double val=Double.parseDouble(_sval.trim());
+ bok=val>0;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param));
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Limite un texte avec retours charriots \xE0 une largeur maxi. Les caract\xE8res au del\xE0 sont remplac\xE9s par ...
+ * @param _mess Le message
+ * @param _maxWidth La largeur maxi (en nombre de caract\xE8res)
+ * @return
+ */
+ public static String trunkErrorMessage(String _mess, int _maxWidth) {
+ StringBuffer ret=new StringBuffer();
+
+ String[] lines=_mess.split("\r\n|\r|\n");
+ for (String line : lines) {
+ if (line.length()>_maxWidth) {
+ ret.append(line.substring(0, _maxWidth)).append("...");
+ }
+ else {
+ ret.append(line);
+ }
+
+ ret.append("\n");
+ }
+
+ return ret.toString();
+ }
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -38,7 +38,7 @@
* @param _impl L'implementation.
*/
public PivSelectImagesAction(PivImplementation _impl) {
- super(PivResource.getS("S\xE9lection des images sources..."), null, "SELECT_IMAGES");
+ super(PivResource.getS("Gestion des images sources..."), null, "SELECT_IMAGES");
impl=_impl;
setEnabled(false);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-01-09 11:12:07 UTC (rev 9499)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-01-09 17:22:31 UTC (rev 9500)
@@ -50,7 +50,8 @@
Q_compute,
vel_transf,
vel_scal,
- moy_scal
+ moy_scal,
+ ffmpeg
}
/** Les scripts pouvant etre lanc\xE9s */
@@ -170,6 +171,74 @@
}
/**
+ * Lance le calcul d'echantillonnage d'images depuis un fichier vid\xE9o.
+ *
+ * @param _ana L'analyse pour la tache ex\xE9cut\xE9e.
+ * @param _prj Le projet.
+ * @param _task La tache en cours d'execution.
+ * @return true : Tout s'est bien d\xE9roul\xE9.
+ * @see #launchOrthoPlan
+ */
+ public boolean computeSampling(CtuluLog _ana, PivProject _prj, File _fvideo, File _tmpOutDir, int _nbImgs, Double _tdeb, Double _tfin, CtuluTaskOperationGUI _task) {
+ File prjRoot=_prj.getRoot();
+// File prjImgInp=new File(prjRoot,IMG_PGM_DIR);
+//
+// // Nettoyage eventuel du repertoire des images sources.
+// prjImgInp.mkdir();
+// for (File f : prjImgInp.listFiles()) f.delete();
+
+ String desc=PivResource.getS("Lancement de l'echantillonnage...");
+ FuLog.trace(desc);
+ if (_task!=null) {
+ ...
[truncated message content] |
|
From: <bma...@us...> - 2017-01-10 10:28:50
|
Revision: 9504
http://sourceforge.net/p/fudaa/svn/9504
Author: bmarchan
Date: 2017-01-10 10:28:48 +0000 (Tue, 10 Jan 2017)
Log Message:
-----------
Nom par defaut de rapport de jaugeage
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-09 19:45:47 UTC (rev 9503)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-10 10:28:48 UTC (rev 9504)
@@ -155,6 +155,17 @@
public File getCurrentProjectFile() {
return prjFile;
}
+
+ /**
+ * @return Le nom par default pour la sauvegarde. Si le nom courant est null, renvoie un nom par defaut.
+ */
+ public File getSavedProjectFile() {
+ if (getCurrentProjectFile()==null)
+ return new File("fudaa-lspiv.lspiv.zip");
+ else {
+ return getCurrentProjectFile();
+ }
+ }
/**
* Appel\xE9e quand le projet courant est modifi\xE9.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-09 19:45:47 UTC (rev 9503)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-10 10:28:48 UTC (rev 9504)
@@ -12,6 +12,7 @@
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
@@ -38,6 +39,7 @@
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluLibImage;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluFileChooser;
@@ -56,6 +58,7 @@
import org.fudaa.fudaa.piv.metier.PivGlobalFlowResults;
import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
+import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivResultsI.ResultType;
import org.fudaa.fudaa.piv.metier.PivTransect;
@@ -127,6 +130,8 @@
CtuluFileChooser fcReport_;
/** Les variables users (inconnues du systeme) du modele Excel. */
HashMap<String,UserCellData> userVars=new HashMap<>();
+ /** Le nom fichier projet pour changer le nom du rapport. */
+ File projectFile_;
/**
* Constructeur.
@@ -314,25 +319,45 @@
sheet.enableLocking();
}
- if (fcReport_ == null) {
- fcReport_=new CtuluFileChooser(true);
- fcReport_.setTester(new CtuluFileChooserTestWritable(impl));
- fcReport_.setAcceptAllFileFilterUsed(true);
- fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX);
- fcReport_.setMultiSelectionEnabled(false);
- fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export"));
- }
- if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
- return;
- }
-
- wb.write(new FileOutputStream(fcReport_.getSelectedFile()));
+ saveReport(wb);
}
catch (Exception e) {
e.printStackTrace();
}
}
+
+ /**
+ * Sauve le rapport sur le fichier selectionn\xE9.
+ * @param wb
+ * @throws IOException
+ */
+ protected void saveReport(Workbook wb) throws IOException {
+
+ if (fcReport_ == null) {
+ fcReport_=new CtuluFileChooser(true);
+ fcReport_.setTester(new CtuluFileChooserTestWritable(impl));
+ fcReport_.setAcceptAllFileFilterUsed(true);
+ fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX);
+ fcReport_.setMultiSelectionEnabled(false);
+ fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export"));
+ }
+ // Changement de projet => On change le nom du rapport
+ if (!impl.getSavedProjectFile().equals(projectFile_)) {
+ projectFile_=impl.getSavedProjectFile();
+
+ String fsave=projectFile_.getName();
+ fsave=fsave.substring(0, fsave.indexOf(PivUtils.FILE_FLT_PROJ.getFirstExt()) - 1);
+ fcReport_.setSelectedFile(new File(fsave + "_" + PivResource.getS("rapport") + ".xlsx"));
+ }
+
+ if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
+ return;
+ }
+
+ wb.write(new FileOutputStream(fcReport_.getSelectedFile()));
+ }
+
/**
* Calcule les donn\xE9es non stock\xE9es dans le projet, necessaires \xE0 la r\xE9alisation du template.
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-10 16:13:56
|
Revision: 9506
http://sourceforge.net/p/fudaa/svn/9506
Author: bmarchan
Date: 2017-01-10 16:13:53 +0000 (Tue, 10 Jan 2017)
Log Message:
-----------
LSPIV : Diff?\195?\169rents correctifs sur rapport de jaugeage
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2017-01-10 16:12:51 UTC (rev 9505)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2017-01-10 16:13:53 UTC (rev 9506)
@@ -205,8 +205,7 @@
public void setFilterValues(PivComputeParameters _params) {
if (_params==null) return;
- if (_params.getMinCorrelation()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getMaxCorrelation()==PivUtils.FORTRAN_DOUBLE_MAX) {
+ if (!_params.isCorrelationFiltered()) {
cbCorrelFlt_.setSelected(false);
tfCorrelMinLimit_.setText("0.");
tfCorrelMaxLimit_.setText("1.");
@@ -217,13 +216,7 @@
tfCorrelMaxLimit_.setText(""+_params.getMaxCorrelation());
}
- if (_params.getSmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getSmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
- _params.getVxmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getVxmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
- _params.getVymin()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getVymax()==PivUtils.FORTRAN_DOUBLE_MAX
- ) {
+ if (!_params.isVelocityFiltered()) {
cbVelFlt_.setSelected(false);
tfNormalMinLimit_.setText("0.");
tfNormalMaxLimit_.setText(""+_params.getSmax());
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2017-01-10 16:12:51 UTC (rev 9505)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2017-01-10 16:13:53 UTC (rev 9506)
@@ -58,21 +58,21 @@
case 0:
return PivResource.getS("N\xB0");
case 1:
- return PivResource.getS("D\xE9bit total (m\xB3/s)");
+ return PivResource.getS("<html>D\xE9bit total (m\xB3/s)</html>");
case 2:
- return PivResource.getS("Ecart (%)");
+ return PivResource.getS("<html>Ecart (%)</html>");
case 3:
- return PivResource.getS("Aire mouill\xE9e (m\xB2)");
+ return PivResource.getS("<html>Aire mouill\xE9e (m\xB2)</html>");
case 4:
- return PivResource.getS("Ecart (%)");
+ return PivResource.getS("<html>Ecart (%)</html>");
case 5:
- return PivResource.getS("Vit. moy. (m/s)");
+ return PivResource.getS("<html>Vit. moy. (m/s)</html>");
case 6:
- return PivResource.getS("Ecart (%)");
+ return PivResource.getS("<html>Ecart (%)</html>");
case 7:
- return PivResource.getS("D\xE9bit mesur\xE9 (m\xB3/s)");
+ return PivResource.getS("<html>D\xE9bit mesur\xE9 (m\xB3/s)</html>");
case 8:
- return PivResource.getS("Ecart (%)");
+ return PivResource.getS("<html>D\xE9bit mesur\xE9 / D\xE9bit total (%)</html>");
}
}
@@ -109,8 +109,8 @@
case 7:
return rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
case 8:
- val=rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
- return (val-meanMeasuredDisch_)/meanMeasuredDisch_*100;
+ val=rowIndex==res_.length? meanMeasuredDisch_/meanDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE)/res_[rowIndex].getDischarge();
+ return val*100;
}
}
@@ -164,7 +164,11 @@
tbResults.getColumnModel().getColumn(2).setMaxWidth(70);
tbResults.getColumnModel().getColumn(4).setMaxWidth(70);
tbResults.getColumnModel().getColumn(6).setMaxWidth(70);
- tbResults.getColumnModel().getColumn(8).setMaxWidth(70);
+ // Customization pour avoir le titre sur 2 lignes.
+ tbResults.getTableHeader().setPreferredSize(
+ new Dimension(tbResults.getColumnModel().getTotalColumnWidth(), 40));
+ ((JLabel)tbResults.getTableHeader().getDefaultRenderer()).setVerticalAlignment(JLabel.TOP);
+
JScrollPane spResults=new JScrollPane();
spResults.getViewport().add(tbResults);
spResults.setPreferredSize(new Dimension(850,200));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-10 16:12:51 UTC (rev 9505)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-10 16:13:53 UTC (rev 9506)
@@ -155,6 +155,9 @@
}
try {
+ // Nettoie les valeurs \xE0 chaque changement du nom de projet.
+ if (isProjectFileModified())
+ userVars.clear();
computeNeededDatas();
HashMap<String, AbstractCellData> systemDatas=defineSystemVariables();
@@ -343,7 +346,7 @@
}
// Changement de projet => On change le nom du rapport
- if (!impl.getSavedProjectFile().equals(projectFile_)) {
+ if (isProjectFileModified()) {
projectFile_=impl.getSavedProjectFile();
String fsave=projectFile_.getName();
@@ -400,7 +403,8 @@
final HashMap<String,Object> imgOptions = new HashMap<>();
imgOptions.put(CtuluLibImage.PARAMS_FILL_BACKGROUND_BOOLEAN, Boolean.FALSE);
- final DecimalFormat fmtStd = CtuluLib.getDecimalFormat(3);
+ final DecimalFormat fmt3Digit = CtuluLib.getDecimalFormat(3);
+ final DecimalFormat fmt1Digit = CtuluLib.getDecimalFormat(1);
final DecimalFormat fmtEcart = CtuluLib.getNoEffectDecimalFormat();
fmtEcart.setMaximumFractionDigits(1);
fmtEcart.setMinimumFractionDigits(1);
@@ -409,29 +413,48 @@
fmtExp.setMaximumFractionDigits(3);
fmtExp.setMinimumFractionDigits(2);
- systemVars_.put("__COEF_VITESSE",new AbstractScalarCellData() {
+ systemVars_.put("__COEF_VITESSE_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- // On prend le coef de vitesse du premier transect, s'il existe
- return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getSurfaceCoef(),null);
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.NEGATIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.max(val, trans.getParams().getSurfaceCoef());
+ }
+ return format(fmt3Digit,val,null);
}
});
+ systemVars_.put("__COEF_VITESSE_MIN", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.POSITIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.min(val, trans.getParams().getSurfaceCoef());
+ }
+ return format(fmt3Digit,val,null);
+ }
+ });
systemVars_.put("__CORREL_MAX",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:""+format(fmtStd,pivParams.getMaxCorrelation(),null);
+ return pivParams==null || !pivParams.isCorrelationFiltered() ? null:""+format(fmt3Digit,pivParams.getMaxCorrelation(),null);
}
});
systemVars_.put("__CORREL_MIN",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:""+format(fmtStd,pivParams.getMinCorrelation(),null);
+ return pivParams==null || !pivParams.isCorrelationFiltered() ? null:""+format(fmt3Digit,pivParams.getMinCorrelation(),null);
}
});
systemVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return meanDisch==null ? null:format(fmtStd,meanDisch,"m\xB3/s");
+ return meanDisch==null ? null:format(fmt3Digit,meanDisch,"m\xB3/s");
}
});
systemVars_.put("__ERREUR_MAX",new AbstractScalarCellData() {
@@ -444,19 +467,19 @@
for (PivOrthoPoint pt : orthoPoints) {
maxi=Math.max(maxi, pt.getError());
}
- return format(fmtStd,maxi,"m");
+ return format(fmt3Digit,maxi,"m");
}
});
systemVars_.put("__HAUTEUR",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return orthoParams==null ? null:format(fmtStd,orthoParams.getWaterElevation(),"m");
+ return orthoParams==null ? null:format(fmt3Digit,orthoParams.getWaterElevation(),"m");
}
});
systemVars_.put("__IA_M",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return (pivParams==null || orthoParams==null) ? null:format(fmtStd,pivParams.getIASize()*orthoParams.getResolution(),"m");
+ return (pivParams==null || orthoParams==null) ? null:format(fmt3Digit,pivParams.getIASize()*orthoParams.getResolution(),"m");
}
});
systemVars_.put("__IA_PIX",new AbstractScalarCellData() {
@@ -468,7 +491,7 @@
systemVars_.put("__INTERTEMPS",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd,pivParams.getTimeInterval(),"s");
+ return pivParams==null ? null:format(fmt3Digit,pivParams.getTimeInterval(),"s");
}
});
systemVars_.put("__NOM_PROJET",new AbstractScalarCellData() {
@@ -489,6 +512,12 @@
return ""+impl.getCurrentProject().getSrcImageFiles().length;
}
});
+ systemVars_.put("__NOMBRE_IMAGES_SECONDE", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
+ return pivParams==null ? null:format(fmt3Digit,1./pivParams.getTimeInterval(),null);
+ }
+ });
systemVars_.put("__NOMBRE_TRANSECTS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
@@ -498,40 +527,77 @@
systemVars_.put("__NORME_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd,pivParams.getSmax(),"m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit,pivParams.getSmax(),"m/s");
}
});
systemVars_.put("__NORME_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd,pivParams.getSmin(),"m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit,pivParams.getSmin(),"m/s");
}
});
- systemVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() {
+ systemVars_.put("__PAS_INTERPOLATION_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- // On prend le pas du premier transect, s'il existe
- return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getInterpolationStep(),"m");
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.NEGATIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.max(val, trans.getParams().getInterpolationStep());
+ }
+ return format(fmt3Digit,val,"m");
}
});
+ systemVars_.put("__PAS_INTERPOLATION_MIN", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.POSITIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.min(val, trans.getParams().getInterpolationStep());
+ }
+ return format(fmt3Digit,val,"m");
+ }
+ });
systemVars_.put("__RATIO_DEBIT_MESURE", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return meanMeasuredDisch==null ? null:meanMeasuredDisch/meanDisch*100+" %";
+ return meanMeasuredDisch==null ? null:format(fmt1Digit,meanMeasuredDisch/meanDisch*100, "%");
}
});
- systemVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() {
+ systemVars_.put("__RAYON_RECHERCHE_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- // On prend le rayon du premier transect, s'il existe
- return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getRadius(),"m");
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.NEGATIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.max(val, trans.getParams().getRadius());
+ }
+ return format(fmt3Digit,val,"m");
}
});
+ systemVars_.put("__RAYON_RECHERCHE_MIN", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
+ if (transects==null || transects.length==0)
+ return null;
+
+ double val=Double.POSITIVE_INFINITY;
+ for (PivTransect trans : transects) {
+ val=Math.min(val, trans.getParams().getRadius());
+ }
+ return format(fmt3Digit,val,"m");
+ }
+ });
systemVars_.put("__RESOLUTION", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- // On prend le rayon du premier transect, s'il existe
- return orthoParams==null ? null:format(fmtStd,orthoParams.getResolution(),"m/pix");
+ return orthoParams==null ? null:format(fmt3Digit,orthoParams.getResolution(),"m/pix");
}
});
systemVars_.put("__TB_RESULTATS_DEBIT", new AbstractCellData() {
@@ -540,39 +606,43 @@
if (flowResults==null || flowResults.length==0)
return null;
+ // Une ligne blanche entre les r\xE9sultats et la moyenne
+ if (rowIndex==flowResults.length)
+ return "";
+
Double val;
switch (_col) {
default:
case 0:
- return rowIndex==flowResults.length? PivResource.getS("Moyenne"):""+(rowIndex+1);
+ return rowIndex==flowResults.length+1? PivResource.getS("Moyenne"):""+(rowIndex+1);
case 1:
- val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge();
- return format(fmtStd, val,null);
+ val=rowIndex==flowResults.length+1? meanDisch:flowResults[rowIndex].getDischarge();
+ return format(fmt3Digit, val,null);
case 2:
- val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge();
+ val=rowIndex==flowResults.length+1? meanDisch:flowResults[rowIndex].getDischarge();
val = (val-meanDisch)/meanDisch*100;
return format(fmtEcart, val,null);
case 3:
- val = rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea();
- return format(fmtStd, val,null);
+ val = rowIndex==flowResults.length+1? meanArea:flowResults[rowIndex].getWettedArea();
+ return format(fmt3Digit, val,null);
case 4:
- val=rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea();
+ val=rowIndex==flowResults.length+1? meanArea:flowResults[rowIndex].getWettedArea();
val = (val-meanArea)/meanArea*100;
return format(fmtEcart, val,null);
case 5:
- val = rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity();
- return format(fmtStd, val,null);
+ val = rowIndex==flowResults.length+1? meanMeanV:flowResults[rowIndex].getMeanVelocity();
+ return format(fmt3Digit, val,null);
case 6:
- val=rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity();
+ val=rowIndex==flowResults.length+1? meanMeanV:flowResults[rowIndex].getMeanVelocity();
val = (val-meanMeanV)/meanMeanV*100;
return format(fmtEcart, val,null);
case 7:
- val = rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
- return format(fmtStd, val,null);
+ val = rowIndex==flowResults.length+1? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
+ return format(fmt3Digit, val,null);
case 8:
- val=rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE);
- val = (val-meanMeasuredDisch)/meanMeasuredDisch*100;
+ val=rowIndex==flowResults.length+1? meanMeasuredDisch/meanDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE)/flowResults[rowIndex].getDischarge();
+ val*=100;
return format(fmtEcart, val,null);
}
}
@@ -584,7 +654,7 @@
@Override
public int getNbRows() {
- return transects==null ? 0 : transects.length+1;
+ return transects==null ? 0 : transects.length+2;
}
});
systemVars_.put("__SIM_MS", new AbstractScalarCellData() {
@@ -599,7 +669,7 @@
val = orthoParams.getResolution()*pivParams.getSim()/pivParams.getTimeInterval();
}
- return format(fmtStd, val,"m/s");
+ return format(fmt3Digit, val,"m/s");
}
return null;
}
@@ -622,7 +692,7 @@
val = orthoParams.getResolution()*pivParams.getSip()/pivParams.getTimeInterval();
}
- return format(fmtStd, val,"m/s");
+ return format(fmt3Digit, val,"m/s");
}
return null;
}
@@ -645,7 +715,7 @@
val = orthoParams.getResolution()*pivParams.getSjm()/pivParams.getTimeInterval();
}
- return format(fmtStd, val,"m/s");
+ return format(fmt3Digit, val,"m/s");
}
return null;
}
@@ -668,7 +738,7 @@
val = orthoParams.getResolution()*pivParams.getSjp()/pivParams.getTimeInterval();
}
- return format(fmtStd, val,"m/s");
+ return format(fmt3Digit, val,"m/s");
}
return null;
}
@@ -731,49 +801,49 @@
systemVars_.put("__VX_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd, pivParams.getVxmax(), "m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVxmax(), "m/s");
}
});
systemVars_.put("__VX_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd, pivParams.getVxmin(), "m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVxmin(), "m/s");
}
});
systemVars_.put("__VY_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd, pivParams.getVymax(),"m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVymax(),"m/s");
}
});
systemVars_.put("__VY_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return pivParams==null ? null:format(fmtStd, pivParams.getVymin(),"m/s");
+ return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVymin(),"m/s");
}
});
systemVars_.put("__X_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return orthoParams==null ? null:format(fmtStd, orthoParams.getXmax(),"m");
+ return orthoParams==null ? null:format(fmt3Digit, orthoParams.getXmax(),"m");
}
});
systemVars_.put("__X_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return orthoParams==null ? null:format(fmtStd, orthoParams.getXmin(),"m");
+ return orthoParams==null ? null:format(fmt3Digit, orthoParams.getXmin(),"m");
}
});
systemVars_.put("__Y_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return orthoParams==null ? null:format(fmtStd, orthoParams.getYmax(),"m");
+ return orthoParams==null ? null:format(fmt3Digit, orthoParams.getYmax(),"m");
}
});
systemVars_.put("__Y_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
- return orthoParams==null ? null:format(fmtStd, orthoParams.getYmin(),"m");
+ return orthoParams==null ? null:format(fmt3Digit, orthoParams.getYmin(),"m");
}
});
@@ -806,6 +876,13 @@
}
return ret;
}
+
+ /**
+ * @return True si le nom du projet a \xE9t\xE9 modifi\xE9.
+ */
+ private boolean isProjectFileModified() {
+ return !impl.getSavedProjectFile().equals(projectFile_);
+ }
/**
* @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2017-01-10 16:12:51 UTC (rev 9505)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2017-01-10 16:13:53 UTC (rev 9506)
@@ -254,4 +254,24 @@
public GrPoint getIACenterPosition() {
return ptCenter;
}
+
+ /**
+ * @return True si les vitesses sont filtr\xE9es
+ */
+ public boolean isVelocityFiltered() {
+ return smin != PivUtils.FORTRAN_DOUBLE_MIN ||
+ smax != PivUtils.FORTRAN_DOUBLE_MAX ||
+ vxmin != PivUtils.FORTRAN_DOUBLE_MIN ||
+ vxmax != PivUtils.FORTRAN_DOUBLE_MAX ||
+ vymin != PivUtils.FORTRAN_DOUBLE_MIN ||
+ vymax != PivUtils.FORTRAN_DOUBLE_MAX;
+ }
+
+ /**
+ * @return True si la correlation est filtr\xE9e
+ */
+ public boolean isCorrelationFiltered() {
+ return minCorrelation != PivUtils.FORTRAN_DOUBLE_MIN ||
+ maxCorrelation != PivUtils.FORTRAN_DOUBLE_MAX;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-26 16:54:35
|
Revision: 9531
http://sourceforge.net/p/fudaa/svn/9531
Author: bmarchan
Date: 2017-01-26 16:54:33 +0000 (Thu, 26 Jan 2017)
Log Message:
-----------
Fix LSPIV : Import des fichiers avec le nom correspondant
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -91,11 +91,15 @@
FILE_FLT_PROJ=new BuFileFilter("lspiv.zip",PivResource.getS("Fichier projet"));
FILE_FLT_PGM=new BuFileFilter("pgm",PivResource.getS("Fichiers images en niveaux de gris"));
FILE_FLT_IMAGES=new BuFileFilter(new String[]{"jpg","jpeg","gif","png","pgm","tif","tiff","bmp"},PivResource.getS("Fichiers images"));
- FILE_FLT_GRID=new BuFileFilter("dat",PivResource.getS("Fichier grid"));
- FILE_FLT_GRP=new BuFileFilter("dat",PivResource.getS("Fichier GRP"));
+ FILE_FLT_GRID=new BuFileFilter("grid.dat",PivResource.getS("Fichier grille (grid.dat)"));
+ FILE_FLT_GRID.setExtensionListInDescription(false);
+ FILE_FLT_GRP=new BuFileFilter("GRP.dat",PivResource.getS("Fichier points (GRP.dat)"));
+ FILE_FLT_GRP.setExtensionListInDescription(false);
FILE_FLT_BATHY=new BuFileFilter(new String[]{"dat",FILE_FLT_TRANS_BTH.getFirstExt()},PivResource.getS("Fichier bathy"));
- FILE_FLT_TRANSF_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params transformation"));
- FILE_FLT_COMPUTE_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params calcul"));
+ FILE_FLT_TRANSF_PARAMS=new BuFileFilter("img_ref.dat",PivResource.getS("Fichier transformation (img_ref.dat)"));
+ FILE_FLT_TRANSF_PARAMS.setExtensionListInDescription(false);
+ FILE_FLT_COMPUTE_PARAMS=new BuFileFilter("PIV_param.dat",PivResource.getS("Fichier calcul (PIV_param.dat)"));
+ FILE_FLT_COMPUTE_PARAMS.setExtensionListInDescription(false);
FILE_FLT_XLSX=new BuFileFilter("xlsx",PivResource.getS("Fichier Excel"));
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -56,13 +56,16 @@
}
// Selection du fichier
- if (fcParams==null)
- fcParams = new CtuluFileChooser(true);
+ if (fcParams == null) {
+ fcParams=new CtuluFileChooser(true);
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_COMPUTE_PARAMS);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcParams.setSelectedFile(new File(PivUtils.FILE_FLT_COMPUTE_PARAMS.getFirstExt()));
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de calcul"));
+ }
- fcParams.setAcceptAllFileFilterUsed(true);
- fcParams.setFileFilter(PivUtils.FILE_FLT_COMPUTE_PARAMS);
- fcParams.setMultiSelectionEnabled(false);
- fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de calcul"));
if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -64,12 +64,16 @@
}
// Selection du fichier
- if (fcGRP==null)
- fcGRP = new CtuluFileChooser(true);
- fcGRP.setAcceptAllFileFilterUsed(true);
- fcGRP.setFileFilter(PivUtils.FILE_FLT_GRP);
- fcGRP.setMultiSelectionEnabled(false);
- fcGRP.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier GRP"));
+ if (fcGRP == null) {
+ fcGRP=new CtuluFileChooser(true);
+ fcGRP.setAcceptAllFileFilterUsed(true);
+ fcGRP.setFileFilter(PivUtils.FILE_FLT_GRP);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcGRP.setSelectedFile(new File(PivUtils.FILE_FLT_GRP.getFirstExt()));
+ fcGRP.setMultiSelectionEnabled(false);
+ fcGRP.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier GRP"));
+ }
+
if (fcGRP.showOpenDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -61,12 +61,16 @@
}
// Selection du fichier
- if (fcGrid==null)
- fcGrid = new CtuluFileChooser(true);
- fcGrid.setAcceptAllFileFilterUsed(true);
- fcGrid.setFileFilter(PivUtils.FILE_FLT_GRID);
- fcGrid.setMultiSelectionEnabled(false);
- fcGrid.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de grille"));
+ if (fcGrid == null) {
+ fcGrid=new CtuluFileChooser(true);
+ fcGrid.setAcceptAllFileFilterUsed(true);
+ fcGrid.setFileFilter(PivUtils.FILE_FLT_GRID);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcGrid.setSelectedFile(new File(PivUtils.FILE_FLT_GRID.getFirstExt()));
+ fcGrid.setMultiSelectionEnabled(false);
+ fcGrid.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de grille"));
+ }
+
if (fcGrid.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -53,13 +53,16 @@
}
// Selection du fichier
- if (fcParams==null)
- fcParams = new CtuluFileChooser(true);
+ if (fcParams == null) {
+ fcParams=new CtuluFileChooser(true);
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_TRANSF_PARAMS);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcParams.setSelectedFile(new File(PivUtils.FILE_FLT_TRANSF_PARAMS.getFirstExt()));
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de transformation"));
+ }
- fcParams.setAcceptAllFileFilterUsed(true);
- fcParams.setFileFilter(PivUtils.FILE_FLT_TRANSF_PARAMS);
- fcParams.setMultiSelectionEnabled(false);
- fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de transformation"));
if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -48,12 +48,15 @@
}
// Selection du fichier
- if (fcTransect==null)
- fcTransect = new CtuluFileChooser();
- fcTransect.setAcceptAllFileFilterUsed(true);
- fcTransect.setFileFilter(PivUtils.FILE_FLT_BATHY);
- fcTransect.setMultiSelectionEnabled(false);
- fcTransect.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier transect"));
+ if (fcTransect == null) {
+ fcTransect=new CtuluFileChooser(true);
+ fcTransect.setAcceptAllFileFilterUsed(true);
+ fcTransect.setFileFilter(PivUtils.FILE_FLT_BATHY);
+ fcTransect.setSelectedFile(new File("trans0001.bth_dat"));
+ fcTransect.setMultiSelectionEnabled(false);
+ fcTransect.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier transect"));
+ }
+
if (fcTransect.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-02 11:37:37
|
Revision: 9532
http://sourceforge.net/p/fudaa/svn/9532
Author: bmarchan
Date: 2017-02-02 11:37:34 +0000 (Thu, 02 Feb 2017)
Log Message:
-----------
Fix LSPIV : Pb sur le calcul de moyennes apr?\195?\168s suppression de vitesses filtr?\195?\169es si aucune sauvegarde entre temps
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-26 16:54:33 UTC (rev 9531)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-02 11:37:34 UTC (rev 9532)
@@ -97,7 +97,7 @@
static {
isPIV_.name = "LSPIV";
isPIV_.version = "1.5.1";
- isPIV_.date = "2016-12-20";
+ isPIV_.date = "2017-02-02";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-01-26 16:54:33 UTC (rev 9531)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-02-02 11:37:34 UTC (rev 9532)
@@ -708,6 +708,9 @@
PivResultsI res=null;
try {
+ // Sauvegarde des r\xE9sultats filtr\xE9s qui ont pu \xEAtre modifi\xE9s par l'utilisateur.
+ _prj.getPersistenceManager().saveInstantFilteredResults(_prj, _prj.getInstantFilteredResults(), _task);
+
// Cr\xE9ation du fichier contenant la liste des fichiers piv.dat pour la moyenne.
_prj.getPersistenceManager().saveInstantResultsList(false);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-07 10:55:55
|
Revision: 9536
http://sourceforge.net/p/fudaa/svn/9536
Author: bmarchan
Date: 2017-02-07 10:55:52 +0000 (Tue, 07 Feb 2017)
Log Message:
-----------
LSPIV : Gestion de la saisie de r?\195?\169solution par couples de points
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form 2017-02-07 10:55:52 UTC (rev 9536)
@@ -58,23 +58,23 @@
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
- <Component id="spCouple" max="32767" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
- <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+ <EmptySpace min="0" pref="169" max="32767" attributes="0"/>
<Component id="btAdd" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btDelete" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="rbDistanceResol" min="-2" max="-2" attributes="0"/>
- <EmptySpace max="32767" attributes="0"/>
- <Component id="rbCoordsResol" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="coComputedResol" max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="lbComputedResol" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tfComputedResol" max="32767" attributes="0"/>
</Group>
+ <Component id="spCouple" alignment="1" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -86,10 +86,10 @@
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="rbDistanceResol" alignment="3" min="-2" pref="25" max="-2" attributes="0"/>
- <Component id="rbCoordsResol" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="coComputedResol" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
- <Component id="spCouple" pref="119" max="32767" attributes="0"/>
+ <Component id="spCouple" pref="135" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="btDelete" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -111,17 +111,9 @@
<Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
<ComponentRef name="bgResol"/>
</Property>
- <Property name="text" type="java.lang.String" value="Saisie par couple de points / distance"/>
+ <Property name="text" type="java.lang.String" value="Saisie par couple de points /"/>
</Properties>
</Component>
- <Component class="javax.swing.JRadioButton" name="rbCoordsResol">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="bgResol"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Saisie par couple de points / coordonnées"/>
- </Properties>
- </Component>
<Container class="javax.swing.JScrollPane" name="spCouple">
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
@@ -146,6 +138,16 @@
<Property name="text" type="java.lang.String" value="Ajouter un couple"/>
</Properties>
</Component>
+ <Component class="javax.swing.JComboBox" name="coComputedResol">
+ <Properties>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="0"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
+ </AuxValues>
+ </Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnEntering">
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -2,6 +2,8 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@@ -22,7 +24,7 @@
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
-import org.fudaa.fudaa.piv.action.PivEnterDistanceAction;
+import org.fudaa.fudaa.piv.action.PivEnterLineAction;
import com.memoire.fu.FuLog;
@@ -34,23 +36,32 @@
*/
public class PivScalingResolutionPanel extends CtuluDialogPanel {
- class CoupleDistanceRow {
+ class CoupleRow {
int i1;
int j1;
int i2;
int j2;
- /** Peut \xEAtre null quand elle n'a pas \xE9t\xE9 donn\xE9e. */
+ /** Peut \xEAtre null quand pas saisi. */
+ Double x1;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double y1;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double x2;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double y2;
+ /** Peut \xEAtre null quand pas saisi. */
Double distance;
- /** Peut \xEAtre null si la distance n'a pas \xE9t\xE9 donn\xE9e */
+ /** Peut \xEAtre null si la distance ou les coordonn\xE9es n'ont pas \xE9t\xE9 donn\xE9s */
Double resolution;
}
/**
- * Un modele pour les couples / distance
+ * Un modele pour les couples / (distance ou coordonn\xE9es)
* @author Bertrand Marchand (mar...@de...)
*/
- class CoupleDistanceTableModel extends AbstractTableModel {
- List<CoupleDistanceRow> rows = new ArrayList<>();
+ class CoupleTableModel extends AbstractTableModel {
+ List<CoupleRow> rows = new ArrayList<>();
+ boolean modeDistance_=true;
@Override
public int getRowCount() {
@@ -59,7 +70,7 @@
@Override
public int getColumnCount() {
- return 6;
+ return modeDistance_ ? 6:9;
}
@Override
@@ -75,8 +86,20 @@
case 3:
return rows.get(row).j2;
case 4:
- return rows.get(row).distance;
+ if (modeDistance_)
+ return rows.get(row).distance;
+ else
+ return rows.get(row).x1;
case 5:
+ if (modeDistance_)
+ return rows.get(row).resolution;
+ else
+ return rows.get(row).y1;
+ case 6:
+ return rows.get(row).x2;
+ case 7:
+ return rows.get(row).y2;
+ case 8:
return rows.get(row).resolution;
}
}
@@ -94,44 +117,96 @@
case 3:
return PivResource.getS("J2");
case 4:
- return PivResource.getS("Distance");
+ if (modeDistance_)
+ return PivResource.getS("Distance");
+ else
+ return PivResource.getS("X1");
case 5:
+ if (modeDistance_)
+ return PivResource.getS("R\xE9solution");
+ else
+ return PivResource.getS("Y1");
+ case 6:
+ return PivResource.getS("X2");
+ case 7:
+ return PivResource.getS("Y2");
+ case 8:
return PivResource.getS("R\xE9solution");
}
}
@Override
public boolean isCellEditable(int row, int column) {
- return column==4;
+ if (modeDistance_)
+ return column==4;
+ else
+ return column==4 || column==5 || column==6 || column==7;
}
@Override
public void setValueAt(Object aValue, int row, int column) {
+ Double val=null;
+ if (!aValue.toString().trim().isEmpty()) {
+ // Double attendu
+ try {
+ val=Double.parseDouble(aValue.toString().trim());
+ }
+ catch (NumberFormatException _exc) {
+ }
+ }
+
switch (column) {
default:
case 4:
- rows.get(row).distance=null;
- rows.get(row).resolution=null;
-
- if (!aValue.toString().trim().isEmpty()) {
- // Double attendu
- try {
- rows.get(row).distance=Double.parseDouble(aValue.toString());
- double dx=rows.get(row).i2 - rows.get(row).i1;
- double dy=rows.get(row).j2 - rows.get(row).j1;
- rows.get(row).resolution=rows.get(row).distance / Math.max(1, Math.sqrt(dx*dx + dy*dy));
- }
- catch (NumberFormatException _exc) {}
- }
-
- fireTableDataChanged();
+ if (modeDistance_)
+ rows.get(row).distance=val;
+ else
+ rows.get(row).x1=val;
break;
+ case 5:
+ rows.get(row).y1=val;
+ break;
+ case 6:
+ rows.get(row).x2=val;
+ break;
+ case 7:
+ rows.get(row).y2=val;
+ break;
}
+
+ computeResolution(row);
+
+ fireTableDataChanged();
}
+
+ /**
+ * Initialise la r\xE9solution en fonction des donn\xE9es de la table.
+ * @param row La ligne pour laquelle initialiser la r\xE9solution
+ */
+ public void computeResolution(int row) {
+ rows.get(row).resolution=null;
+ if (modeDistance_) {
+ if (rows.get(row).distance!=null) {
+ double dxi=rows.get(row).i2 - rows.get(row).i1;
+ double dyi=rows.get(row).j2 - rows.get(row).j1;
+ rows.get(row).resolution=rows.get(row).distance / Math.max(1, Math.sqrt(dxi*dxi + dyi*dyi));
+ }
+ }
+ else {
+ if (rows.get(row).x1!=null && rows.get(row).y1!=null && rows.get(row).x2!=null && rows.get(row).y2!=null) {
+ double dxi=rows.get(row).i2 - rows.get(row).i1;
+ double dyi=rows.get(row).j2 - rows.get(row).j1;
+ double dxr=rows.get(row).x2 - rows.get(row).x1;
+ double dyr=rows.get(row).y2 - rows.get(row).y1;
+ rows.get(row).resolution= Math.sqrt(dxr*dxr + dyr*dyr) / Math.max(1, Math.sqrt(dxi*dxi + dyi*dyi));
+ }
+ }
+ }
- public void addCouple(CoupleDistanceRow _cpl) {
+
+ public void addCouple(CoupleRow _cpl) {
rows.add(_cpl);
fireTableDataChanged();
}
@@ -144,12 +219,25 @@
}
/**
+ * Definit que le mod\xE8le est en mode distance ou en mode coordonn\xE9es r\xE9elles.
+ * @param _b True : En mode distance.
+ */
+ public void setModeDistance(boolean _b) {
+ modeDistance_=_b;
+
+ for (int i=0; i<rows.size(); i++) {
+ computeResolution(i);
+ }
+ fireTableStructureChanged();
+ }
+
+ /**
* @return La resolution moyenne, ou null si aucune r\xE9solution n'est d\xE9finie dans le tableau.
*/
public Double getAverageResolution() {
int nb=0;
double somme=0;
- for (CoupleDistanceRow cpl : rows) {
+ for (CoupleRow cpl : rows) {
if (cpl.resolution!=null) {
somme+=cpl.resolution;
nb++;
@@ -182,7 +270,7 @@
if (pl.sommets_.nombre() == 2) {
cqEdition_.endEdition();
- CoupleDistanceRow couple=new CoupleDistanceRow();
+ CoupleRow couple=new CoupleRow();
couple.i1=(int)pl.sommet(0).x_;
couple.j1=(int)pl.sommet(0).y_;
couple.i2=(int)pl.sommet(1).x_;
@@ -237,10 +325,10 @@
private PivVisuPanel pnLayers_;
private ZCalqueEditionInteractionTargetI ctrl_=new EditionController();
- private PivEnterDistanceAction actEnterDistance_;
+ private PivEnterLineAction actEnterDistance_;
private ZCalqueEditionInteraction cqEdition_;
private CtuluTable tbCouple=new CtuluTable();
- private CoupleDistanceTableModel mdlDistance;
+ private CoupleTableModel mdlDistance;
/**
* Constructeur.
@@ -255,9 +343,10 @@
}
private void customize() {
+ setHelpText(PivResource.getS("<html>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<br><br><u>Saisie par couple de points</u> :<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)</html>"));
+
rbDirectResol.setText(PivResource.getS("Saisie directe de la r\xE9solution")+" (m/pix):");
- rbDistanceResol.setText(PivResource.getS("Saisie par couple de points / distance"));
- rbCoordsResol.setText(PivResource.getS("Saisie par couple de points / coordonn\xE9es"));
+ rbDistanceResol.setText(PivResource.getS("Saisie par couples de points /"));
btDelete.setText(PivResource.getS("Supprimer"));
btDelete.setToolTipText(PivResource.getS("Supprime les couples s\xE9lectionn\xE9s"));
btDelete.addActionListener(new ActionListener() {
@@ -269,26 +358,34 @@
lbComputedResol.setText(PivResource.getS("R\xE9solution moyenne calcul\xE9e")+" (m/pix):");
- actEnterDistance_=new PivEnterDistanceAction(pnLayers_);
+ actEnterDistance_=new PivEnterLineAction(pnLayers_);
actEnterDistance_.setEditionController(ctrl_);
btAdd.setAction(actEnterDistance_);
actEnterDistance_.addPropertyChangeListener(new EbliSelectedChangeListener(btAdd));
spCouple.setViewportView(tbCouple);
- rbDirectResol.addActionListener(new ActionListener() {
+ coComputedResol.removeAllItems();
+ coComputedResol.addItem(PivResource.getS("Distance"));
+ coComputedResol.addItem(PivResource.getS("Coordonn\xE9es"));
+ coComputedResol.addItemListener(new ItemListener() {
+
@Override
- public void actionPerformed(ActionEvent e) {
- rbResolChanged();
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange()!=ItemEvent.SELECTED)
+ return;
+
+ mdlDistance.setModeDistance(coComputedResol.getSelectedIndex()==0);
}
});
- rbDistanceResol.addActionListener(new ActionListener() {
+
+ rbDirectResol.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
rbResolChanged();
}
});
- rbCoordsResol.addActionListener(new ActionListener() {
+ rbDistanceResol.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
rbResolChanged();
@@ -297,7 +394,7 @@
rbDirectResol.setSelected(true);
- mdlDistance= new CoupleDistanceTableModel();
+ mdlDistance= new CoupleTableModel();
mdlDistance.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
@@ -326,9 +423,10 @@
protected void rbResolChanged() {
tfDirectResol.setEnabled(rbDirectResol.isSelected());
- tbCouple.setEnabled(rbDistanceResol.isSelected() || rbCoordsResol.isSelected());
- btAdd.setEnabled((rbDistanceResol.isSelected() || rbCoordsResol.isSelected()));
- btDelete.setEnabled((rbDistanceResol.isSelected() || rbCoordsResol.isSelected()) && tbCouple.getSelectedRows().length>0);
+ tbCouple.setEnabled(rbDistanceResol.isSelected());
+ coComputedResol.setEnabled(rbDistanceResol.isSelected());
+ btAdd.setEnabled((rbDistanceResol.isSelected()));
+ btDelete.setEnabled(rbDistanceResol.isSelected() && tbCouple.getSelectedRows().length>0);
}
protected boolean isDistanceResolution() {
@@ -378,12 +476,12 @@
bgResol = new javax.swing.ButtonGroup();
pnDirect = new javax.swing.JPanel();
rbDistanceResol = new javax.swing.JRadioButton();
- rbCoordsResol = new javax.swing.JRadioButton();
spCouple = new javax.swing.JScrollPane();
btDelete = new javax.swing.JButton();
tfComputedResol = new javax.swing.JTextField();
lbComputedResol = new javax.swing.JLabel();
btAdd = new javax.swing.JToggleButton();
+ coComputedResol = new javax.swing.JComboBox<>();
pnEntering = new javax.swing.JPanel();
rbDirectResol = new javax.swing.JRadioButton();
tfDirectResol = new javax.swing.JTextField();
@@ -391,17 +489,16 @@
pnDirect.setBorder(javax.swing.BorderFactory.createEtchedBorder());
bgResol.add(rbDistanceResol);
- rbDistanceResol.setText("Saisie par couple de points / distance");
+ rbDistanceResol.setText("Saisie par couple de points /");
- bgResol.add(rbCoordsResol);
- rbCoordsResol.setText("Saisie par couple de points / coordonn\xE9es");
-
btDelete.setText("Supprimer");
tfComputedResol.setEnabled(false);
lbComputedResol.setText("R\xE9solution moyenne calcul\xE9e");
+ btAdd.setText("Ajouter un couple");
+
javax.swing.GroupLayout pnDirectLayout = new javax.swing.GroupLayout(pnDirect);
pnDirect.setLayout(pnDirectLayout);
pnDirectLayout.setHorizontalGroup(
@@ -409,20 +506,20 @@
.addGroup(pnDirectLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(spCouple)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnDirectLayout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
+ .addGap(0, 169, Short.MAX_VALUE)
.addComponent(btAdd)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btDelete))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnDirectLayout.createSequentialGroup()
.addComponent(rbDistanceResol)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(rbCoordsResol))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(coComputedResol, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(pnDirectLayout.createSequentialGroup()
.addComponent(lbComputedResol)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(tfComputedResol)))
+ .addComponent(tfComputedResol))
+ .addComponent(spCouple, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
pnDirectLayout.setVerticalGroup(
@@ -431,9 +528,9 @@
.addContainerGap()
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(rbDistanceResol, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(rbCoordsResol))
+ .addComponent(coComputedResol, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spCouple, javax.swing.GroupLayout.DEFAULT_SIZE, 119, Short.MAX_VALUE)
+ .addComponent(spCouple, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btDelete)
@@ -498,10 +595,10 @@
private javax.swing.ButtonGroup bgResol;
private javax.swing.JToggleButton btAdd;
private javax.swing.JButton btDelete;
+ private javax.swing.JComboBox<String> coComputedResol;
private javax.swing.JLabel lbComputedResol;
private javax.swing.JPanel pnDirect;
private javax.swing.JPanel pnEntering;
- private javax.swing.JRadioButton rbCoordsResol;
private javax.swing.JRadioButton rbDirectResol;
private javax.swing.JRadioButton rbDistanceResol;
private javax.swing.JScrollPane spCouple;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -119,6 +119,6 @@
@Override
public String getEnableCondition() {
- return PivResource.getS("Le projet doit \xEAtre cr\xE9\xE9");
+ return PivResource.getS("Il doit exister au moins une image source");
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -8,20 +8,12 @@
package org.fudaa.fudaa.piv.action;
import java.awt.event.ActionEvent;
-import java.io.File;
-import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivExePanel;
import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivManageOriginalFilesPanel;
-import org.fudaa.fudaa.piv.PivProgressionPanel;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivScalingResolutionPanel;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.io.PivExeLauncher;
/**
* Une action pour selectionner et reconditionner les images sources.
@@ -46,7 +38,6 @@
}
/**
- * Selectionne les images, pour les reconditionne dans un thread s\xE9par\xE9.
* @param _e L'evenement pour l'action.
*/
@Override
@@ -55,47 +46,11 @@
return;
}
- // Selection des images
+ // D\xE9finition de la r\xE9solution.
if (pnResolution==null)
pnResolution = new PivScalingResolutionPanel(impl.get2dFrame().getVisuPanel());
pnResolution.affiche(impl.getFrame(), PivResource.getS("D\xE9finition de la r\xE9solution"), CtuluDialog.OK_CANCEL_OPTION);
-
-// final File[] srcImgFiles=pnResolution.getFiles();
-
- // Le reconditionnement des images.
-// CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Traitement des images sources")) {
-//
-// @Override
-// public void act() {
-// try {
-// CtuluLog ana=new CtuluLog();
-// ana.setDesc(getName());
-// impl.getCurrentProject().setSrcImagesFiles(srcImgFiles, this, ana);
-//
-// if (ana.containsErrorOrSevereError()) {
-// impl.error(ana.getResume());
-// return;
-// }
-//
-// }
-// finally {
-// diProgress_.dispose();
-// }
-// }
-// };
-//
-// PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
-// diProgress_ = pnProgress_.createDialog(impl.getParentComponent());
-// diProgress_.setOption(CtuluDialog.ZERO_OPTION);
-// diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
-// diProgress_.setTitle(r.getName());
-//
-// r.start();
-// diProgress_.afficheDialogModal();
-
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
- impl.get2dFrame().restaurer();
}
/**
@@ -107,6 +62,6 @@
@Override
public String getEnableCondition() {
- return PivResource.getS("Le projet doit \xEAtre cr\xE9\xE9");
+ return PivResource.getS("Il doit exister au moins une image source");
}
}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -1,176 +0,0 @@
-/*
- * @creation 3 juil. 2008
- * @modification $Date:$
- * @license GNU General Public License 2
- * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail fud...@li...
- */
-package org.fudaa.fudaa.piv.action;
-
-import java.awt.Container;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import javax.swing.JComponent;
-import javax.swing.JInternalFrame;
-import javax.swing.SwingUtilities;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
-import org.fudaa.ebli.calque.dessin.DeForme;
-import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction;
-import org.fudaa.ebli.calque.edition.ZCalqueEditionInteractionTargetI;
-import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
-import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivSimplifiedEditionPalette;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.action.PivComputeGridDefinitionAction.Piv2dFrameListener;
-
-import com.memoire.bu.BuDesktop;
-
-/**
- * Une action pour saisir une distance (trac\xE9 d'une ligne simple).
- *
- * @author Bertrand Marchand (mar...@de...)
- * @version $Id: PivDefineAreaCenterAction.java 6709 2011-11-24 16:17:00Z bmarchan $
- */
-public class PivEnterDistanceAction extends EbliActionPaletteAbstract {
-
- private PivVisuPanel pnCalques_;
- /** Le calque d'\xE9dition. */
- private ZCalqueEditionInteraction cqEdition_;
- /** Le controller d'edition */
- private ZCalqueEditionInteractionTargetI controller_;
- /** La palette pour la reprise. */
- private PivSimplifiedEditionPalette palette_;
- /** Le listener sur le statut gele du calque d'\xE9dition */
- private PropertyChangeListener listener_;
-
- /**
- * Constructeur.
- * @param _pn Le panneau des calques.
- */
- public PivEnterDistanceAction(PivVisuPanel _pn) {
- super(PivResource.getS("Saisir un couple"), null, "DEFINE_DISTANCE");
- setDefaultToolTip(PivResource.getS("Ajoute un couple par saisie de 2 points"));
- pnCalques_=_pn;
-
- // Pour ecouter le statut du calque d'edition
-// listener_=new PropertyChangeListener() {
-// @Override
-// public void propertyChange(PropertyChangeEvent evt) {
-// setSelected(!(Boolean)evt.getNewValue());
-// }
-// };
-
- setCalqueInteraction(_pn.getEditionLayer());
- }
-
- /**
- * Definit le calque d'interaction associ\xE9 \xE0 l'action.
- * @param _cq Le calque. Peut \xEAtre <tt>null</tt>.
- */
- private void setCalqueInteraction(ZCalqueEditionInteraction _cq) {
-// if (cqEdition_==_cq) return;
-//
-// if (cqEdition_!=null)
-// cqEdition_.removePropertyChangeListener("gele", listener_);
-
- cqEdition_=_cq;
-
-// if (cqEdition_!=null)
-// cqEdition_.addPropertyChangeListener("gele", listener_);
- }
-
- /**
- * Definit le controlleur d'edition.
- * @param _ctrl Le controlleur.
- */
- public void setEditionController(ZCalqueEditionInteractionTargetI _ctrl) {
- controller_=_ctrl;
- }
-
- /**
- * Surcharge pour activer/desactiver le calque d'edition.
- */
- @Override
- public void changeAction() {
- if (isSelected())
- pnCalques_.setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
-
-// cqEdition_.setListener(controller_);
-// cqEdition_.setTypeForme(DeForme.LIGNE_BRISEE);
-// cqEdition_.setFormEndedByDoubleClic(true);
-// pnCalques_.setCalqueInteractionActif(cqEdition...
[truncated message content] |
|
From: <bma...@us...> - 2017-03-13 09:26:13
|
Revision: 9539
http://sourceforge.net/p/fudaa/svn/9539
Author: bmarchan
Date: 2017-03-13 09:26:10 +0000 (Mon, 13 Mar 2017)
Log Message:
-----------
Ajoute le choix du mode d'orthorectification
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -7,7 +7,6 @@
*/
package org.fudaa.fudaa.piv;
-import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Point;
@@ -14,7 +13,6 @@
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
@@ -33,7 +31,6 @@
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
-import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
@@ -51,6 +48,7 @@
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
import org.fudaa.fudaa.piv.action.PivAutoCacheAction;
import org.fudaa.fudaa.piv.action.PivAverageFilteredResultsAction;
+import org.fudaa.fudaa.piv.action.PivChooseOrthoModeAction;
import org.fudaa.fudaa.piv.action.PivComputeFlowAction;
import org.fudaa.fudaa.piv.action.PivComputeLaunchAction;
import org.fudaa.fudaa.piv.action.PivDefineComputeParamAction;
@@ -75,7 +73,6 @@
import com.memoire.bu.BuAbstractPreferencesPanel;
import com.memoire.bu.BuBrowserPreferencesPanel;
-import com.memoire.bu.BuCheckBoxMenuItem;
import com.memoire.bu.BuDesktopPreferencesPanel;
import com.memoire.bu.BuInformationsSoftware;
import com.memoire.bu.BuLanguagePreferencesPanel;
@@ -84,7 +81,6 @@
import com.memoire.bu.BuMenuItem;
import com.memoire.bu.BuMenuRecentFiles;
import com.memoire.bu.BuPreferences;
-import com.memoire.bu.BuRadioButtonMenuItem;
import com.memoire.bu.BuRegistry;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuUserPreferencesPanel;
@@ -222,6 +218,9 @@
setEnabledForAction("EXPORT_GAUGING_REPORT", bprjOpen);
setEnabledForAction("SCALING_PARAMS", bprjHasSrcImg);
setEnabledForAction("SCALING_RESOLUTION", bprjHasSrcImg);
+ setEnabledForAction("DEFINE_ORTHO_MODE", bprjHasSrcImg);
+ setEnabledForAction("MN_SCALING", bprjHasSrcImg && !project.isFullOrtho());
+ setEnabledForAction("MN_ORTHO", bprjHasSrcImg && project.isFullOrtho());
refreshTitle();
}
@@ -827,14 +826,16 @@
mn.add(new PivAutoCacheAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
mn.addSeparator(PivResource.getS("Orthorectification"));
+ mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- BuMenu mnMae=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MAE");
- mnMae.add(new PivDefineResolutionScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- mnMae.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
+ mnScaling.add(new PivDefineResolutionScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mnScaling.setEnabled(false);
- mn.add(mnMae);
+ mn.add(mnScaling);
- BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"ORTHO");
+ BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
sm=new BuMenu(PivResource.getS("Points de r\xE9f\xE9rence"),"mnGRP");
bt=get2dFrame().getVisuPanel().getOrthoGRPAction().buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Nouveaux..."));
@@ -852,6 +853,8 @@
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
mnOrtho.add(sm);
+ mnOrtho.setEnabled(false);
+
mn.add(mnOrtho);
mn.add(new PivOrthoLaunchAction(this));
@@ -985,9 +988,6 @@
* @return True : Une mise a jour existe.
*/
public boolean checkForUpdate(boolean _showHideButton) {
-
- isPIV_.update=System.getProperty("piv.update", "https://forge.irstea.fr/projects/fudaa-lspiv/files");
-
try {
URL urlFlag=new URL(isPIV_.update+"/fudaa-lspiv-lastversion.txt");
if (FuLib.existsURL(urlFlag)) {
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -0,0 +1,58 @@
+package org.fudaa.fudaa.piv;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JRadioButton;
+import javax.swing.border.EtchedBorder;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+
+import com.memoire.bu.BuVerticalLayout;
+
+/**
+ * Un panneau de saisie du mode d'orthorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivTransectParamPanel.java 9500 2017-01-09 17:22:31Z bmarchan $
+ */
+public class PivOrthoModePanel extends CtuluDialogPanel {
+ PivImplementation impl_;
+ JRadioButton rbScaling_;
+ JRadioButton rbOrtho_;
+
+ /**
+ * Constructeur.
+ */
+ public PivOrthoModePanel(PivImplementation _impl) {
+ impl_=_impl;
+ customize();
+ }
+
+ private void customize() {
+ rbScaling_ = new JRadioButton(PivResource.getS("Mise \xE0 l'\xE9chelle"));
+ rbOrtho_ = new JRadioButton(PivResource.getS("Orthorectification compl\xE8te"));
+ rbOrtho_.setSelected(true);
+ ButtonGroup bg=new ButtonGroup();
+ bg.add(rbScaling_);
+ bg.add(rbOrtho_);
+
+ setLayout(new BuVerticalLayout(2));
+ setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
+ add(rbScaling_);
+ add(rbOrtho_);
+ }
+
+ public void setModeFullOrtho(boolean _b) {
+ if (_b) {
+ rbOrtho_.setSelected(true);
+ }
+ else {
+ rbScaling_.setSelected(true);
+ }
+
+ }
+
+ public boolean isModeFullOrtho() {
+ return rbOrtho_.isSelected();
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -0,0 +1,51 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+
+import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivOrthoModePanel;
+import org.fudaa.fudaa.piv.PivResource;
+
+/**
+ * Une action pour choisir le mode op\xE9ratoire de l'othorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivTransectParamAction.java 9132 2015-06-16 14:54:20Z bmarchan $
+ */
+public class PivChooseOrthoModeAction extends EbliActionSimple {
+ PivImplementation impl;
+
+ public PivChooseOrthoModeAction(PivImplementation _impl) {
+ super(PivResource.getS("Mode d'orthorectification..."), null, "DEFINE_ORTHO_MODE");
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Affiche le panneau des param\xE8tres de calcul.
+ * @param _e L'evenement pour l'action.
+ */
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ PivOrthoModePanel pn=new PivOrthoModePanel(impl);
+ pn.setModeFullOrtho(impl.getCurrentProject().isFullOrtho());
+
+ if (pn.afficheModale(impl.getFrame(), PivResource.getS("Mode d'orthorectification"),CtuluDialog.OK_CANCEL_OPTION)==CtuluDialog.OK_OPTION) {
+ impl.getCurrentProject().setFullOrtho(pn.isModeFullOrtho());
+ }
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image source");
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -14,6 +14,8 @@
import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
import org.fudaa.fudaa.piv.PivResource;
+import gnu.trove.TDoubleArrayList;
+
/**
* Un lecteur pour le fichier des coefficients d'orthorectification.
*
@@ -45,7 +47,7 @@
* @return les infos non bloquantes.
*/
private synchronized double[] readCoeffs() {
- double[] coeffs=new double[0];
+ TDoubleArrayList coeffs=new TDoubleArrayList();
if (super.in_ == null) {
analyze_.addError(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
@@ -59,15 +61,23 @@
in_.setJumpBlankLine(true);
- // Nombre de coeffs
in_.readFields();
- coeffs=new double[in_.intField(0)];
+ // Nombre de coeffs (les anciens fichiers n'ont pas cette ligne)
+ try {
+ in_.intField(0);
+ }
+ catch (NumberFormatException _exc) {
+ coeffs.add(in_.doubleField(0));
+ }
- // Les coeffs
- for (int i=0; i<coeffs.length; i++) {
- in_.readFields();
- coeffs[i]=in_.doubleField(0);
+ // Les coeffs (jusqu'\xE0 la fin du fichier)
+ try {
+ while (true) {
+ in_.readFields();
+ coeffs.add(in_.doubleField(0));
+ }
}
+ catch (EOFException _exc) {}
if (progress_ != null) {
progress_.setProgression(100);
@@ -82,7 +92,7 @@
catch (final NumberFormatException e) {
analyze_.manageException(e);
}
- return coeffs;
+ return coeffs.toNativeArray();
}
/**
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -104,8 +104,8 @@
protected boolean areSrcImagesChanged=true;
/** Les param\xE8tres de transformation du syteme initial vers le systeme de calcul. */
protected PivTransformationParameters transfParams=new PivTransformationParameters();
- /** Les coefficients de transformation pour l'orthorectification. 0 : On est en mise \xE0 l'echelle. */
- protected double[] coeffs=new double[0];
+ /** Les coefficients de transformation pour l'orthorectification. Length=0 : On est en mise \xE0 l'echelle. */
+ protected double[] coeffs=null;
/** Les listeners notifi\xE9s lors d'une modification du projet. */
protected HashSet<PivProjectStateListener> listeners=new HashSet<PivProjectStateListener>();
@@ -750,11 +750,30 @@
}
/**
- * @return True, si le projet est en full ortho (ce n'est pas une mise \xE0 l'echelle).
+ * @return True, si le projet est en full ortho (par opposition \xE0 une mise \xE0 l'echelle).
*/
public boolean isFullOrtho() {
- return coeffs!=null && coeffs.length>0;
+ return coeffs==null || coeffs.length>0;
}
+
+ /**
+ * Definit que le projet est en full ortho (ou en mise \xE0 l'\xE9chelle).
+ * @param _b True : Full ortho, False : Mise \xE0 l'echelle.
+ */
+ public void setFullOrtho(boolean _b) {
+ if (_b==isFullOrtho())
+ return;
+
+ if (_b) {
+ coeffs=null;
+ }
+ else {
+ coeffs=new double[0];
+ }
+
+ isModified=true;
+ fireProjectStateChanged("orthoMode");
+ }
/**
* Retourne les points d'orthorectification.
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 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -25,6 +25,8 @@
import org.fudaa.fudaa.piv.io.PivBathyPReader;
import org.fudaa.fudaa.piv.io.PivBathyReader;
import org.fudaa.fudaa.piv.io.PivBathyWriter;
+import org.fudaa.fudaa.piv.io.PivCoeffReader;
+import org.fudaa.fudaa.piv.io.PivCoeffWriter;
import org.fudaa.fudaa.piv.io.PivDischargeReader;
import org.fudaa.fudaa.piv.io.PivGRPReader;
import org.fudaa.fudaa.piv.io.PivGRPWriter;
@@ -80,6 +82,13 @@
CtuluIOResult<PivOrthoPoint[]> ret = new PivGRPReader().read(grpFile, _prog);
prj_.orthoPoints=ret.getSource();
}
+
+ // Le fichier des coefficients ortho
+ File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
+ if (coeffFile.exists()) {
+ CtuluIOResult<double[]> ret = new PivCoeffReader().read(coeffFile, _prog);
+ prj_.coeffs=ret.getSource();
+ }
// Les fichiers de parametres ortho
File imgRefFile=new File(prj_.getOutputDir(),"img_ref.dat");
@@ -514,6 +523,12 @@
File grpFile=new File(prj_.getOutputDir(),"GRP.dat");
new PivGRPWriter().write(prj_.orthoPoints, grpFile, null);
}
+
+ // Le fichier des coefficients ortho
+ if (prj_.coeffs!=null) {
+ File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
+ new PivCoeffWriter().write(prj_.coeffs, coeffFile, null);
+ }
// Les fichiers de parametres ortho
if (prj_.orthoParams!=null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-03-13 21:46:38
|
Revision: 9542
http://sourceforge.net/p/fudaa/svn/9542
Author: bmarchan
Date: 2017-03-13 21:46:36 +0000 (Mon, 13 Mar 2017)
Log Message:
-----------
LSPIV : Saisie des parametres de scaling
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form (from rev 9538, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.form)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form 2017-03-13 21:46:36 UTC (rev 9542)
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder/>
+ </Border>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <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="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <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="pnPositions" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="pnPositions" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnPositions">
+ <Properties>
+ <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 title="Position des coins (m)"/>
+ </Border>
+ </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="lbXmin" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="lbYmin" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="tfXmin" pref="83" max="32767" attributes="1"/>
+ <Component id="tfYmin" alignment="0" pref="76" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="lbYmax" min="-2" max="-2" attributes="0"/>
+ <Component id="lbXmax" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="tfXmax" pref="85" max="32767" attributes="1"/>
+ <Component id="tfYmax" alignment="0" pref="78" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace 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="3" attributes="0">
+ <Component id="lbXmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfXmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lbXmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfXmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="lbYmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfYmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lbYmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfYmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="lbXmin">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Xmin:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfXmin">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+ <Connection code="new Dimension(50,tfXmin.getPreferredSize().height)" type="code"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbXmax">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Xmax:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfXmax">
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbYmax">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Ymax:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfYmax">
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbYmin">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Ymin:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfYmin">
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java (from rev 9538, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -0,0 +1,235 @@
+package org.fudaa.fudaa.piv;
+
+import java.awt.Dimension;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
+
+/**
+ * Un panneau de saisie des param\xE8tres de scaling.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivScalingParamPanel extends CtuluDialogPanel {
+ PivImplementation impl_;
+
+ /**
+ * Constructeur.
+ */
+ public PivScalingParamPanel(PivImplementation _impl) {
+ impl_=_impl;
+ initComponents();
+ customize();
+
+ PivOrthoParameters params=impl_.getCurrentProject().getOrthoParameters();
+ if (params==null)
+ params=new PivOrthoParameters();
+ setParams(params);
+ }
+
+ private void customize() {
+ lbXmin.setText(PivResource.getS("Xmin: "));
+ lbYmin.setText(PivResource.getS("Ymin: "));
+ lbXmax.setText(PivResource.getS("Xmax: "));
+ lbYmax.setText(PivResource.getS("Ymax: "));
+ pnPositions.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Position des coins (m)")));
+ }
+
+ /**
+ * Rempli le panneau depuis les donn\xE9es du projet.
+ * @param _params L'objet m\xE9tier pour l'orthorectification.
+ */
+ public void setParams(PivOrthoParameters _params) {
+ tfXmin.setText("" + _params.getXmin());
+ tfXmax.setText("" + _params.getXmax());
+ tfYmin.setText("" + _params.getYmin());
+ tfYmax.setText("" + _params.getYmax());
+ }
+
+ /**
+ * Met a jour les parametres d'ortho rectification donn\xE9s.
+ * @param _params Les parametres d'ortho rectification.
+ */
+ public void retrieveParams(PivOrthoParameters _params) {
+ _params.setXmin(Double.parseDouble(tfXmin.getText().trim()));
+ _params.setYmin(Double.parseDouble(tfYmin.getText().trim()));
+ _params.setXmax(Double.parseDouble(tfXmax.getText().trim()));
+ _params.setYmax(Double.parseDouble(tfYmax.getText().trim()));
+ }
+
+ @Override
+ public boolean isDataValid() {
+ boolean bok=false;
+ double xmin=0;
+ double xmax=0;
+ double ymin=0;
+ double ymax=0;
+
+ try {
+ bok=false;
+ xmin=Double.parseDouble(tfXmin.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Xmin doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ xmax=Double.parseDouble(tfXmax.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Xmax doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ if (xmin>=xmax) {
+ setErrorText(PivResource.getS("Xmax doit \xEAtre strictement sup\xE9rieur \xE0 Xmin"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ ymin=Double.parseDouble(tfYmin.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Ymin doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ ymax=Double.parseDouble(tfYmax.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Ymax doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ if (ymin>=ymax) {
+ setErrorText(PivResource.getS("Ymax doit \xEAtre strictement sup\xE9rieur \xE0 Ymin"));
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Surcharg\xE9 pour pouvoir pr\xE9visualiser l'image transform\xE9e sans sortir du
+ * dialogue.
+ */
+ @Override
+ public void apply() {
+ PivOrthoParameters params=impl_.getCurrentProject().getOrthoParameters();
+ if (params==null)
+ params=new PivOrthoParameters();
+
+ retrieveParams(params);
+ impl_.getCurrentProject().setOrthoParameters(params);
+ }
+
+ /** 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() {
+
+ pnPositions = new javax.swing.JPanel();
+ lbXmin = new javax.swing.JLabel();
+ tfXmin = new javax.swing.JTextField();
+ lbXmax = new javax.swing.JLabel();
+ tfXmax = new javax.swing.JTextField();
+ lbYmax = new javax.swing.JLabel();
+ tfYmax = new javax.swing.JTextField();
+ lbYmin = new javax.swing.JLabel();
+ tfYmin = new javax.swing.JTextField();
+
+ setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
+
+ pnPositions.setBorder(javax.swing.BorderFactory.createTitledBorder("Position des coins (m)"));
+
+ lbXmin.setText("Xmin:");
+
+ tfXmin.setPreferredSize(new Dimension(50,tfXmin.getPreferredSize().height));
+
+ lbXmax.setText("Xmax:");
+
+ lbYmax.setText("Ymax:");
+
+ lbYmin.setText("Ymin:");
+
+ javax.swing.GroupLayout pnPositionsLayout = new javax.swing.GroupLayout(pnPositions);
+ pnPositions.setLayout(pnPositionsLayout);
+ pnPositionsLayout.setHorizontalGroup(
+ pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnPositionsLayout.createSequentialGroup()
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lbXmin)
+ .addComponent(lbYmin))
+ .addGap(8, 8, 8)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(tfXmin, javax.swing.GroupLayout.DEFAULT_SIZE, 83, Short.MAX_VALUE)
+ .addComponent(tfYmin, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(lbYmax)
+ .addComponent(lbXmax))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(tfXmax, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)
+ .addComponent(tfYmax, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))
+ .addContainerGap())
+ );
+ pnPositionsLayout.setVerticalGroup(
+ pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnPositionsLayout.createSequentialGroup()
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lbXmin)
+ .addComponent(tfXmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbXmax)
+ .addComponent(tfXmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lbYmax)
+ .addComponent(tfYmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbYmin)
+ .addComponent(tfYmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnPositions, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnPositions, 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 javax.swing.JLabel lbXmax;
+ private javax.swing.JLabel lbXmin;
+ private javax.swing.JLabel lbYmax;
+ private javax.swing.JLabel lbYmin;
+ private javax.swing.JPanel pnPositions;
+ private javax.swing.JTextField tfXmax;
+ private javax.swing.JTextField tfXmin;
+ private javax.swing.JTextField tfYmax;
+ private javax.swing.JTextField tfYmin;
+ // End of variables declaration//GEN-END:variables
+}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java 2017-03-13 16:37:57 UTC (rev 9541)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -289,6 +289,9 @@
}
public void setParams(PivOrthoParameters _params) {
+ if (_params==null)
+ return;
+
GrPoint[] imgPoints = _params.getScalingImgPoints();
GrPoint[] realPoints = _params.getScalingRealPoints();
@@ -364,6 +367,9 @@
@Override
public void apply() {
PivOrthoParameters params=prj_.getOrthoParameters();
+ if (params==null)
+ params = new PivOrthoParameters();
+
retrieveParams(params);
prj_.setOrthoParameters(params);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-03-13 16:37:57 UTC (rev 9541)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -8,19 +8,12 @@
package org.fudaa.fudaa.piv.action;
import java.awt.event.ActionEvent;
-import java.io.File;
-import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivExePanel;
import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivManageOriginalFilesPanel;
-import org.fudaa.fudaa.piv.PivProgressionPanel;
import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.io.PivExeLauncher;
+import org.fudaa.fudaa.piv.PivScalingParamPanel;
/**
* Une action pour selectionner et reconditionner les images sources.
@@ -30,7 +23,7 @@
*/
public class PivDefineParamScalingAction extends EbliActionSimple {
PivImplementation impl;
- PivManageOriginalFilesPanel pnMngImages;
+ PivScalingParamPanel pnParams;
CtuluDialog diProgress_;
/**
@@ -54,60 +47,9 @@
return;
}
- if (!PivExeLauncher.instance().areExeOK()) {
- PivExePanel pnExe = new PivExePanel();
-
- // TODO BM : Verifier que les nouvelles images sont compatibles avec les donn\xE9es d'ortho ou message.
-
- if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) {
- return;
- }
- }
-
// Selection des images
- if (pnMngImages==null)
- pnMngImages = new PivManageOriginalFilesPanel(impl);
- pnMngImages.setRootProject(impl.getCurrentProject().getRoot());
- pnMngImages.setFiles(impl.getCurrentProject().getSrcImageFiles());
- if (!pnMngImages.afficheModaleOk(impl.getFrame(), PivResource.getS("Gestion des images"), CtuluDialog.OK_CANCEL_OPTION)) {
- return;
- }
-
- final File[] srcImgFiles=pnMngImages.getFiles();
-
- // Le reconditionnement des images.
- CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Traitement des images sources")) {
-
- @Override
- public void act() {
- try {
- CtuluLog ana=new CtuluLog();
- ana.setDesc(getName());
- impl.getCurrentProject().setSrcImagesFiles(srcImgFiles, this, ana);
-
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
- }
-
- }
- finally {
- diProgress_.dispose();
- }
- }
- };
-
- PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
- diProgress_ = pnProgress_.createDialog(impl.getParentComponent());
- diProgress_.setOption(CtuluDialog.ZERO_OPTION);
- diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
- diProgress_.setTitle(r.getName());
-
- r.start();
- diProgress_.afficheDialogModal();
-
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
- impl.get2dFrame().restaurer();
+ pnParams = new PivScalingParamPanel(impl);
+ pnParams.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres"), CtuluDialog.OK_CANCEL_OPTION);
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|