|
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 GrPoint(dataReplay.segment_.get(0).x,dataReplay.segment_.get(0).y,0);
+ ptFirst.autoApplique(prj_.getTransformationParameters().getToReal());
+ doubleEditor_.setValue(ptFirst.x_, x_);
+ doubleEditor_.setValue(ptFirst.y_, y_);
integerEditor_.setValue(dataReplay.nbPointsInitiaux_, nbPoints_);
// -- dernier point --//
- doubleEditor_.setValue(dataReplay.segment_.get(dataReplay.segment_.size() - 1).x, x2_);
- doubleEditor_.setValue(dataReplay.segment_.get(dataReplay.segment_.size() - 1).y, y2_);
+ GrPoint ptLast=new GrPoint(dataReplay.segment_.get(dataReplay.segment_.size() - 1).x,dataReplay.segment_.get(dataReplay.segment_.size() - 1).y,0);
+ ptLast.autoApplique(prj_.getTransformationParameters().getToReal());
+ doubleEditor_.setValue(ptLast.x_, x2_);
+ doubleEditor_.setValue(ptLast.y_, y2_);
// -- marqueurs --//
if (dataReplay.marqueur_ != null) {
@@ -291,12 +298,20 @@
return res;
}
+ /**
+ * @return Le dernier point, dans l'espace r\xE9el de calcul.
+ */
private Coordinate getEndCoordinate() {
- return new Coordinate(getDoubleValue(x2_), getDoubleValue(y2_));
+ GrPoint pt=new GrPoint(getDoubleValue(x2_), getDoubleValue(y2_),0).applique(prj_.getTransformationParameters().getToData());
+ return new Coordinate(pt.x_, pt.y_);
}
+ /**
+ * @return Le premier point, dans l'espace r\xE9el de calcul.
+ */
private Coordinate getFirstCoordinate() {
- return new Coordinate(getDoubleValue(x_), getDoubleValue(y_));
+ GrPoint pt=new GrPoint(getDoubleValue(x_), getDoubleValue(y_),0).applique(prj_.getTransformationParameters().getToData());
+ return new Coordinate(pt.x_, pt.y_);
}
@Override
@@ -707,13 +722,4 @@
lineChooser_.close();
}
-
-public ZEbliCalquesPanel getCalque_() {
- return pnCalques_;
}
-
-public void setCalque_(ZEbliCalquesPanel calque_) {
- this.pnCalques_ = calque_;
-}
-
-}
Modified: 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/PivParticlesGISDataModel.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesGISDataModel.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -23,6 +23,8 @@
import org.fudaa.ctulu.gis.GISPolyligne;
import org.fudaa.dodico.ef.operation.EfTrajectoireParameters;
import org.fudaa.dodico.ef.operation.EfTrajectoireResultBuilder;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.fudaa.piv.PivResource;
import com.memoire.fu.FuLog;
@@ -49,7 +51,7 @@
Map<GISAttributeInterface, List> values_;
@SuppressWarnings("unchecked")
- protected static PivParticlesGISDataModel build(List<EfTrajectoireResultBuilder> _res/*, EfTrajectoireParameters _params, List<GISAttributeInterface> _att, Map<GISAttributeInterface, CtuluVariable> _corresp*/, CtuluAnalyze _analyse) {
+ protected static PivParticlesGISDataModel build(List<EfTrajectoireResultBuilder> _res, GrMorphisme _toReal, CtuluAnalyze _analyse) {
List<GISPolyligne> poly=new ArrayList<GISPolyligne>(_res.size());
EfTrajectoireParameters params=null;
List<GISAttributeInterface> attrs=null;
@@ -69,6 +71,11 @@
nbRemove++;
}
else {
+ // Changement de coordonn\xE9es pour la visualisation (comme pour les autres calques). Ces coordonn\xE9es ne sont pas sauvegard\xE9es.
+ for (int i=0; i<coords.size(); i++) {
+ GrPoint pt=new GrPoint(coords.get(i)).applique(_toReal);
+ coords.set(i, new Coordinate(pt.x_, pt.y_, pt.z_));
+ }
poly.add((GISPolyligne) GISGeometryFactory.INSTANCE.createLineString((Coordinate[]) coords.toArray(new Coordinate[coords.size()])));
for (GISAttributeInterface att : attrs) {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java 2015-07-02 09:30:11 UTC (rev 9138)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java 2015-07-03 07:05:05 UTC (rev 9139)
@@ -17,12 +17,16 @@
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibArray;
import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.CtuluRange;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISAttributeModel;
import org.fudaa.ctulu.gis.GISAttributeModelBooleanInterface;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
+import org.fudaa.ctulu.gis.GISGeometryFactory;
+import org.fudaa.ctulu.gis.GISPolyligne;
import org.fudaa.ctulu.gis.GISZoneCollection;
+import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gui.CtuluAnalyzeGUI;
import org.fudaa.dodico.ef.operation.EfTrajectoireActivity;
import org.fudaa.dodico.ef.operation.EfTrajectoireParameters;
@@ -42,9 +46,11 @@
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.sig.layer.FSigLayerLine;
import com.memoire.fu.FuLog;
+import com.vividsolutions.jts.geom.CoordinateSequence;
/**
* Le layer charge d'afficher les donn\xE9es d'une trajectoire
@@ -68,7 +74,7 @@
Map<String, BPalettePlage> namePalette_;
- ZEbliCalquesPanel vue2d_;
+ PivVisuPanel vue2d_;
PivParticlesSourceI src_;
/**
@@ -77,7 +83,7 @@
*/
EfTrajectoireParameters dataMemory_;
- public PivParticlesLayer(final ZEbliCalquesPanel vue2d, final PivParticlesSourceI _src, final ZModeleLigneBrisee _modele) {
+ public PivParticlesLayer(final PivVisuPanel vue2d, final PivParticlesSourceI _src, final ZModeleLigneBrisee _modele) {
super(_modele==null ? new ZModeleLigneBriseeDefault():_modele);
// if (_modele==null) {
@@ -347,6 +353,16 @@
return _prop;
}
+ /**
+ * Appel\xE9 quand le repere a chang\xE9. On reconstruit les lignes suivant la transformation.
+ */
+ public void changeRepere() {
+ if (dataMemory_!=null) {
+ CtuluAnalyze log=new CtuluAnalyze();
+ restoreData(log, dataMemory_);
+ }
+ }
+
private void restoreData(final CtuluAnalyze log, final EfTrajectoireParameters restore) {
log.clear();
final EfTrajectoireActivity ac = new EfTrajectoireActivity(src_.getInterpolator(), null, src_.getTimes());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|