|
From: <bma...@us...> - 2017-04-25 16:31:27
|
Revision: 9547
http://sourceforge.net/p/fudaa/svn/9547
Author: bmarchan
Date: 2017-04-25 16:31:24 +0000 (Tue, 25 Apr 2017)
Log Message:
-----------
Mise au point de la mise a l'echelle des images.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.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/action/PivOrthoLaunchAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2017-04-19 08:35:20 UTC (rev 9546)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2017-04-25 16:31:24 UTC (rev 9547)
@@ -58,17 +58,28 @@
public void act() {
try {
- CtuluLog ana=new CtuluLog();
- ana.setDesc(getName());
- PivExeLauncher.instance().computeOrthoCoefs(ana, impl.getCurrentProject(), this);
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
+ if (impl.getCurrentProject().isFullOrtho()) {
+ CtuluLog ana=new CtuluLog();
+ ana.setDesc(getName());
+ PivExeLauncher.instance().computeOrthoCoefs(ana, impl.getCurrentProject(), this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
+ PivExeLauncher.instance().computeTransfImg(ana, impl.getCurrentProject(), false, this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
}
- PivExeLauncher.instance().computeTransfImg(ana, impl.getCurrentProject(), false, this);
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
+ else {
+ CtuluLog ana=new CtuluLog();
+ ana.setDesc(getName());
+ PivExeLauncher.instance().computeScalingImages(ana, impl.getCurrentProject(), false, this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
}
}
finally {
@@ -94,15 +105,18 @@
* @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
*/
public boolean isValide() {
- if (impl.getCurrentProject().getOrthoPoints()==null) {
- impl.error(PivResource.getS("Erreur"), PivResource.getS("Aucun point de r\xE9f\xE9rence au sol n'a \xE9t\xE9 d\xE9fini"));
- return false;
+ // Controle des points ortho uniquement pour full ortho.
+ if (impl.getCurrentProject().isFullOrtho()) {
+ if (impl.getCurrentProject().getOrthoPoints() == null) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Aucun point de r\xE9f\xE9rence au sol n'a \xE9t\xE9 d\xE9fini"));
+ return false;
+ }
+ String mes=impl.getCurrentProject().areOrthoPointsOk();
+ if (mes != null) {
+ impl.error(PivResource.getS("Erreur"), mes);
+ return false;
+ }
}
- String mes=impl.getCurrentProject().areOrthoPointsOk();
- if (mes!=null) {
- impl.error(PivResource.getS("Erreur"), mes);
- return false;
- }
if (impl.getCurrentProject().getOrthoParameters()==null) {
impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres d'orthorectification n'ont pas \xE9t\xE9 donn\xE9s"));
return 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-04-19 08:35:20 UTC (rev 9546)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-04-25 16:31:24 UTC (rev 9547)
@@ -1,5 +1,7 @@
package org.fudaa.fudaa.piv.io;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@@ -13,11 +15,15 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
+import org.fudaa.ebli.geometrie.GrVecteur;
import org.fudaa.fudaa.piv.PivPreferences;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.imageio.PivPGMWriter;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
+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;
@@ -239,6 +245,111 @@
}
/**
+ * Lance le calcul de transformation des images sources a partir des parametres de scaling
+ * d'orthorectification.
+ *
+ * @param _ana L'analyse pour la tache ex\xE9cut\xE9e.
+ * @param _prj Le projet.
+ * @param _task La tache en cours d'execution.
+ * @param _apercu true : Ne calcule qu'une seule image, pour l'apercu en espace
+ * r\xE9el.
+ * @return true : Tout s'est bien d\xE9roul\xE9.
+ */
+ public boolean computeScalingImages(CtuluLog _ana, PivProject _prj, boolean _apercu, CtuluTaskOperationGUI _task) {
+ File prjRoot=_prj.getRoot();
+ File prjImgOut=new File(prjRoot,IMG_TRANSF_DIR);
+
+ // Nettoyage eventuel du repertoire des images transform\xE9es.
+ prjImgOut.mkdir();
+ for (File f : _prj.getTransfImageFiles()) f.delete();
+
+ try {
+ // Les images sources
+ File[] imgInp = _prj.getSrcImageFiles();
+
+ if (_task!=null)
+ _task.setProgression(10);
+ int prog=0;
+
+ PivOrthoParameters params=_prj.getOrthoParameters();
+
+ int maxIter=(_apercu?1:imgInp.length);
+ for (int i = 0; i <maxIter ; i++) {
+ try {
+ if (_prj.cacheExists(imgInp[i])) {
+ File cache = _prj.getCacheImageFile(imgInp[i]);
+ BufferedImage inputBuffer = ImageIO.read(cache);
+
+ int imin=(int) (params.getXmin() / params.getResolution());
+ int jmin=(int) (params.getYmin() / params.getResolution());
+ int imax=(int) (params.getXmax() / params.getResolution());
+ int jmax=(int) (params.getYmax() / params.getResolution());
+ BufferedImage outputBuffer=new BufferedImage(imax - imin, jmax - jmin, BufferedImage.TYPE_INT_ARGB);
+ Graphics2D g=(Graphics2D) outputBuffer.getGraphics();
+
+ // Pas de transformation
+ if (_prj.getOrthoParameters().getScalingImgPoints().length == 0) {
+ g.translate(-imin, inputBuffer.getHeight()-jmin);
+ g.scale(1, -1);
+ g.drawImage(inputBuffer, 0, 0, null);
+ }
+
+ // Translation / rotation
+ else {
+ GrPoint p1final = new GrPoint(params.getScalingRealPoints()[0].x_ / params.getResolution(), params.getScalingRealPoints()[0].y_ / params.getResolution(), 0);
+
+ // Calcul de l'angle de rotation depuis les points saisis.
+ GrVecteur v1=new GrVecteur(params.getScalingImgPoints()[1].x_-params.getScalingImgPoints()[0].x_, params.getScalingImgPoints()[1].y_-params.getScalingImgPoints()[0].y_, 0);
+ GrVecteur v2=new GrVecteur(params.getScalingRealPoints()[1].x_-params.getScalingRealPoints()[0].x_, params.getScalingRealPoints()[1].y_-params.getScalingRealPoints()[0].y_, 0);
+ double rotation=v1.getAngleXY(v2);
+
+ // Le premier point saisi dans le repere apr\xE8s rotation
+ GrMorphisme toRotation=GrMorphisme.rotationZ(rotation);
+ GrPoint p1rotation = params.getScalingImgPoints()[0].applique(toRotation);
+
+ // La transformation de l'espace de depart vers l'espace final (le 2ieme point n'est pas forcement la ou c'\xE9tait demand\xE9).
+ GrMorphisme toFinal = GrMorphisme.rotationZ(rotation).composition(GrMorphisme.translation(p1final.x_-p1rotation.x_-imin, p1final.y_-p1rotation.y_-jmin, 0));
+ AffineTransform transf = toFinal.creeAffineTransorm2D();
+
+ g.transform(transf);
+ // Retournement de l'image (car espace Graphics2D avec (0,0) en haut \xE0 gauche de l'image)
+ g.translate(0, inputBuffer.getHeight());
+ g.scale(1, -1);
+ g.drawImage(inputBuffer, 0, 0, null);
+ }
+
+ new PivPGMWriter().write(new File(prjImgOut, "image" + PivUtils.formatOn4Chars(i + 1) + "_transf.pgm"), outputBuffer);
+ }
+
+ if (_task!=null && _task.isStopRequested()) {
+ _ana.addError(PivResource.getS("Transformation interrompue"));
+ return false;
+ }
+ }
+ catch (IOException ex) {
+ _ana.addError(ex.getMessage());
+ return false;
+ }
+ prog=((i+1)*90)/maxIter;
+ if (_task!=null)
+ _task.setProgression(prog);
+
+ }
+ FuLog.trace(PivResource.getS("Transformation des images ok."));
+ }
+
+ // On signale au projet que les images transform\xE9es ont chang\xE9.
+ finally {
+
+ _prj.setTransfImagesChanged(_task);
+ if (_task!=null)
+ _task.setProgression(100);
+ }
+
+ return true;
+ }
+
+ /**
* Lance le calcul des coefficients d'orthorectification.
* @param _ana L'analyse pour la tache ex\xE9cut\xE9e.
* @param _prj Le projet.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-04-26 08:33:07
|
Revision: 9548
http://sourceforge.net/p/fudaa/svn/9548
Author: bmarchan
Date: 2017-04-26 08:33:05 +0000 (Wed, 26 Apr 2017)
Log Message:
-----------
- Unite precisee pour les coordonnees reelles
- Palettes redimentionnables
Modified Paths:
--------------
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/PivChangeCoordinatesSystemAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.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/layer/PivOrthoPointsModel.java
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 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -82,8 +82,8 @@
}
};
- /** L'attribut utilis\xE9 pour la saisie de Z r\xE9el. */
- public static final GISAttributeDouble ATT_IND_ZR=new GISAttributeDouble(PivResource.getS("Z r\xE9el"),true) {
+ /** L'attribut utilis\xE9 pour la saisie de Z r\xE9el. L'unit\xE9 devrait \xEAtre dans CommonUnit, mais l'affichage ne se fait pas quand c'est le cas. */
+ public static final GISAttributeDouble ATT_IND_ZR=new GISAttributeDouble(PivResource.getS("Z r\xE9el")+" (m)",true) {
@Override
public String getID() {
return "ATT_REAL_Z";
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -18,6 +18,8 @@
super(PivResource.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
setDefaultToolTip(PivResource.getS("Transformations du rep\xE8re initial vers le rep\xE8re de calcul"));
impl_=_impl;
+
+ setPaletteResizable(true);
}
@Override
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -152,6 +152,8 @@
pnCalques_=_pn;
controller_=new EditionController();
setCalqueInteraction(_pn.getEditionLayer());
+
+ setPaletteResizable(true);
setEnabled(false);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -59,6 +59,7 @@
// };
setCalqueInteraction(_pn.getEditionLayer());
+ setPaletteResizable(true);
}
/**
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 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -188,6 +188,7 @@
propListener_=new EditionLayerPropertyListener();
setCalqueInteraction(_pn.getEditionLayer());
+ setPaletteResizable(true);
setEnabled(false);
}
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 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -197,6 +197,7 @@
propListener_=new EditionLayerPropertyListener();
setCalqueInteraction(_pn.getEditionLayer());
+ setPaletteResizable(true);
setEnabled(false);
}
@@ -306,7 +307,7 @@
pnParams.replaceAddButton(btValider);
pnParams.setCoordinateDefinitions(pnCalques_.getCoordinateDefinitions());
pnParams.targetChanged(cqOrthoPoints_);
- pnParams.setPreferredSize(new Dimension(300,300));
+ pnParams.setPreferredSize(new Dimension(360,300));
palette_.setEditorPanel(pnParams.getComponent());
cqEdition_.setFeatures(pnParams.getAttributeContainer());
}
@@ -330,6 +331,7 @@
final Container c = SwingUtilities.getAncestorOfClass(JInternalFrame.class, pnCalques_);
if (c instanceof JInternalFrame)
((JInternalFrame) c).addInternalFrameListener(new Piv2dFrameListener());
+
}
return palette_.getComponent();
}
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 2017-04-25 16:31:24 UTC (rev 9547)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2017-04-26 08:33:05 UTC (rev 9548)
@@ -26,8 +26,8 @@
* @version $Id$
*/
public class PivOrthoPointsModel extends ZModelePointEditable implements PivEditableModel {
- /** L'attribut utilis\xE9 pour la saisie de X r\xE9el. */
- public static final GISAttributeDouble ATT_IND_XR=new GISAttributeDouble(PivResource.getS("X r\xE9el"),true) {
+ /** L'attribut utilis\xE9 pour la saisie de X r\xE9el. L'unit\xE9 devrait \xEAtre dans CommonUnit, mais l'affichage ne se fait pas quand c'est le cas. */
+ public static final GISAttributeDouble ATT_IND_XR=new GISAttributeDouble(PivResource.getS("X r\xE9el")+" (m)",true) {
@Override
public String getID() {
@@ -34,8 +34,8 @@
return "ATT_REAL_X";
}
};
- /** L'attribut utilis\xE9 pour la saisie de Y r\xE9el. */
- public static final GISAttributeDouble ATT_IND_YR=new GISAttributeDouble(PivResource.getS("Y r\xE9el"),true) {
+ /** L'attribut utilis\xE9 pour la saisie de Y r\xE9el. L'unit\xE9 devrait \xEAtre dans CommonUnit, mais l'affichage ne se fait pas quand c'est le cas. */
+ public static final GISAttributeDouble ATT_IND_YR=new GISAttributeDouble(PivResource.getS("Y r\xE9el")+" (m)",true) {
@Override
public String getID() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-05-04 14:27:48
|
Revision: 9550
http://sourceforge.net/p/fudaa/svn/9550
Author: bmarchan
Date: 2017-05-04 14:27:45 +0000 (Thu, 04 May 2017)
Log Message:
-----------
Distinction vitesses transect calculees/interpolees
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/PivShow3DTransectPanel.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/PivFlowResultsModel.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
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsLayer.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 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -49,6 +49,7 @@
import org.fudaa.fudaa.piv.action.PivRealViewAction;
import org.fudaa.fudaa.piv.action.PivTransectParamAction;
import org.fudaa.fudaa.piv.layer.PivControlPointsModel;
+import org.fudaa.fudaa.piv.layer.PivFlowResultsLayer;
import org.fudaa.fudaa.piv.layer.PivFlowResultsModel;
import org.fudaa.fudaa.piv.layer.PivImageRasterLayer;
import org.fudaa.fudaa.piv.layer.PivOrthoPointsModel;
@@ -111,7 +112,7 @@
/** L'affichage des vitesses filtr\xE9es instantan\xE9es */
PivVelResultsLayer cqInstantVelFltResults_;
/** L'affichage des r\xE9sultats de d\xE9bit */
- ZCalqueFleche cqFlowResults;
+ PivFlowResultsLayer cqFlowResults;
/** L'affichage des r\xE9sultats instantan\xE9s filtr\xE9s */
PivResultsLayer cqInstantFltIso_;
/** L'affichage des r\xE9sultats instantan\xE9s */
@@ -290,18 +291,13 @@
cqInstantVelFltResults_.setVisible(false);
// Layer des d\xE9bits.
- cqFlowResults = new ZCalqueFleche() {
- @Override
- protected String getFlecheUnit() {
- return "m/s";
- }
- };
+ cqFlowResults = new PivFlowResultsLayer();
cqFlowResults.setTitle(PivResource.getS("Vit. moy. prof."));
cqFlowResults.setLongTitle(PivResource.getS("Vitesses moyenn\xE9es sur la profondeur"));
cqFlowResults.setTitleModifiable(true);
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.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 2, Color.ORANGE));
// Layer des transect
cqTransect_= new PivTransectLayer();
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 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -28,8 +28,6 @@
public class PivShow3DTransectPanel extends CtuluDialogPanel {
PivImplementation impl_;
EG3dGraph pnGraph_;
- private EG3dDefaultDataRenderer transRenderer_;
- private EG3dDefaultDataRenderer disRenderer_;
/** Le morphisme pour passer des donn\xE9es data vers le repere courant */
GrMorphisme toReal_;
@@ -149,31 +147,31 @@
double vy;
double lgFleche;
- switch (_idx%5) {
+ switch (_idx % 5) {
// Point d'origine
case 0:
default:
- return (float)res_.getY(_idx/5);
+ return (float) res_.getY(_idx / 5);
// Point extremit\xE9
case 1:
case 3:
- return (float)(res_.getY(_idx/5)+res_.getValue(_idx/5,ResultType.VY)*ratio_);
- // Point extremite 1 fleche
- case 2:
- vx=res_.getValue(_idx/5,ResultType.VX)*ratio_;
- vy=res_.getValue(_idx/5,ResultType.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_.getValue(_idx/5,ResultType.VX)*ratio_;
- vy=res_.getValue(_idx/5,ResultType.VY)*ratio_;
- lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
- angVit=Math.atan2(vy, vx);
- angFleche=angVit-5./6.*Math.PI;
- return (float)(lgFleche*Math.sin(angFleche)+res_.getY(_idx/5)+vy);
+ return (float) (res_.getY(_idx / 5) + res_.getValue(_idx / 5, ResultType.VY) * ratio_);
+ // Point extremite 1 fleche
+ case 2:
+ vx=res_.getValue(_idx / 5, ResultType.VX) * ratio_;
+ vy=res_.getValue(_idx / 5, ResultType.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_.getValue(_idx / 5, ResultType.VX) * ratio_;
+ vy=res_.getValue(_idx / 5, ResultType.VY) * ratio_;
+ lgFleche=Math.sqrt(vx * vx + vy * vy) / 10.;
+ angVit=Math.atan2(vy, vx);
+ angFleche=angVit - 5. / 6. * Math.PI;
+ return (float) (lgFleche * Math.sin(angFleche) + res_.getY(_idx / 5) + vy);
}
}
@@ -181,8 +179,64 @@
public float getZ(int _idx) {
return (float)zniv_;
}
+
+ /**
+ * @return True, si le trac\xE9 entre le point pr\xE9c\xE9dent et celui ci correspondant \xE0 une vitesse extrapol\xE9e.
+ */
+ public boolean isExtrapolated(int _idx) {
+ // 1er point ligne horizontale
+ if (_idx<2) {
+ return false;
+ }
+ _idx-=2;
+
+ return res_.getValue(_idx/5, ResultType.COMPUTE_MODE)!=0;
+ }
}
+ class DischargeRenderer extends EG3dDefaultDataRenderer {
+ DischargeModel mdl_;
+
+ public DischargeRenderer(DischargeModel _mdl) {
+ mdl_=_mdl;
+
+ setLineColor(0, Color.ORANGE.darker());
+ setLineThickness(0, 1.f);
+ }
+
+ @Override
+ public int getLineStyle(int _idx) {
+ if (_idx==0)
+ return TraceLigne.POINTILLE;
+ if (_idx==1)
+ return TraceLigne.INVISIBLE;
+
+ if ((_idx-2)%5==4)
+ return TraceLigne.INVISIBLE;
+ else
+ return lm.getTypeTrait();
+ }
+
+ /* (non-Javadoc)
+ * @see org.fudaa.ebli.graphe3D.renderer.EG3dDefaultDataRenderer#getLineColor(int)
+ */
+ @Override
+ public Color getLineColor(int _idx) {
+ if (mdl_.isExtrapolated(_idx))
+ return new Color(200,120,0);
+ else
+ return Color.ORANGE;
+ }
+ }
+
+ class TransectRenderer extends EG3dDefaultDataRenderer {
+ public TransectRenderer() {
+
+ setLineColor(0, Color.BLUE);
+ setLineThickness(0, 1.f);
+ }
+ }
+
/**
* Constructeur.
*/
@@ -194,28 +248,6 @@
private void customize() {
setLayout(new BorderLayout());
- transRenderer_=new EG3dDefaultDataRenderer();
- transRenderer_.setLineColor(0, Color.ORANGE);
- transRenderer_.setLineThickness(0, 1.f);
-
- disRenderer_=new EG3dDefaultDataRenderer() {
- @Override
- public int getLineStyle(int _idx) {
- if (_idx==0)
- return TraceLigne.TIRETE;
- if (_idx==1)
- return TraceLigne.INVISIBLE;
-
- _idx-=2;
- if (_idx%5==4)
- return TraceLigne.INVISIBLE;
- else
- return lm.getTypeTrait();
- }
- };
- disRenderer_.setLineColor(0, Color.BLUE.darker());
- disRenderer_.setLineThickness(0, 1.f);
-
EG3dGraphPanel pn=new EG3dGraphPanel();
pn.setPreferredSize(new Dimension(700,500));
@@ -245,7 +277,7 @@
for (int i=0; i<_isels.length; i++) {
TransectModel mdl=new TransectModel(transects[_isels[i]].getStraight().applique(toReal_));
pnGraph_.addData(mdl);
- pnGraph_.setDataRenderer(i, transRenderer_);
+ pnGraph_.setDataRenderer(i, new TransectRenderer());
}
PivFlowResults[] res=impl_.getCurrentProject().getFlowResults();
@@ -258,7 +290,7 @@
DischargeModel mdl=new DischargeModel(pl,ptZ.z_,resAdapter);
pnGraph_.addData(mdl);
- pnGraph_.setDataRenderer(i+_isels.length, disRenderer_);
+ pnGraph_.setDataRenderer(i+_isels.length, new DischargeRenderer(mdl));
}
}
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 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -62,6 +62,7 @@
TDoubleArrayList ly=new TDoubleArrayList();
TDoubleArrayList lvx=new TDoubleArrayList();
TDoubleArrayList lvy=new TDoubleArrayList();
+ TDoubleArrayList lmode=new TDoubleArrayList();
if (super.in_ == null) {
analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
@@ -98,8 +99,6 @@
while (true) {
in_.readFields();
- // Pour l'instant, pas de r\xE9cup\xE9ration des vitesses extrapol\xE9es.
- if (in_.doubleField(8) == 0) {
// X
lx.add(in_.doubleField(2));
// Y
@@ -108,7 +107,8 @@
lvx.add(in_.doubleField(5));
// VY
lvy.add(in_.doubleField(6));
- }
+ // Extrapolation
+ lmode.add(in_.doubleField(8));
lu+=84; // Si le formattage en fortran
@@ -124,6 +124,7 @@
res.setY(ly.toNativeArray());
res.setVx(lvx.toNativeArray());
res.setVy(lvy.toNativeArray());
+ res.setComputeMode(lmode.toNativeArray());
}
catch (final IOException e) {
analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber());
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsLayer.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsLayer.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -0,0 +1,106 @@
+package org.fudaa.fudaa.piv.layer;
+
+import java.awt.Color;
+
+import org.fudaa.ebli.calque.ZCalqueFleche;
+import org.fudaa.ebli.commun.EbliUIProperties;
+import org.fudaa.ebli.geometrie.GrSegment;
+import org.fudaa.ebli.palette.BPalettePlage;
+import org.fudaa.ebli.palette.BPlage;
+import org.fudaa.ebli.trace.TraceIconModel;
+import org.fudaa.ebli.trace.TraceLigne;
+import org.fudaa.ebli.trace.TraceLigneModel;
+import org.fudaa.fudaa.piv.PivResource;
+
+import com.memoire.fu.FuLog;
+
+/**
+ * Un modele pour le trac\xE9 des d\xE9bits sous forme de vecteurs vitesses.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivFlowResultsLayer extends ZCalqueFleche {
+
+ /**
+ * Construction du calque.
+ */
+ public PivFlowResultsLayer() {
+ super();
+
+ definePalette();
+ }
+
+ @Override
+ public void initFrom(final EbliUIProperties _p) {
+ if (_p != null) {
+ super.initFrom(_p);
+ }
+
+ if (paletteCouleur_ == null || paletteCouleur_.getNbPlages() != 2) {
+ definePalette();
+ }
+ }
+
+ /**
+ * Definition de la palette (utilis\xE9e pour les couleurs de trait et la l\xE9gende)
+ */
+ protected void definePalette() {
+ BPalettePlage pal=new BPalettePlage();
+ BPlage[] plages=new BPlage[2];
+ plages[0]=new BPlage();
+ plages[0].setMin(-0.5);
+ plages[0].setMax(0.5);
+ plages[0].setCouleur(Color.ORANGE);
+ plages[0].setLegende(PivResource.getS("Calcul\xE9es"));
+
+ plages[1]=new BPlage();
+ plages[1].setMin(0.5);
+ plages[1].setMax(1.5);
+ plages[1].setCouleur(new Color(200,120,0));
+ plages[1].setLegende(PivResource.getS("Interpol\xE9es"));
+ pal.setPlages(plages);
+ setPaletteCouleurPlages(pal);
+ }
+
+ @Override
+ public boolean isPaletteModifiable() {
+ return true;
+ }
+
+
+ /**
+ * On recupere la couleur des vecteurs suivant le mode de calcul du vecteur.
+ */
+ @Override
+ protected boolean updateTraceLigne(TraceLigneModel _ligne, TraceIconModel _icone, GrSegment _s, int _idx) {
+ Color color=getPaletteColorFor(modeleDonnees().getComputeMode(_idx));
+ if (color != null) {
+ _ligne.setCouleur(color);
+ _ligne.setTypeTrait(ligneModel_.getTypeTrait());
+ }
+ // Trait invisible
+ else {
+ _ligne.setCouleur(ligneModel_.getCouleur());
+ _ligne.setTypeTrait(TraceLigne.INVISIBLE);
+ }
+ return true;
+ }
+
+ @Override
+ public PivFlowResultsModel modeleDonnees() {
+ return (PivFlowResultsModel)modele_;
+ }
+
+ public void setModele(PivFlowResultsModel _s) {
+ if (_s==null || _s instanceof PivFlowResultsModel)
+ setFlecheModele(_s);
+ else {
+ FuLog.error(new Throwable("PivFlowResultsModel is expected"));
+ }
+ }
+
+ @Override
+ protected String getFlecheUnit() {
+ return "m/s";
+ }
+
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsLayer.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/layer/PivFlowResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -147,6 +147,10 @@
public double getZ2(int _i) {
return 0;
}
+
+ public double getComputeMode(int _i) {
+ return res_.getComputeMode(_i);
+ }
@Override
public BuTable createValuesTable(ZCalqueAffichageDonneesInterface _layer) {
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 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -29,6 +29,8 @@
protected double[] vx;
/** Les vitesses suivant Vy */
protected double[] vy;
+ /** Mode de calcul : Si 1, la vitesse est extrapol\xE9e. 0 : Calcul\xE9e */
+ protected double[] computeMode;
/**
* @return Le debit
@@ -156,6 +158,14 @@
public void setVy(double[] _vy) {
vy=_vy;
}
+
+ /**
+ * Definit le caract\xE8re extrapol\xE9 ou calcul\xE9 des vitesses.
+ * @param _computeMode Si 1 : Extrapol\xE9e, 0 : Calcul\xE9e.
+ */
+ public void setComputeMode(double[] _computeMode) {
+ computeMode = _computeMode;
+ }
@Override
public boolean hasResult(ResultType _tpRes) {
@@ -164,7 +174,7 @@
@Override
public ResultType[] getResults() {
- return new ResultType[]{ResultType.VX,ResultType.VY,ResultType.FULL_DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION, ResultType.MEASURED_DISCHARGE};
+ return new ResultType[]{ResultType.VX, ResultType.VY, ResultType.COMPUTE_MODE, ResultType.FULL_DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION, ResultType.MEASURED_DISCHARGE};
}
@Override
@@ -178,6 +188,8 @@
return getVx(_ind);
else if (ResultType.VY.equals(_tpRes))
return getVy(_ind);
+ else if (ResultType.COMPUTE_MODE.equals(_tpRes))
+ return computeMode[_ind];
else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
return discharge;
else if (ResultType.WETTED_AREA.equals(_tpRes))
@@ -198,6 +210,8 @@
return vy;
else if (ResultType.VY.equals(_tpRes))
return vy;
+ else if (ResultType.COMPUTE_MODE.equals(_tpRes))
+ return computeMode;
else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
return new double[]{discharge};
else if (ResultType.WETTED_AREA.equals(_tpRes))
@@ -224,6 +238,8 @@
vx[_ind] = _val;
else if (ResultType.VY.equals(_tpRes))
vy[_ind] = _val;
+ else if (ResultType.COMPUTE_MODE.equals(_tpRes))
+ computeMode[_ind] = _val;
else if (ResultType.FULL_DISCHARGE.equals(_tpRes))
discharge = _val;
else if (ResultType.WETTED_AREA.equals(_tpRes))
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -54,6 +54,14 @@
return -1;
}
+ public double getComputeMode(int _i) {
+ PivResultsI res=getRes(_i);
+ if (res!=null)
+ return res.getValue(_i-cpt_,ResultType.COMPUTE_MODE);
+
+ return -1;
+ }
+
/**
* @return Le nombre de points de v\xE9locit\xE9.
*/
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 2017-05-04 12:21:04 UTC (rev 9549)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 2017-05-04 14:27:45 UTC (rev 9550)
@@ -22,6 +22,8 @@
CORREL(true),
OMEGA(true),
DIVERG(true),
+ /** Mode de calcul des vitesses sur les transect : Extrapol\xE9e si valeur 1, calcul\xE9e si 0. */
+ COMPUTE_MODE(true),
/** D\xE9bit total */
FULL_DISCHARGE(false),
/** D\xE9bit mesur\xE9 */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-05-15 10:42:36
|
Revision: 9555
http://sourceforge.net/p/fudaa/svn/9555
Author: bmarchan
Date: 2017-05-15 10:42:34 +0000 (Mon, 15 May 2017)
Log Message:
-----------
Pas de valeur par defaut pour le niveau d'eau
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivOrthoParameters.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java 2017-05-15 09:32:49 UTC (rev 9554)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java 2017-05-15 10:42:34 UTC (rev 9555)
@@ -64,7 +64,7 @@
tfYmin.setText("" + _params.getYmin());
tfYmax.setText("" + _params.getYmax());
tfResolution.setText("" + _params.getResolution());
- tfNivEau.setText("" + _params.getWaterElevation());
+ tfNivEau.setText("" + (_params.getWaterElevation()==null ? "":_params.getWaterElevation()));
btPositionSaisie.setEnabled(false);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivOrthoParameters.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivOrthoParameters.java 2017-05-15 09:32:49 UTC (rev 9554)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivOrthoParameters.java 2017-05-15 10:42:34 UTC (rev 9555)
@@ -19,8 +19,8 @@
protected double ymax;
/** La resolution pour la transformation */
protected double resolution;
- /** Cote du plan d'eau */
- protected double waterElevation;
+ /** Cote du plan d'eau (est null au depart, indiquant qu'aucune valeur n'a \xE9t\xE9 donn\xE9e) */
+ protected Double waterElevation;
/** Mise a l'echelle : Les 2 points pour la transformation ([0] si aucune transformation de repere) */
protected GrPoint[] scalingImgPoints=new GrPoint[0];
/** Mise a l'echelle : Les 2 points pour la transformation ([0] si aucune transformation de repere) */
@@ -101,7 +101,7 @@
/**
* @return the waterElevation
*/
- public double getWaterElevation() {
+ public Double getWaterElevation() {
return waterElevation;
}
@@ -108,7 +108,7 @@
/**
* @param waterElevation the waterElevation to set
*/
- public void setWaterElevation(double waterElevation) {
+ public void setWaterElevation(Double waterElevation) {
this.waterElevation = waterElevation;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-05-22 10:52:23
|
Revision: 9612
http://sourceforge.net/p/fudaa/svn/9612
Author: bmarchan
Date: 2017-05-22 10:52:20 +0000 (Mon, 22 May 2017)
Log Message:
-----------
Definition de RG/RD sur transect + action inversion
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/PivRealView.java
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/layer/PivTransectLayer.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/PivTransect.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivInvertTransectAction.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-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -62,6 +62,7 @@
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.PivInvertTransectAction;
import org.fudaa.fudaa.piv.action.PivOrthoLaunchAction;
import org.fudaa.fudaa.piv.action.PivOrthoVerifyGRPAction;
import org.fudaa.fudaa.piv.action.PivSelectImagesAction;
@@ -749,6 +750,7 @@
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.add(get2dFrame().getVisuPanel().getRealView().getInvertTransectAction().buildMenuItem(EbliComponentFactory.INSTANCE),idx++);
mn.add(get2dFrame().getVisuPanel().getEditor().getActionDelete().buildMenuItem(EbliComponentFactory.INSTANCE),idx++);
mn.insertSeparator(idx++);
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 2017-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -28,7 +28,6 @@
import org.fudaa.ebli.animation.EbliAnimationAdapterInterface;
import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.BCalqueAffichage;
-import org.fudaa.ebli.calque.ZCalqueFleche;
import org.fudaa.ebli.calque.dessin.DeForme;
import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
import org.fudaa.ebli.calque.edition.ZCalquePointEditable;
@@ -45,6 +44,7 @@
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
import org.fudaa.fudaa.piv.action.PivCreateParticleLinesAction;
+import org.fudaa.fudaa.piv.action.PivInvertTransectAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
import org.fudaa.fudaa.piv.action.PivRealViewAction;
import org.fudaa.fudaa.piv.action.PivTransectParamAction;
@@ -82,6 +82,7 @@
private PivNewTransectAction actNewTransect_;
private PivTransectParamAction actParamsTransect_;
+ private PivInvertTransectAction actInvertTransect_;
private PivCreateParticleLinesAction actParticleLines_;
private EbliActionAbstract actRealView_;
private PivVisuPanel pnLayers_;
@@ -908,6 +909,18 @@
}
/**
+ * Retourne l'action pour l'inversion d'un transect.
+ * @return L'action.
+ */
+ public PivInvertTransectAction getInvertTransectAction() {
+ if (actInvertTransect_==null) {
+ actInvertTransect_=new PivInvertTransectAction((PivImplementation)pnLayers_.getCtuluUI());
+ pnLayers_.getScene().addSelectionListener(actInvertTransect_);
+ }
+ return actInvertTransect_;
+ }
+
+ /**
* Retourne l'action pour la saisie des parametres d'un transect.
* @return L'action.
*/
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivInvertTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivInvertTransectAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivInvertTransectAction.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -0,0 +1,63 @@
+/*
+ * @creation 14 nov. 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.ebli.calque.BCalque;
+import org.fudaa.ebli.calque.ZSelectionEvent;
+import org.fudaa.ebli.calque.ZSelectionListener;
+import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.metier.PivTransect;
+
+/**
+ * Action permettant le changement de sens des g\xE9om\xE9tries selectionn\xE9es.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivInvertTransectAction extends EbliActionSimple implements ZSelectionListener {
+ PivImplementation impl_;
+
+ public PivInvertTransectAction(PivImplementation _impl) {
+ super(PivResource.getS("Inverser des transects"), null, "INVERSER_TRANSECT");
+ impl_=_impl;
+ setEnabled(false);
+ }
+
+ public void actionPerformed(final ActionEvent _e) {
+ int[] selIds=impl_.get2dFrame().getVisuPanel().getScene().getLayerSelection().getSelectedIndex();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds) {
+ trans[id].invertGeometry();
+ }
+
+ // Pour forcer le rafraichissement d'\xE9cran
+ impl_.getCurrentProject().setTransects(trans);
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("S\xE9lectionner un ou plusieurs transects");
+ }
+
+ @Override
+ public void selectionChanged(ZSelectionEvent _evt) {
+ boolean b=false;
+ BCalque cq=impl_.get2dFrame().getVisuPanel().getCalqueActif();
+
+ if (cq==impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer() &&
+ ((ZCalqueLigneBriseeEditable)cq).getLayerSelection() !=null &&
+ !((ZCalqueLigneBriseeEditable)cq).getLayerSelection().isEmpty()) {
+ b=true;
+ }
+ super.setEnabled(b);
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivInvertTransectAction.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/action/PivTransectParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2017-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -45,12 +45,12 @@
PivTransectParamPanel pn=new PivTransectParamPanel(impl);
pn.setSelected(selIds);
- pn.afficheModale(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ pn.afficheModale(impl.getFrame(), PivResource.getS("Param\xE8tres du transect"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
}
@Override
public String getEnableCondition() {
- return PivResource.getS("S\xE9lectionner un transect");
+ return PivResource.getS("S\xE9lectionner un ou plusieurs transects");
}
@Override
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 2017-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -25,6 +25,7 @@
public PivTransectLayer() {
super(new PivTransectModel(),null);
+ setAttributForLabels(PivVisuPanel.ATT_LABEL);
}
/**
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 2017-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -37,7 +37,7 @@
/** Le projet. */
PivProject prj_;
/** Les attributs de la collection */
- private GISAttribute[] attrs_ = new GISAttribute[]{PivVisuPanel.ATT_IND_ZR, PivVisuPanel.ATT_INTER, PivVisuPanel.ATT_RAYON, PivVisuPanel.ATT_COEF_VIT};
+ private GISAttribute[] attrs_ = new GISAttribute[]{PivVisuPanel.ATT_IND_ZR, PivVisuPanel.ATT_INTER, PivVisuPanel.ATT_RAYON, PivVisuPanel.ATT_COEF_VIT, PivVisuPanel.ATT_LABEL};
/** Pour empecher les evenements cycliques */
protected boolean eventEnabled_=true;
@@ -77,6 +77,20 @@
else if (_attr==PivVisuPanel.ATT_COEF_VIT) {
return trans_.getParams().getSurfaceCoef();
}
+ else if (_attr==PivVisuPanel.ATT_LABEL) {
+ // Rive gauche
+ if (_idxVertex==0) {
+ return PivResource.getS("RG");
+ }
+ // Rive droite
+ else if (_idxVertex==getNbVertex()-1) {
+ return PivResource.getS("RD");
+ }
+ // Les autres points : Aucune visualisation
+ else {
+ return "";
+ }
+ }
return null;
}
@@ -94,6 +108,7 @@
else if (_attr==PivVisuPanel.ATT_COEF_VIT) {
trans_.getParams().setSurfaceCoef((Double)_val);
}
+ // Les labels ne sont pas modifi\xE9s.
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java 2017-05-22 10:50:47 UTC (rev 9611)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java 2017-05-22 10:52:20 UTC (rev 9612)
@@ -54,6 +54,13 @@
}
/**
+ * Inverse le transect.
+ */
+ public void invertGeometry() {
+ transect.inverse();
+ }
+
+ /**
* Recr\xE9e un transect depuis les r\xE9sultats calcul\xE9s et le transect d'origine. Lors du calcul,
* les points sont r\xE9align\xE9s. La bathy et le nombre de points n'est pas modifi\xE9e.
* @param _res Les r\xE9sultats.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-06-01 16:08:47
|
Revision: 9624
http://sourceforge.net/p/fudaa/svn/9624
Author: bmarchan
Date: 2017-06-01 16:08:44 +0000 (Thu, 01 Jun 2017)
Log Message:
-----------
Chgt des parametres par defaut pour les calques
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/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.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/PivTransectLayer.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 2017-06-01 15:50:25 UTC (rev 9623)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2017-06-01 16:08:44 UTC (rev 9624)
@@ -98,10 +98,12 @@
// Layer des ortho points
cqOrthoPoints_=new ZCalquePointEditable(null, null);
cqOrthoPoints_.setTitle(PivResource.getS("Points r\xE9f\xE9rence"));
- cqOrthoPoints_.setIconModel(0, new TraceIconModel(TraceIcon.PLUS_DOUBLE, 3, Color.RED));
+ cqOrthoPoints_.setIconModel(0, new TraceIconModel(TraceIcon.PLUS, 4, Color.RED));
cqOrthoPoints_.setName("cqOrthoPoints");
cqOrthoPoints_.setDestructible(false);
cqOrthoPoints_.setAttributForLabels(PivVisuPanel.ATT_LABEL);
+ // Legerement transparent.
+ cqOrthoPoints_.setLabelsBackgroundColor(new Color(255, 255, 255, 75));
cqOrthoPoints_.setEditor(pnLayers_.getEditor());
getOrthoGRPAction().setCalqueOrthoPoints(cqOrthoPoints_);
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 2017-06-01 15:50:25 UTC (rev 9623)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2017-06-01 16:08:44 UTC (rev 9624)
@@ -219,10 +219,12 @@
cqRealOrthoPoints_=new ZCalquePointEditable(null,null);
cqRealOrthoPoints_.setTitle(PivResource.getS("Points r\xE9f\xE9rence"));
cqRealOrthoPoints_.setLongTitle(PivResource.getS("Points r\xE9f\xE9rence"));
- cqRealOrthoPoints_.setIconModel(0, new TraceIconModel(TraceIcon.PLUS_DOUBLE, 3, Color.RED));
+ cqRealOrthoPoints_.setIconModel(0, new TraceIconModel(TraceIcon.PLUS, 4, Color.RED));
cqRealOrthoPoints_.setName("cqRealOrthoPoints");
cqRealOrthoPoints_.setDestructible(false);
cqRealOrthoPoints_.setAttributForLabels(PivVisuPanel.ATT_LABEL);
+ // Legerement transparent.
+ cqRealOrthoPoints_.setLabelsBackgroundColor(new Color(255, 255, 255, 75));
cqRealOrthoPoints_.setEditor(pnLayers_.getEditor());
// Layer des ortho points recalcul\xE9s (ajout\xE9 a la demande)
@@ -229,7 +231,7 @@
cqRealControlPoints_=new ZCalqueMultiPointEditable(null,null);
cqRealControlPoints_.setTitle(PivResource.getS("Points de contr\xF4le"));
cqRealControlPoints_.setLongTitle(PivResource.getS("Points de contr\xF4le"));
- cqRealControlPoints_.setIconModel(0, new TraceIconModel(TraceIcon.PLUS_DOUBLE, 3, Color.BLUE));
+ cqRealControlPoints_.setIconModel(0, new TraceIconModel(TraceIcon.CERCLE, 4, Color.BLUE));
cqRealControlPoints_.setName("cqRealControlPoints");
cqRealControlPoints_.setDestructible(false);
@@ -259,6 +261,9 @@
cqVelResults.setName("cqRealVel");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
cqVelResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.RED));
+ // On force la taille de vecteur \xE0 2.5 m/s
+ cqVelResults.getScaleData().setLegendFixRealNorm(2.5);
+ cqVelResults.getScaleData().setLegendUseFixRealNorm(true);
cqVelResults.setVisible(false);
cqVelResults.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
@@ -277,6 +282,9 @@
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
cqInstantVelResults_.setTitleModifiable(true);
+ // On force la taille de vecteur \xE0 2.5 m/s
+ cqInstantVelResults_.getScaleData().setLegendFixRealNorm(2.5);
+ cqInstantVelResults_.getScaleData().setLegendUseFixRealNorm(true);
cqInstantVelResults_.setVisible(false);
// Layer des vitesses instantan\xE9es filtr\xE9es.
@@ -289,6 +297,9 @@
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker()));
cqInstantVelFltResults_.setTitleModifiable(true);
+ // On force la taille de vecteur \xE0 2.5 m/s
+ cqInstantVelFltResults_.getScaleData().setLegendFixRealNorm(2.5);
+ cqInstantVelFltResults_.getScaleData().setLegendUseFixRealNorm(true);
cqInstantVelFltResults_.setVisible(false);
// Layer des d\xE9bits.
@@ -299,6 +310,9 @@
cqFlowResults.setName("cqRealFlow");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
cqFlowResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 2, Color.ORANGE));
+ // On force la taille de vecteur \xE0 2.5 m/s
+ cqFlowResults.getScaleData().setLegendFixRealNorm(2.5);
+ cqFlowResults.getScaleData().setLegendUseFixRealNorm(true);
// Layer des transect
cqTransect_= new PivTransectLayer();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2017-06-01 15:50:25 UTC (rev 9623)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2017-06-01 16:08:44 UTC (rev 9624)
@@ -126,6 +126,8 @@
cqCntGrille_.setName("cqCntGrille");
cqCntGrille_.setDestructible(false);
cqCntGrille_.setAttributForLabels(PivVisuPanel.ATT_LABEL);
+ // Legerement transparent.
+ cqCntGrille_.setLabelsBackgroundColor(new Color(255, 255, 255, 75));
cqCntGrille_.setEditor(pnLayers_.getEditor());
// Layer des points de grille
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 2017-06-01 15:50:25 UTC (rev 9623)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2017-06-01 16:08:44 UTC (rev 9624)
@@ -182,14 +182,22 @@
CtuluVariable var=mdl.getCurrentVar();
-
// on initialise le min/max;
_b.setToNill();
- for (int tidx = mdl.getNbTime() - 1; tidx >= 0; tidx--) {
- for (int i = mdl.getNbPoint() - 1; i >= 0; i--) {
- _b.expandTo(mdl.getData(var, tidx, i));
+
+ // Pour la correlation, on initialise entre 0 et 1.
+ if (var==ResultType.CORREL) {
+ _b.expandTo(0);
+ _b.expandTo(1);
+ }
+ else {
+ for (int tidx = mdl.getNbTime() - 1; tidx >= 0; tidx--) {
+ for (int i = mdl.getNbPoint() - 1; i >= 0; i--) {
+ _b.expandTo(mdl.getData(var, tidx, i));
+ }
}
}
+
return true;
}
@@ -205,9 +213,17 @@
// on initialise le min/max;
_b.setToNill();
- for (int i = mdl.getNbPoint() - 1; i >= 0; i--) {
- _b.expandTo(mdl.getData(var, mdl.getCurrentTimeIdx(), i));
+
+ if (var==ResultType.CORREL) {
+ _b.expandTo(0);
+ _b.expandTo(1);
}
+ else {
+ for (int i=mdl.getNbPoint() - 1; i >= 0; i--) {
+ _b.expandTo(mdl.getData(var, mdl.getCurrentTimeIdx(), i));
+ }
+ }
+
return true;
}
@@ -227,11 +243,17 @@
*/
private void initPalette() {
BPalettePlage palette=(BPalettePlage)getPaletteCouleur();
- if (palette==null) palette = (BPalettePlage)this.createPaletteCouleur();
+ if (palette==null) {
+ palette = (BPalettePlage)this.createPaletteCouleur();
+ palette.setReduit(true);
+ palette.initPlages(30, 0, 1);
+ }
+ else {
+ CtuluRange range=new CtuluRange();
+ this.getRange(range);
+ palette.initPlages(palette.getNbPlages(), range.min_, range.max_);
+ }
- CtuluRange range = new CtuluRange();
- this.getRange(range);
- palette.initPlages(10, range.min_, range.max_);
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/PivTransectLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java 2017-06-01 15:50:25 UTC (rev 9623)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectLayer.java 2017-06-01 16:08:44 UTC (rev 9624)
@@ -1,5 +1,6 @@
package org.fudaa.fudaa.piv.layer;
+import java.awt.Color;
import java.awt.Graphics2D;
import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable;
@@ -26,6 +27,8 @@
public PivTransectLayer() {
super(new PivTransectModel(),null);
setAttributForLabels(PivVisuPanel.ATT_LABEL);
+ // Legerement transparent.
+ setLabelsBackgroundColor(new Color(255, 255, 255, 75));
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-06-07 09:07:41
|
Revision: 9630
http://sourceforge.net/p/fudaa/svn/9630
Author: bmarchan
Date: 2017-06-07 09:07:38 +0000 (Wed, 07 Jun 2017)
Log Message:
-----------
Reorganisation de l'arbre des calques vue reelle
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/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivViewI.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.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 2017-06-07 09:00:49 UTC (rev 9629)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFille2d.java 2017-06-07 09:07:38 UTC (rev 9630)
@@ -12,6 +12,7 @@
import javax.swing.JComponent;
import org.fudaa.ctulu.CtuluLibImage;
+import org.fudaa.ebli.calque.BArbreCalque;
import org.fudaa.ebli.calque.ZEbliFilleCalques;
/**
@@ -62,6 +63,11 @@
return (PivVisuPanel)super.getVisuPanel();
}
+ public BArbreCalque getArbreCalque() {
+ createPanelComponent();
+ return arbre_;
+ }
+
/**
* Modifie le titre de la fenetre, en tenant compte de la vue courante.
* @param _view Le nom de la vue courante.
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 2017-06-07 09:00:49 UTC (rev 9629)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2017-06-07 09:07:38 UTC (rev 9630)
@@ -28,6 +28,7 @@
import org.fudaa.ebli.animation.EbliAnimationAdapterInterface;
import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.BCalqueAffichage;
+import org.fudaa.ebli.calque.BGroupeCalque;
import org.fudaa.ebli.calque.dessin.DeForme;
import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
import org.fudaa.ebli.calque.edition.ZCalquePointEditable;
@@ -94,7 +95,7 @@
private AbstractButton btAnim_;
private AbstractButton btStreamLines_;
private PivProject prj_;
- private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>();
+ private List<BCalque> layers_=new ArrayList<BCalque>();
private boolean enableEvents2_=true;
private boolean enableEvents_=true;
@@ -107,19 +108,19 @@
/** L'affichage d'un transect */
PivTransectLayer cqTransect_;
/** L'affichage des vitesses moyenn\xE9es */
- PivVelResultsLayer cqVelResults;
+ PivVelResultsLayer cqAveVelResults;
/** L'affichage des vitesses instantan\xE9es */
- PivVelResultsLayer cqInstantVelResults_;
+ PivVelResultsLayer cqRawVelResults_;
/** L'affichage des vitesses filtr\xE9es instantan\xE9es */
- PivVelResultsLayer cqInstantVelFltResults_;
+ PivVelResultsLayer cqFltVelResults_;
/** L'affichage des r\xE9sultats de d\xE9bit */
PivFlowResultsLayer cqFlowResults;
/** L'affichage des r\xE9sultats instantan\xE9s filtr\xE9s */
- PivResultsLayer cqInstantFltIso_;
+ PivResultsLayer cqFltIsoResults_;
/** L'affichage des r\xE9sultats instantan\xE9s */
- PivResultsLayer cqInstantIso_;
+ PivResultsLayer cqRawIsoResults_;
/** L'affichage des r\xE9sultats moyenn\xE9s */
- PivResultsLayer cqAverageIso_;
+ PivResultsLayer cqAveIsoResults_;
/** L'affichage des lignes de courant/trajectoires moyenn\xE9es */
PivParticlesLayer cqAveParticles_;
/** L'affichage des lignes de courant/trajectoires brutes */
@@ -170,7 +171,7 @@
@Override
public String getTitle() {
- return cqInstantVelResults_.getTitle();
+ return cqRawVelResults_.getTitle();
}
}
@@ -253,19 +254,19 @@
cqRealImg_.setName("cqRealImg");
// 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);
- cqVelResults.setName("cqRealVel");
+ cqAveVelResults = new PivVelResultsLayer();
+ cqAveVelResults.setEditable(false);
+ cqAveVelResults.setTitle(PivResource.getS("Vecteurs"));
+ cqAveVelResults.setLongTitle(PivResource.getS("Vitesses de surface moyenn\xE9es"));
+ cqAveVelResults.setTitleModifiable(true);
+ cqAveVelResults.setName("cqRealVel");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
- cqVelResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.RED));
+ cqAveVelResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.RED));
// On force la taille de vecteur \xE0 2.5 m/s
- cqVelResults.getScaleData().setLegendFixRealNorm(2.5);
- cqVelResults.getScaleData().setLegendUseFixRealNorm(true);
- cqVelResults.setVisible(false);
- cqVelResults.addPropertyChangeListener(new PropertyChangeListener() {
+ cqAveVelResults.getScaleData().setLegendFixRealNorm(2.5);
+ cqAveVelResults.getScaleData().setLegendUseFixRealNorm(true);
+ cqAveVelResults.setVisible(false);
+ cqAveVelResults.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if ("visible".equals(evt.getPropertyName())) {
pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue());
@@ -274,37 +275,37 @@
});
// 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");
+ cqRawVelResults_ = new PivVelResultsLayer();
+ cqRawVelResults_.setEditable(false);
+ cqRawVelResults_.setTitle(PivResource.getS("Vecteurs"));
+ cqRawVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es brutes"));
+ cqRawVelResults_.setName("cqInstantVel");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
- cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
- cqInstantVelResults_.setTitleModifiable(true);
+ cqRawVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
+ cqRawVelResults_.setTitleModifiable(true);
// On force la taille de vecteur \xE0 2.5 m/s
- cqInstantVelResults_.getScaleData().setLegendFixRealNorm(2.5);
- cqInstantVelResults_.getScaleData().setLegendUseFixRealNorm(true);
- cqInstantVelResults_.setVisible(false);
+ cqRawVelResults_.getScaleData().setLegendFixRealNorm(2.5);
+ cqRawVelResults_.getScaleData().setLegendUseFixRealNorm(true);
+ cqRawVelResults_.setVisible(false);
// Layer des vitesses instantan\xE9es filtr\xE9es.
- cqInstantVelFltResults_ = new PivVelResultsLayer();
+ cqFltVelResults_ = 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");
+ cqFltVelResults_.setEditable(true);
+ cqFltVelResults_.setTitle(PivResource.getS("Vecteurs"));
+ cqFltVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es filtr\xE9es"));
+ cqFltVelResults_.setName("cqInstantVelFlt");
// Donne la couleur des fl\xE8ches si pas de palette de couleurs.
- cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker()));
- cqInstantVelFltResults_.setTitleModifiable(true);
+ cqFltVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker()));
+ cqFltVelResults_.setTitleModifiable(true);
// On force la taille de vecteur \xE0 2.5 m/s
- cqInstantVelFltResults_.getScaleData().setLegendFixRealNorm(2.5);
- cqInstantVelFltResults_.getScaleData().setLegendUseFixRealNorm(true);
- cqInstantVelFltResults_.setVisible(false);
+ cqFltVelResults_.getScaleData().setLegendFixRealNorm(2.5);
+ cqFltVelResults_.getScaleData().setLegendUseFixRealNorm(true);
+ cqFltVelResults_.setVisible(false);
// Layer des d\xE9bits.
cqFlowResults = new PivFlowResultsLayer();
- cqFlowResults.setTitle(PivResource.getS("Vit. moy. prof."));
+ cqFlowResults.setTitle(PivResource.getS("Vit. moyenn\xE9es"));
cqFlowResults.setLongTitle(PivResource.getS("Vitesses moyenn\xE9es sur la profondeur"));
cqFlowResults.setTitleModifiable(true);
cqFlowResults.setName("cqRealFlow");
@@ -329,39 +330,39 @@
getNewTransectAction().setTransectLayer(cqTransect_);
// Layer des iso couleurs instantan\xE9es filtr\xE9es
- cqInstantFltIso_ = new PivResultsLayer();
- cqInstantFltIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqInstantFltIso_.setTitle(PivResource.getS("R\xE9sultats inst. filtr\xE9s"));
- cqInstantFltIso_.setLongTitle(PivResource.getS("R\xE9sultats instantan\xE9s filtr\xE9s"));
- cqInstantFltIso_.setName("cqInstantFltResults");
- cqInstantFltIso_.setTitleModifiable(true);
- cqInstantFltIso_.setDestructible(false);
- cqInstantFltIso_.setVisible(false);
+ cqFltIsoResults_ = new PivResultsLayer();
+ cqFltIsoResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
+ cqFltIsoResults_.setTitle(PivResource.getS("Contours"));
+ cqFltIsoResults_.setLongTitle(PivResource.getS("Contours r\xE9sultats instantan\xE9s filtr\xE9s"));
+ cqFltIsoResults_.setName("cqInstantFltResults");
+ cqFltIsoResults_.setTitleModifiable(true);
+ cqFltIsoResults_.setDestructible(false);
+ cqFltIsoResults_.setVisible(false);
// Layer des iso couleurs instantan\xE9es
- cqInstantIso_ = new PivResultsLayer();
- cqInstantIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqInstantIso_.setTitle(PivResource.getS("R\xE9sultats inst. bruts"));
- cqInstantIso_.setLongTitle(PivResource.getS("R\xE9sultats instantan\xE9s bruts"));
- cqInstantIso_.setName("cqInstantResults");
- cqInstantIso_.setTitleModifiable(true);
- cqInstantIso_.setDestructible(false);
- cqInstantIso_.setVisible(false);
+ cqRawIsoResults_ = new PivResultsLayer();
+ cqRawIsoResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
+ cqRawIsoResults_.setTitle(PivResource.getS("Contours"));
+ cqRawIsoResults_.setLongTitle(PivResource.getS("Contours r\xE9sultats instantan\xE9s bruts"));
+ cqRawIsoResults_.setName("cqInstantResults");
+ cqRawIsoResults_.setTitleModifiable(true);
+ cqRawIsoResults_.setDestructible(false);
+ cqRawIsoResults_.setVisible(false);
// Layer des iso couleurs instantan\xE9es
- cqAverageIso_ = new PivResultsLayer();
- cqAverageIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqAverageIso_.setTitle(PivResource.getS("R\xE9sultats moyenn\xE9s"));
- cqAverageIso_.setLongTitle(PivResource.getS("R\xE9sultats moyenn\xE9s"));
- cqAverageIso_.setName("cqAveResults");
- cqAverageIso_.setTitleModifiable(true);
- cqAverageIso_.setDestructible(false);
- cqAverageIso_.setVisible(false);
+ cqAveIsoResults_ = new PivResultsLayer();
+ cqAveIsoResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
+ cqAveIsoResults_.setTitle(PivResource.getS("Contours"));
+ cqAveIsoResults_.setLongTitle(PivResource.getS("Contours r\xE9sultats moyenn\xE9s"));
+ cqAveIsoResults_.setName("cqAveResults");
+ cqAveIsoResults_.setTitleModifiable(true);
+ cqAveIsoResults_.setDestructible(false);
+ cqAveIsoResults_.setVisible(false);
// Trac\xE9 de particules (moyenn\xE9s)
cqAveParticles_ = new PivParticlesLayer(pnLayers_, new PivResultSource(null, PivResource.getS("R\xE9sultats moyenn\xE9s")), null);
cqAveParticles_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqAveParticles_.setTitle(PivResource.getS("Particules (res. moy.)"));
+ cqAveParticles_.setTitle(PivResource.getS("Particules"));
cqAveParticles_.setLongTitle(PivResource.getS("Trac\xE9s de particules sur r\xE9sultats moyenn\xE9s"));
cqAveParticles_.setName("cqAveParticles");
cqAveParticles_.setTitleModifiable(true);
@@ -371,7 +372,7 @@
// Trac\xE9 de particules (filtr\xE9es)
cqFltParticles_ = new PivParticlesLayer(pnLayers_, new PivResultSource(null, PivResource.getS("R\xE9sultats filtr\xE9s")), null);
cqFltParticles_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqFltParticles_.setTitle(PivResource.getS("Particules (res. filtr\xE9s)"));
+ cqFltParticles_.setTitle(PivResource.getS("Particules"));
cqFltParticles_.setLongTitle(PivResource.getS("Trac\xE9s de particules sur r\xE9sultats filtr\xE9s"));
cqFltParticles_.setName("cqFltParticles");
cqFltParticles_.setTitleModifiable(true);
@@ -381,7 +382,7 @@
// Trac\xE9 de particules (brutes)
cqRawParticles_ = new PivParticlesLayer(pnLayers_, new PivResultSource(null, PivResource.getS("R\xE9sultats bruts")), null);
cqRawParticles_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY));
- cqRawParticles_.setTitle(PivResource.getS("Particules (res. bruts)"));
+ cqRawParticles_.setTitle(PivResource.getS("Particules"));
cqRawParticles_.setLongTitle(PivResource.getS("Trac\xE9s de particules sur r\xE9sultats bruts"));
cqRawParticles_.setName("cqRawParticles");
cqRawParticles_.setTitleModifiable(true);
@@ -388,18 +389,27 @@
cqRawParticles_.setDestructible(false);
cqRawParticles_.setVisible(false);
- layers_.add(cqTransect_);
+ BGroupeCalque gc;
layers_.add(cqRealOrthoPoints_);
- layers_.add(cqAveParticles_);
- layers_.add(cqFltParticles_);
- layers_.add(cqRawParticles_);
- layers_.add(cqVelResults);
- layers_.add(cqInstantVelFltResults_);
- layers_.add(cqInstantVelResults_);
- layers_.add(cqFlowResults);
- layers_.add(cqAverageIso_);
- layers_.add(cqInstantFltIso_);
- layers_.add(cqInstantIso_);
+ gc = new BGroupeCalque("gcDischarge", PivResource.getS("D\xE9bit"));
+ gc.add(cqTransect_);
+ gc.add(cqFlowResults);
+ layers_.add(gc);
+ gc = new BGroupeCalque("gcAveResults", PivResource.getS("Vit. surf. moyenn\xE9es"));
+ gc.add(cqAveVelResults);
+ gc.add(cqAveParticles_);
+ gc.add(cqAveIsoResults_);
+ layers_.add(gc);
+ gc = new BGroupeCalque("gcFltResults", PivResource.getS("Vit. surf. inst. filtr\xE9es"));
+ gc.add(cqFltVelResults_);
+ gc.add(cqFltParticles_);
+ gc.add(cqFltIsoResults_);
+ layers_.add(gc);
+ gc = new BGroupeCalque("gcRawResults", PivResource.getS("Vit. surf. inst. brutes"));
+ gc.add(cqRawVelResults_);
+ gc.add(cqRawParticles_);
+ gc.add(cqRawIsoResults_);
+ layers_.add(gc);
layers_.add(cqRealImg_);
}
@@ -424,10 +434,10 @@
aveResultats=new PivResultsI[]{prj_.getAverageResults()};
// if (prj_.getAverageResults()!=null) {
mdlVelResults=new PivVelResultsModel(prj_,aveResultats);
- cqVelResults.setModele(mdlVelResults);
+ cqAveVelResults.setModele(mdlVelResults);
mdlAverageResults=new PivResultsModel(prj_, null, aveResultats);
- cqAverageIso_.setModele(mdlAverageResults);
+ cqAveIsoResults_.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,aveResultats);
@@ -437,10 +447,10 @@
// if (prj_.getInstantRawResults()!=null) {
mdlInstantVelResults=new PivVelResultsModel(prj_, prj_.getInstantRawResults());
- cqInstantVelResults_.setModele(mdlInstantVelResults);
+ cqRawVelResults_.setModele(mdlInstantVelResults);
mdlInstantResults=new PivResultsModel(prj_, null, prj_.getInstantRawResults());
- cqInstantIso_.setModele(mdlInstantResults);
+ cqRawIsoResults_.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());
@@ -450,10 +460,10 @@
// if (prj_.getInstantFilteredResults()!=null) {
mdlInstantVelFltResults=new PivVelResultsModel(prj_, prj_.getInstantFilteredResults());
- cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
+ cqFltVelResults_.setModele(mdlInstantVelFltResults);
mdlInstantFltResults=new PivResultsModel(prj_,null, prj_.getInstantFilteredResults());
- cqInstantFltIso_.setModele(mdlInstantFltResults);
+ cqFltIsoResults_.setModele(mdlInstantFltResults);
mdlParticleFilteredResults_=new PivResultsModel(prj_,null,prj_.getInstantFilteredResults());
cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
@@ -469,8 +479,8 @@
}
@Override
- public BCalqueAffichage[] getLayers() {
- return layers_.toArray(new BCalqueAffichage[0]);
+ public BCalque[] getLayers() {
+ return layers_.toArray(new BCalque[0]);
}
/**
@@ -562,23 +572,23 @@
}
private void setSelectedResult(int _ind) {
- if (cqInstantVelResults_!=null && cqInstantVelResults_.modeleDonnees()!=null) {
- cqInstantVelResults_.modeleDonnees().setSelectedResult(_ind);
+ if (cqRawVelResults_!=null && cqRawVelResults_.modeleDonnees()!=null) {
+ cqRawVelResults_.modeleDonnees().setSelectedResult(_ind);
// Pour que le calque soit r\xE9affich\xE9.
- cqInstantVelResults_.repaint();
+ cqRawVelResults_.repaint();
}
- if (cqInstantVelFltResults_!=null && cqInstantVelFltResults_.modeleDonnees()!=null) {
- cqInstantVelFltResults_.modeleDonnees().setSelectedResult(_ind);
+ if (cqFltVelResults_!=null && cqFltVelResults_.modeleDonnees()!=null) {
+ cqFltVelResults_.modeleDonnees().setSelectedResult(_ind);
// Pour que le calque soit r\xE9affich\xE9.
- cqInstantVelFltResults_.repaint();
+ cqFltVelResults_.repaint();
}
- if (cqInstantIso_!=null && cqInstantIso_.modeleDonnees()!=null) {
- cqInstantIso_.modele().setCurrentTimeIdx(_ind);
- cqInstantIso_.repaint();
+ if (cqRawIsoResults_!=null && cqRawIsoResults_.modeleDonnees()!=null) {
+ cqRawIsoResults_.modele().setCurrentTimeIdx(_ind);
+ cqRawIsoResults_.repaint();
}
- if (cqInstantFltIso_!=null && cqInstantFltIso_.modeleDonnees()!=null) {
- cqInstantFltIso_.modele().setCurrentTimeIdx(_ind);
- cqInstantFltIso_.repaint();
+ if (cqFltIsoResults_!=null && cqFltIsoResults_.modeleDonnees()!=null) {
+ cqFltIsoResults_.modele().setCurrentTimeIdx(_ind);
+ cqFltIsoResults_.repaint();
}
}
@@ -599,22 +609,22 @@
BCalque cq=pnLayers_.getScene().getCalqueActif();
- if (cq==cqInstantIso_) {
- if (cqInstantIso_.modele()!=null) {
- cqInstantIso_.modele().setCurrentVar(_var);
- cqInstantIso_.repaint();
+ if (cq==cqRawIsoResults_) {
+ if (cqRawIsoResults_.modele()!=null) {
+ cqRawIsoResults_.modele().setCurrentVar(_var);
+ cqRawIsoResults_.repaint();
}
}
- else if (cq==cqInstantFltIso_) {
- if (cqInstantFltIso_.modele()!=null) {
- cqInstantFltIso_.modele().setCurrentVar(_var);
- cqInstantFltIso_.repaint();
+ else if (cq==cqFltIsoResults_) {
+ if (cqFltIsoResults_.modele()!=null) {
+ cqFltIsoResults_.modele().setCurrentVar(_var);
+ cqFltIsoResults_.repaint();
}
}
- else if (cq==cqAverageIso_) {
- if (cqAverageIso_.modele()!=null) {
- cqAverageIso_.modele().setCurrentVar(_var);
- cqAverageIso_.repaint();
+ else if (cq==cqAveIsoResults_) {
+ if (cqAveIsoResults_.modele()!=null) {
+ cqAveIsoResults_.modele().setCurrentVar(_var);
+ cqAveIsoResults_.repaint();
}
}
}
@@ -684,29 +694,29 @@
try {
enableEvents2_=false;
- if (cq==cqAverageIso_ && cqAverageIso_.modele()!=null && cqAverageIso_.modele().getVariables().length!=0) {
+ if (cq==cqAveIsoResults_ && cqAveIsoResults_.modele()!=null && cqAveIsoResults_.modele().getVariables().length!=0) {
cbVar_.setEnabled(true);
cbVar_.removeAllItems();
- for (CtuluVariable var : cqAverageIso_.modele().getVariables()) {
+ for (CtuluVariable var : cqAveIsoResults_.modele().getVariables()) {
cbVar_.addItem(var);
}
- cbVar_.setSelectedItem(cqAverageIso_.modele().getCurrentVar());
+ cbVar_.setSelectedItem(cqAveIsoResults_.modele().getCurrentVar());
}
- else if (cq==cqInstantIso_ && cqInstantIso_.modele()!=null && cqInstantIso_.modele().getVariables().length!=0) {
+ else if (cq==cqRawIsoResults_ && cqRawIsoResults_.modele()!=null && cqRawIsoResults_.modele().getVariables().length!=0) {
cbVar_.setEnabled(true);
cbVar_.removeAllItems();
- for (CtuluVariable var : cqInstantIso_.modele().getVariables()) {
+ for (CtuluVariable var : cqRawIsoResults_.modele().getVariables()) {
cbVar_.addItem(var);
}
- cbVar_.setSelectedItem(cqInstantIso_.modele().getCurrentVar());
+ cbVar_.setSelectedItem(cqRawIsoResults_.modele().getCurrentVar());
}
- else if (cq==cqInstantFltIso_ && cqInstantFltIso_.modele()!=null && cqInstantFltIso_.modele().getVariables().length!=0) {
+ else if (cq==cqFltIsoResults_ && cqFltIsoResults_.modele()!=null && cqFltIsoResults_.modele().getVariables().length!=0) {
cbVar_.setEnabled(true);
cbVar_.removeAllItems();
- for (CtuluVariable var : cqInstantFltIso_.modele().getVariables()) {
+ for (CtuluVariable var : cqFltIsoResults_.modele().getVariables()) {
cbVar_.addItem(var);
}
- cbVar_.setSelectedItem(cqInstantFltIso_.modele().getCurrentVar());
+ cbVar_.setSelectedItem(cqFltIsoResults_.modele().getCurrentVar());
}
else {
cbVar_.setEnabled(false);
@@ -761,8 +771,8 @@
// mdlAverageResults=null;
// mdlVelResults=null;
// }
- cqAverageIso_.setModele(mdlAverageResults);
- cqVelResults.setModele(mdlVelResults);
+ cqAveIsoResults_.setModele(mdlAverageResults);
+ cqAveVelResults.setModele(mdlVelResults);
cqAveParticles_.getSource().setResults(mdlParticleAverageResults_);
majTools();
@@ -776,8 +786,8 @@
// mdlInstantResults=null;
// mdlInstantVelResults=null;
// }
- cqInstantIso_.setModele(mdlInstantResults);
- cqInstantVelResults_.setModele(mdlInstantVelResults);
+ cqRawIsoResults_.setModele(mdlInstantResults);
+ cqRawVelResults_.setModele(mdlInstantVelResults);
cqRawParticles_.getSource().setResults(mdlParticleRawResults_);
majTools();
@@ -792,8 +802,8 @@
// mdlInstantFltResults=null;
// mdlInstantVelFltResults=null;
// }
- cqInstantFltIso_.setModele(mdlInstantFltResults);
- cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
+ cqFltIsoResults_.setModele(mdlInstantFltResults);
+ cqFltVelResults_.setModele(mdlInstantVelFltResults);
cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
majTools();
@@ -819,7 +829,7 @@
@Override
public void restoreLayerProperties(Map<String, EbliUIProperties> _props) {
- for (BCalqueAffichage cq : layers_) {
+ for (BCalque cq : layers_) {
cq.initFrom(_props.get(cq.getName()));
}
// Special : Ce calque n'est pas dans la liste des calques.
@@ -829,7 +839,7 @@
@Override
public Map<String, EbliUIProperties> saveLayerProperties() {
HashMap<String, EbliUIProperties> props=new HashMap<String, EbliUIProperties>();
- for (BCalqueAffichage cq : layers_) {
+ for (BCalque cq : layers_) {
props.put(cq.getName(),cq.saveUIProperties());
}
// Special : Ce calque n'est pas dans la liste des calques.
@@ -860,7 +870,7 @@
* @param _b True : Le calque est visible.
*/
public void setVelocitiesLayerVisible(boolean _b) {
- cqVelResults.setVisible(_b);
+ cqAveVelResults.setVisible(_b);
}
/**
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivViewI.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivViewI.java 2017-06-07 09:00:49 UTC (rev 9629)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivViewI.java 2017-06-07 09:07:38 UTC (rev 9630)
@@ -4,7 +4,7 @@
import javax.swing.JComponent;
-import org.fudaa.ebli.calque.BCalqueAffichage;
+import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.commun.EbliActionAbstract;
import org.fudaa.ebli.commun.EbliCoordinateDefinition;
import org.fudaa.ebli.commun.EbliUIProperties;
@@ -53,7 +53,7 @@
/**
* @return Les calques pour la vue.
*/
- public BCalqueAffichage[] getLayers();
+ public BCalque[] getLayers();
/**
* @return L'action permettant d'activer la vue.
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 2017-06-07 09:00:49 UTC (rev 9629)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2017-06-07 09:07:38 UTC (rev 9630)
@@ -24,7 +24,9 @@
import org.fudaa.ctulu.gis.GISAttributeDouble;
import org.fudaa.ctulu.gis.GISAttributeString;
import org.fudaa.ebli.animation.EbliAnimationSourceInterface;
+import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.BCalqueAffichage;
+import org.fudaa.ebli.calque.BGroupeCalque;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.action.SceneDeplacementAction;
import org.fudaa.ebli.calque.action.SceneRotationAction;
@@ -463,14 +465,24 @@
removeAllCalqueDonnees();
getCqLegend().enleveTousCalques();
- for (BCalqueAffichage cq : getCurrentView().getLayers()) {
+ for (BCalque cq : getCurrentView().getLayers()) {
addCalque(cq);
// Pas terrible, mais ca marche. Il serait mieux de pouvoir ajouter le
// calque au calque de l\xE9gende par getCqLegend().ajoute(calque);
- cq.setLegende(null);
- cq.setLegende(getCqLegend());
+ if (cq instanceof BGroupeCalque) {
+ BGroupeCalque gc = (BGroupeCalque)cq;
+ for (BCalque cqChild : gc.getCalques()) {
+ if (cqChild instanceof BCalqueAffichage) {
+ ((BCalqueAffichage) cqChild).setLegende(null);
+ ((BCalqueAffichage) cqChild).setLegende(getCqLegend());
+ }
+ }
+ }
}
+ // Ouvre l'arbre
+ ((PivImplementation)getCtuluUI()).get2dFrame().getArbreCalque().expandAllTree(true);
+
getCurrentView().getActivationAction().putValue(Action.SELECTED_KEY,true);
setCoordinateDefinitions(getCurrentView().getCoordinateDefinitions());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|