You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
| 2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
| 2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
| 2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
| 2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
| 2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
| 2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
| 2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
| 2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <bma...@us...> - 2015-08-31 14:55:12
|
Revision: 9156
http://sourceforge.net/p/fudaa/svn/9156
Author: bmarchan
Date: 2015-08-31 14:55:09 +0000 (Mon, 31 Aug 2015)
Log Message:
-----------
Chgt version => 1.4.4
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.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 2015-08-31 14:54:52 UTC (rev 9155)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-08-31 14:55:09 UTC (rev 9156)
@@ -87,8 +87,8 @@
protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware();
static {
isPIV_.name = "LSPIV";
- isPIV_.version = "1.4.3";
- isPIV_.date = "2015-04-23";
+ isPIV_.version = "1.4.4";
+ isPIV_.date = "2015-08-31";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2015";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-31 14:54:55
|
Revision: 9155
http://sourceforge.net/p/fudaa/svn/9155
Author: bmarchan
Date: 2015-08-31 14:54:52 +0000 (Mon, 31 Aug 2015)
Log Message:
-----------
Traduction
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/PivVisuPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java
trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
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-08-24 21:40:25 UTC (rev 9154)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2015-08-31 14:54:52 UTC (rev 9155)
@@ -120,7 +120,7 @@
setLayout(new BorderLayout(5, 5));
setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
- add(new JLabel("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
+ add(new JLabel(PivResource.getS("<html><p>Param\xE8tres de transformation<br>du rep\xE8re d'origine<br>vers le rep\xE8re de calcul</html>")), BorderLayout.NORTH);
add(pnMain, BorderLayout.CENTER);
add(pnButtons, BorderLayout.EAST);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-08-24 21:40:25 UTC (rev 9154)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-08-31 14:54:52 UTC (rev 9155)
@@ -301,9 +301,9 @@
protected void buildSpecificTools() {
// La liste des rep\xE8res
cbRep_=new JComboBox<>();
- cbRep_.setToolTipText("Changement de rep\xE8re");
- cbRep_.addItem("Rep\xE8re de calcul");
- cbRep_.addItem("Rep\xE8re d'origine");
+ cbRep_.setToolTipText(PivResource.getS("Changement de rep\xE8re"));
+ cbRep_.addItem(PivResource.getS("Rep\xE8re de calcul"));
+ cbRep_.addItem(PivResource.getS("Rep\xE8re d'origine"));
cbRep_.setPreferredSize(new Dimension(120, cbRep_.getPreferredSize().height));
cbRep_.setMaximumSize(cbRep_.getPreferredSize());
cbRep_.addItemListener(new ItemListener() {
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 2015-08-24 21:40:25 UTC (rev 9154)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java 2015-08-31 14:54:52 UTC (rev 9155)
@@ -5,18 +5,18 @@
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
import org.fudaa.ebli.commun.EbliFormatter;
-import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.fudaa.piv.PivCoordinatesSystemPanel;
import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivCoordinatesSystemPanel;
+import org.fudaa.fudaa.piv.PivResource;
public class PivChangeCoordinatesSystemAction extends EbliActionPaletteAbstract {
PivCoordinatesSystemPanel pn_;
PivImplementation impl_;
public PivChangeCoordinatesSystemAction(PivImplementation _impl) {
- super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
- setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
+ super(PivResource.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
+ setDefaultToolTip(PivResource.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
impl_=_impl;
}
Modified: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2015-08-24 21:40:25 UTC (rev 9154)
+++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2015-08-31 14:54:52 UTC (rev 9155)
@@ -1,4 +1,5 @@
1 point de d\xE9part a \xE9t\xE9 ignor\xE9 car il est en dehors du maillage=1 starting point was ignored because it is outside of the mesh
+<html><p>Param\xE8tres de transformation<br>du rep\xE8re d'origine<br>vers le rep\xE8re de calcul</html>=<html><p>Transformation parameters<br>from origin reference<br>to calculation reference</html>
<original>=<original>
A distance constante=At a constant distance
A pas de temps constant=At a constant time
@@ -33,6 +34,7 @@
Calcul du d\xE9bit=Calculation of the discharge
Calcul interrompu=Calculation interrupted
Calcul ok=Calculation ok
+Calcul termin\xE9 avec succ\xE8s=Calculation successfully completed
Calcul termin\xE9=Calculation is completed
Calcul=Calculation
Calculer des valeurs par d\xE9faut=Calculate default values
@@ -41,6 +43,7 @@
Calque {0} cr\xE9\xE9={0} layer created
Calque {0} mis \xE0 jour={0} layer updated
Cette cr\xE9ation sera r\xE9alis\xE9e apr\xE8s chaque op\xE9ration\n de s\xE9lection d'image ou transformation, et d\xE9s maintenant.\n\nSouhaitez vous continuer ?=This creation will be performed following each\nimage selection or transformation operations, and now.\n\nDo you want to continue ?
+Changement de rep\xE8re=Reference switch
Chargement du projet=Opening project
Choisir 2 points diff\xE9rents=Please choose 2 different points
Choix de la variable=Variable choice
@@ -71,6 +74,7 @@
D\xE9finir=Define
D\xE9finition des points de grille=Definition of grid points
D\xE9finition du nombre de points sur la grille=Definition of the number of points in the grid
+Ecart (%)=Gap (%)
Ecart=Gap
Editer la g\xE9om\xE9trie s\xE9lectionn\xE9e=Edit the selected geometry
Editer=Edit
@@ -174,6 +178,7 @@
Les param\xE8tres de calcul n'ont pas \xE9t\xE9 donn\xE9s=The calculation parameters were not specified
Les param\xE8tres doivent \xEAtre renseign\xE9s et les images transform\xE9es doivent exister=The parameters must be specified and the transformed images must exist
Les param\xE8tres et points de r\xE9f\xE9rence doivent \xEAtre renseign\xE9s=The parameters and the reference points must be specified
+Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul=Parameters can only be entered\nin the computation reference
Les points de grille n'ont pas \xE9t\xE9 d\xE9finis=The grid points were not specified
Les points de r\xE9f\xE9rence doivent avoir \xE9t\xE9 saisis=The reference points must be specified
Les points de r\xE9f\xE9rence {0} et {1} ont des coordonn\xE9es r\xE9elles confondues=The reference points {0} and {1} have the same real coordinates
@@ -185,6 +190,7 @@
Limites de la vitesse v transversale (m/s)=Transverse velocity magnitude thresholds (m/s)
Liste des images=Images list
Liste des r\xE9sultats instantan\xE9s=Instantaneous results list
+Liste des transects=Transects list
Marqueur=Mark
Marqueurs=Marks
Max corr\xE9lation=Max correlation
@@ -250,12 +256,15 @@
Reconditionnement de l'image {0} sur {1}=Repacking image {0} out of {1}
Reconditionnement du transect ok=Transect repack ok
Reconditionnement du transect {0} ok=Transect {0] repack ok
-Reconditionnement du transectTransect repack
+Reconditionnement du transect=Transect repack
Reconditionnement interrompu=Repack interrupted
Reconditionnement ok=Repack ok
Reconditionnement/calcul de d\xE9bit pour le transect {0}=Repack/calculation of discharge for the transect {0}
Rejouer les donn\xE9es=Replay data
Reprise=Resuming
+Rep\xE8re d'origine=Origin reference
+Rep\xE8re de calcul=Calculation reference
+Rep\xE8re=Reference
R\xE9pertoire contenant les executables=Directory containing the executable files
R\xE9pertoire destination=Destination directory
R\xE9solution (m/pix)=Resolution (m/pix)
@@ -310,6 +319,7 @@
Transformation des vitesses instantan\xE9es vers l'espace r\xE9el=Transformation of instantaneous velocities to real space
Transformation interrompue=Transformation interrupted
Transformation ok=Transformation ok
+Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul=Transformations from origin reference to calculation reference
Transformer les images=Transform the images
Triangulation=Meshing
Type=Type
@@ -321,6 +331,7 @@
Verification interrompue=Verification interrupted
Vit. instantan\xE9es=Instantaneous vel.
Vit. instantan\xE9es\: point n\xB0=Instantaneous vel.\: point #
+Vit. moy. (m/s)=Ave. vel. (m/s)
Vit. moy. prof=Depth-average vel
Vit. surf. inst. brutes=Raw inst. surf. vel.
Vit. surf. inst. filtr\xE9es=Filtered inst. surf. vel.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-08-24 21:40:27
|
Revision: 9154
http://sourceforge.net/p/fudaa/svn/9154
Author: deniger
Date: 2015-08-24 21:40:25 +0000 (Mon, 24 Aug 2015)
Log Message:
-----------
Maj version
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java 2015-08-24 21:19:43 UTC (rev 9153)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java 2015-08-24 21:40:25 UTC (rev 9154)
@@ -72,8 +72,8 @@
infoSoft = new BuInformationsSoftware();
infoSoft.name = "prepro";
- infoSoft.version = "1.3.0-RC8";
- infoSoft.date = "2014-10-09";
+ infoSoft.version = "1.3.0-RC9";
+ infoSoft.date = "2015-08-24";
infoSoft.rights = TrResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)2003-2009";
infoSoft.contact = "fre...@fu...";
infoSoft.license = "GPL2";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-08-24 21:19:45
|
Revision: 9153
http://sourceforge.net/p/fudaa/svn/9153
Author: deniger
Date: 2015-08-24 21:19:43 +0000 (Mon, 24 Aug 2015)
Log Message:
-----------
Message plus verbeux si ?\195?\169l?\195?\169ments mal orient?\195?\169s
Modified Paths:
--------------
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfLib.java
trunk/business/fudaa-ef/core/src/main/resources/org/fudaa/dodico/ef/resource/ef_en.fr_txt
Modified: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfLib.java
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfLib.java 2015-08-24 21:04:23 UTC (rev 9152)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfLib.java 2015-08-24 21:19:43 UTC (rev 9153)
@@ -11,6 +11,7 @@
import gnu.trove.TIntHashSet;
import com.vividsolutions.jts.geom.Coordinate;
+import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.*;
import org.fudaa.ctulu.gis.CtuluLibGeometrie;
@@ -19,10 +20,11 @@
import org.fudaa.ctulu.interpolation.InterpolationVectorContainer;
import org.fudaa.dodico.commun.DodicoLib;
+import org.fudaa.dodico.ef.resource.EfResource;
/**
* Contient des routines de bases sur les maillages.
- *
+ *
* @author deniger
* @version $Id: EfLib.java,v 1.29 2007-06-28 09:25:05 deniger Exp $
*/
@@ -37,7 +39,7 @@
}
public static EfDataElement getElementData(final CtuluVariable _var, final EfData _nodeData, final EfGridInterface _grid,
- InterpolationSupportValuesMultiI _datas, InterpolationVectorContainer _vects) {
+ InterpolationSupportValuesMultiI _datas, InterpolationVectorContainer _vects) {
if (_nodeData == null || _grid == null) {
return null;
}
@@ -134,8 +136,9 @@
int nb = elt.getPtNb();
for (int i = 0; i < nb; i++) {
int idxGlobal = elt.getPtIndex(i);
- if (prec.isSame(x, y, grid.getPtX(idxGlobal), grid.getPtY(idxGlobal)))
+ if (prec.isSame(x, y, grid.getPtX(idxGlobal), grid.getPtY(idxGlobal))) {
return idxGlobal;
+ }
}
return -1;
@@ -303,7 +306,7 @@
/**
* Oriente tous les elements du maillage dans le sens trigo ou horaire.
- *
+ *
* @param _grid le maillage a modifier
* @param _progress la barre de progression
* @param _trigo si true, orientation dans le sens trigo. Sens horaire sinon
@@ -317,14 +320,21 @@
prog.majProgessionStateOnly(DodicoLib.getS("Orientation des \xE9l\xE9ments"));
// le nombre d'\xE9l\xE9ments mal orient\xE9s
int nbEltToOriente = 0;
+ TIntArrayList list = new TIntArrayList();
for (int i = nbElt - 1; i >= 0; i--) {
if (_grid.getElement(i).orienteDansSensTrigo(_grid, _trigo)) {
nbEltToOriente++;
+ list.add(i + 1);
}
prog.majAvancement();
}
if ((_analyze != null) && (nbEltToOriente > 0) && nbEltToOriente != _grid.getEltNb()) {
+ list.sort();
_analyze.addWarn(DodicoLib.getS("Nombre d''\xE9l\xE9ments mal orient\xE9s: {0}", CtuluLibString.getString(nbEltToOriente)), 0);
+ int[] elts = list.toNativeArray();
+ String eltsAsString = CtuluLibString.arrayToString(elts, "; ");
+ eltsAsString = StringUtils.abbreviate(eltsAsString, 100);
+ _analyze.addWarn(EfResource.getS("Les \xE9l\xE9ments mal orient\xE9s: {0}", eltsAsString), 0);
}
}
@@ -383,4 +393,4 @@
return true;
}
-}
\ No newline at end of file
+}
Modified: trunk/business/fudaa-ef/core/src/main/resources/org/fudaa/dodico/ef/resource/ef_en.fr_txt
===================================================================
--- trunk/business/fudaa-ef/core/src/main/resources/org/fudaa/dodico/ef/resource/ef_en.fr_txt 2015-08-24 21:04:23 UTC (rev 9152)
+++ trunk/business/fudaa-ef/core/src/main/resources/org/fudaa/dodico/ef/resource/ef_en.fr_txt 2015-08-24 21:19:43 UTC (rev 9153)
@@ -51,4 +51,6 @@
Cr\xE9ation des \xE9l\xE9ments=Creating meshes
L'\xE9l\xE9ment {0} contient des indices de noeuds erron\xE9s=The mesh {0} contains bad nodes indexes
Le noeud {0} n'est pas utilis\xE9=The node {0} is not used
-Une seule enveloppe externe doit \xEAtre d\xE9finie=Only one convex hull must be defined
\ No newline at end of file
+Une seule enveloppe externe doit \xEAtre d\xE9finie=Only one convex hull must be defined
+Nombre d''\xE9l\xE9ments mal orient\xE9s\: {0}=Number of element oriented in wrong direction\: {0}
+Les \xE9l\xE9ments mal orient\xE9s\: {0}=Elements oriented in wrong direction are\: {0}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-08-24 21:04:25
|
Revision: 9152
http://sourceforge.net/p/fudaa/svn/9152
Author: deniger
Date: 2015-08-24 21:04:23 +0000 (Mon, 24 Aug 2015)
Log Message:
-----------
correction bugs lecture fichier d'apport pour Rubar
Modified Paths:
--------------
trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarTimeCondition.java
Modified: trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarTimeCondition.java
===================================================================
--- trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarTimeCondition.java 2015-08-18 22:52:10 UTC (rev 9151)
+++ trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarTimeCondition.java 2015-08-24 21:04:23 UTC (rev 9152)
@@ -51,7 +51,7 @@
VAR_FORMAT.put(H2dVariableTransType.CONCENTRATION, fmt);
VAR_FORMAT.put(H2dVariableTransType.DIAMETRE, fmt);
VAR_FORMAT.put(H2dVariableTransType.ETENDUE, fmt);
- fmt = FortranLib.getFormater(15, 4, true);
+ fmt = FortranLib.getFormater(15, 4, false);
VAR_FORMAT.put(H2dVariableTransType.APPORT_PLUIE, fmt);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-18 22:52:13
|
Revision: 9151
http://sourceforge.net/p/fudaa/svn/9151
Author: bmarchan
Date: 2015-08-18 22:52:10 +0000 (Tue, 18 Aug 2015)
Log Message:
-----------
Fix : Traceback si un caclul de particules a ?\195?\169t?\195?\169 r?\195?\169alis?\195?\169 avec des resultats qui n'existent plus.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java
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-08-18 22:51:02 UTC (rev 9150)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java 2015-08-18 22:52:10 UTC (rev 9151)
@@ -222,7 +222,7 @@
integerEditor_.setValue(dataReplay.finesse_, finesse_);
// -- pas de temps initial --//
- cbFirstTime_.setSelectedIndex(dataReplay.firstTimeStepIdx_);
+ cbFirstTime_.setSelectedIndex(Math.min(cbFirstTime_.getItemCount()-1,dataReplay.firstTimeStepIdx_));
// -- type traj ou ligne de courant --//
if (dataReplay.isLigneDeCourant)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-18 22:51:04
|
Revision: 9150
http://sourceforge.net/p/fudaa/svn/9150
Author: bmarchan
Date: 2015-08-18 22:51:02 +0000 (Tue, 18 Aug 2015)
Log Message:
-----------
Fix : % d'ecart de debit affich?\195?\169 en valeur absolue.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-08-17 21:22:01 UTC (rev 9149)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-08-18 22:51:02 UTC (rev 9150)
@@ -88,17 +88,17 @@
return rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
case 2:
val=rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
- return Math.abs(val-meanDisch_)/meanDisch_*100;
+ return Math.abs((val-meanDisch_)/meanDisch_*100);
case 3:
return rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
case 4:
val=rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
- return Math.abs(val-meanArea_)/meanArea_*100;
+ return Math.abs((val-meanArea_)/meanArea_*100);
case 5:
return rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
case 6:
val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
- return Math.abs(val-meanMeanV_)/meanMeanV_*100;
+ return Math.abs((val-meanMeanV_)/meanMeanV_*100);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-17 21:22:03
|
Revision: 9149
http://sourceforge.net/p/fudaa/svn/9149
Author: bmarchan
Date: 2015-08-17 21:22:01 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Fix : Lors d'un calcul, les r?\195?\169sultats ne sont pas affich?\195?\169s dans le rep?\195?\168re d'origine (si origine choisi)
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-08-17 18:34:38 UTC (rev 9148)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-08-17 21:22:01 UTC (rev 9149)
@@ -242,7 +242,7 @@
res.put(PivResultatsLayerConfigure.ISO_LINE_PAINTED, isTraceIsoLine());
res.put(PivResultatsLayerConfigure.ISO_SURFACE_PAINTED, isTraceIsoSurface());
- if (modele()!=null)
+ if (modele()!=null && modele().getCurrentVar()!=null)
res.put("iso.variable", modele().getCurrentVar().toString());
return res;
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-08-17 18:34:38 UTC (rev 9148)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-08-17 21:22:01 UTC (rev 9149)
@@ -94,12 +94,14 @@
else {
results=adaptResultsToReal(resData);
}
- EfGrid grid=null;
+ // Maillage vide pour eviter les traceback si aucun resultat n'existe.
+ EfGrid grid=new EfGrid(new EfNode[0],new EfElement[0]);
if (results!=null && results.length != 0) {
grid=buildFromResults(results[0], prog_);
}
setGrid(grid);
+ propDelegate.firePropertyChange("systemView", isSystemOriginal_, isSystemOriginal_=_b);
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-17 18:34:40
|
Revision: 9148
http://sourceforge.net/p/fudaa/svn/9148
Author: bmarchan
Date: 2015-08-17 18:34:38 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Passage au package fudaa-mesh 1.7-Snapshot
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/pom.xml
Modified: trunk/soft/fudaa-lspiv/pom.xml
===================================================================
--- trunk/soft/fudaa-lspiv/pom.xml 2015-08-17 18:33:23 UTC (rev 9147)
+++ trunk/soft/fudaa-lspiv/pom.xml 2015-08-17 18:34:38 UTC (rev 9148)
@@ -4,7 +4,7 @@
<properties>
<fudaa-framework.version>1.7-SNAPSHOT</fudaa-framework.version>
- <fudaa-mesh.version>1.5-SNAPSHOT</fudaa-mesh.version>
+ <fudaa-mesh.version>1.7-SNAPSHOT</fudaa-mesh.version>
<javaCompiler>1.7</javaCompiler>
<targetJdk>1.7</targetJdk>
</properties>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-17 18:33:26
|
Revision: 9147
http://sourceforge.net/p/fudaa/svn/9147
Author: bmarchan
Date: 2015-08-17 18:33:23 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Fix : getDomaine() return null sur layer maillage si le modele ne contient ni elements ni noeuds
Modified Paths:
--------------
trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/model/MvElementModelDefault.java
Modified: trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/model/MvElementModelDefault.java
===================================================================
--- trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/model/MvElementModelDefault.java 2015-08-14 20:43:18 UTC (rev 9146)
+++ trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/model/MvElementModelDefault.java 2015-08-17 18:33:23 UTC (rev 9147)
@@ -160,6 +160,9 @@
@Override
public GrBoite getDomaine() {
+ if (getNbPoint()==0 && getNbElt()==0)
+ return null;
+
final GrBoite b = new GrBoite();
b.o_ = new GrPoint(g_.getMinX(), g_.getMinY(), 0);
b.e_ = new GrPoint(g_.getMaxX(), g_.getMaxY(), 0);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-08-14 20:43:20
|
Revision: 9146
http://sourceforge.net/p/fudaa/svn/9146
Author: bmarchan
Date: 2015-08-14 20:43:18 +0000 (Fri, 14 Aug 2015)
Log Message:
-----------
Nettoyage sur layers resultats
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -61,7 +61,6 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivProjectStateListener;
import org.fudaa.fudaa.piv.metier.PivResultsI;
-import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.particles.PivParticlesLayer;
import org.fudaa.fudaa.piv.particles.PivResultSource;
@@ -74,7 +73,6 @@
public class PivRealView implements PivViewI, PivProjectStateListener {
/** Le nom de la vue en espace image r\xE9el */
public static final String TITLE=PivResource.getS("Espace r\xE9el");
-
/** La d\xE9finition de coordonn\xE9e pour X */
private static final EbliCoordinateDefinition DEF_COOR_X=new EbliCoordinateDefinition("X", new EbliFormatter(SI.METER));
/** La d\xE9finition de coordonn\xE9e pour Y */
@@ -82,7 +80,7 @@
private PivNewTransectAction actNewTransect_;
private PivTransectParamAction actParamsTransect_;
-
+ private PivCreateParticleLinesAction actParticleLines_;
private EbliActionAbstract actRealView_;
private PivVisuPanel pnLayers_;
private JComboBox<CtuluVariable> cbVar_;
@@ -91,15 +89,17 @@
private JComboBox<String> cbVel_;
private EbliAnimationAction actAnim_;
private AbstractButton btAnim_;
- private PivCreateParticleLinesAction actParticleLines_;
private AbstractButton btStreamLines_;
private PivProject prj_;
private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>();
private boolean enableEvents2_=true;
private boolean enableEvents_=true;
+ /** L'affichage des GRP */
ZCalquePointEditable cqRealOrthoPoints_;
+ /** L'affichage des GRP de controle */
ZCalqueMultiPointEditable cqRealControlPoints_;
+ /** L'affichage de l'image en coordon\xE9es r\xE9elles */
PivImageRasterLayer cqRealImg_;
/** L'affichage d'un transect */
PivTransectLayer cqTransect_;
@@ -135,13 +135,10 @@
PivResultsModel mdlInstantResults;
PivResultsModel mdlInstantFltResults;
PivResultsModel mdlAverageResults;
+ PivResultsModel mdlParticleAverageResults_;
+ PivResultsModel mdlParticleRawResults_;
+ PivResultsModel mdlParticleFilteredResults_;
- private PivResultsModel mdlParticleAverageResults_;
-
- private PivResultsModel mdlParticleRawResults_;
-
- private PivResultsModel mdlParticleFilteredResults_;
-
/**
* Une classe de d\xE9finition de la s\xE9quence d'animation.
* @author Bertrand Marchand (mar...@de...)
@@ -412,20 +409,6 @@
}
/**
- * @return Les resultats avec les coordonn\xE9es converties dans le repere courant.
- */
- public PivResultsI[] buildResultsToReal(PivResultsI... _res) {
- // Optimisation : On est dans le repere calcul, pas de transformation
- if (!prj_.getTransformationParameters().isCurrentSystemOriginal())
- return _res;
-
- PivResultsI[] ret=new PivResultsI[_res.length];
- for (int i=0; i<ret.length; i++)
- ret[i]=new PivResultsTransformationAdapter(_res[i], prj_.getTransformationParameters().getToReal());
- return ret;
- }
-
- /**
* Mise a jour des calques quand il y a chagement de projet.
*/
protected void majLayers() {
@@ -441,20 +424,23 @@
mdlRealImage.setProjet(prj_);
cqRealImg_.setModele(mdlRealImage);
- if (prj_.getAverageResults()!=null) {
- mdlVelResults=new PivVelResultsModel(prj_,prj_.getAverageResults());
+ PivResultsI[] aveResultats=null;
+ if (prj_.getAverageResults()!=null)
+ aveResultats=new PivResultsI[]{prj_.getAverageResults()};
+// if (prj_.getAverageResults()!=null) {
+ mdlVelResults=new PivVelResultsModel(prj_,aveResultats);
cqVelResults.setModele(mdlVelResults);
- mdlAverageResults=new PivResultsModel(prj_, null, prj_.getAverageResults());
+ mdlAverageResults=new PivResultsModel(prj_, null, aveResultats);
cqAverageIso_.setModele(mdlAverageResults);
// Les resultats restent dans le repere de calcul. Seules les lignes calcul\xE9es le sont dans le rep\xE8re courant.
- mdlParticleAverageResults_=new PivResultsModel(prj_,null,prj_.getAverageResults());
+ mdlParticleAverageResults_=new PivResultsModel(prj_,null,aveResultats);
cqAveParticles_.getSource().setResults(mdlParticleAverageResults_);
cqAveParticles_.changeRepere();
- }
+// }
- if (prj_.getInstantRawResults()!=null) {
+// if (prj_.getInstantRawResults()!=null) {
mdlInstantVelResults=new PivVelResultsModel(prj_, prj_.getInstantRawResults());
cqInstantVelResults_.setModele(mdlInstantVelResults);
@@ -465,9 +451,9 @@
mdlParticleRawResults_=new PivResultsModel(prj_, null, prj_.getInstantRawResults());
cqRawParticles_.getSource().setResults(mdlParticleRawResults_);
cqRawParticles_.changeRepere();
- }
+// }
- if (prj_.getInstantFilteredResults()!=null) {
+// if (prj_.getInstantFilteredResults()!=null) {
mdlInstantVelFltResults=new PivVelResultsModel(prj_, prj_.getInstantFilteredResults());
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
@@ -477,7 +463,7 @@
mdlParticleFilteredResults_=new PivResultsModel(prj_,null,prj_.getInstantFilteredResults());
cqFltParticles_.getSource().setResults(mdlParticleFilteredResults_);
cqFltParticles_.changeRepere();
- }
+// }
mdlFlowResults=new PivFlowResultsModel();
mdlFlowResults.setProjet(prj_);
@@ -637,13 +623,6 @@
}
}
}
-
- /**
- * Change le repere.
- */
- protected void changeViewSystemCoords() {
- majLayers();
- }
/**
* Mise a jour les outils.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -232,7 +232,7 @@
CtuluRange range = new CtuluRange();
this.getRange(range);
palette.initPlages(10, range.min_, range.max_);
- palette.setSousTitre(modele()==null ? null:modele().getCurrentVar().getName());
+ palette.setSousTitre((modele()==null || modele().getCurrentVar()==null) ? null:modele().getCurrentVar().getName());
this.setPaletteCouleurPlages(palette);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-07-07 15:05:56 UTC (rev 9145)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-08-14 20:43:18 UTC (rev 9146)
@@ -67,28 +67,20 @@
public PivResultsModel(PivProject _prj, ProgressionInterface _prog, PivResultsI... _res) {
super(null);
prj_=_prj;
- resData=_res;
prog_=_prog;
- setSystemViewOriginal(false);
-
- var=results[0].getResults()[0];
+ setResults(_res);
}
public void setResults(PivResultsI[] _res) {
-
+ PivResultsI[] oldRes=resData;
resData=_res;
- if (!isSystemOriginal_) {
- results=resData;
- }
- else {
- results=adaptResultsToReal(resData);
- }
- EfGrid grid=null;
- if (results!=null && results.length != 0) {
- grid=buildFromResults(results[0], prog_);
- }
- setGrid(grid);
+ setSystemViewOriginal(isSystemOriginal_);
+
+ if (results!=null && results.length !=0 && var==null)
+ var=results[0].getResults()[0];
+
+ propDelegate.firePropertyChange("results", oldRes, resData);
}
/**
@@ -108,7 +100,6 @@
}
setGrid(grid);
- propDelegate.firePropertyChange("system", isSystemOriginal_, isSystemOriginal_=_b);
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 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.
|
|
From: <bma...@us...> - 2015-07-02 09:30:13
|
Revision: 9138
http://sourceforge.net/p/fudaa/svn/9138
Author: bmarchan
Date: 2015-07-02 09:30:11 +0000 (Thu, 02 Jul 2015)
Log Message:
-----------
Refactoring
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java (from rev 9136, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivCoordinatesSystemPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -0,0 +1,129 @@
+/*
+ * @creation 5 avr. 2005
+ * @modification $Date: 2008-05-13 12:10:31 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.fudaa.ebli.commun.EbliFormatterInterface;
+import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationParameters;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuPanel;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuToolButton;
+
+/**
+ * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivCoordinatesSystemPanel extends JPanel {
+
+ protected JButton btApply_;
+ protected EbliFormatterInterface formatter_;
+ protected BuTextField tfTx_;
+ protected BuTextField tfTy_;
+ protected BuTextField tfTz_;
+ protected BuTextField tfRz_;
+ protected BuLabel lbRz_;
+ protected PivProject prj_;
+
+ /**
+ * @param _deplacement le calque de deplacement
+ * @param _formatter
+ */
+ public PivCoordinatesSystemPanel(EbliFormatterInterface _formatter) {
+ super();
+
+ formatter_ = _formatter;
+
+ tfTx_ = BuTextField.createDoubleField();
+ tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
+ tfTy_ = BuTextField.createDoubleField();
+ tfTz_ = BuTextField.createDoubleField();
+ tfRz_ = BuTextField.createDoubleField();
+ lbRz_ = new BuLabel("Rz:");
+
+ btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
+ btApply_.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
+ Double tx = (Double) tfTx_.getValue();
+ Double ty = (Double) tfTy_.getValue();
+ Double tz = (Double) tfTz_.getValue();
+ Double rz = (Double)tfRz_.getValue();
+
+ if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
+ PivTransformationParameters params=new PivTransformationParameters();
+ params.setTranslationX(tx);
+ params.setTranslationY(ty);
+ params.setTranslationZ(tz);
+ params.setRotationZ(rz);
+ prj_.setTransformationParameters(params);
+ }
+ }
+ }
+ });
+
+ buildComponent();
+ updateComponent();
+ }
+
+ public void setProject(PivProject _prj) {
+ prj_=_prj;
+ updateComponent();
+ }
+
+ public void updateComponent() {
+ if (prj_==null)
+ return;
+
+ tfTx_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationX()));
+ tfTy_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationY()));
+ tfTz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationZ()));
+ tfRz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getRotationZ()));
+ }
+
+ protected void buildComponent() {
+ BuPanel pnMain = new BuPanel();
+ pnMain.setLayout(new BuGridLayout(2, 2, 2));
+ pnMain.add(new BuLabel("Tx:"));
+ pnMain.add(tfTx_);
+ pnMain.add(new BuLabel("Ty:"));
+ pnMain.add(tfTy_);
+ pnMain.add(new BuLabel("Tz:"));
+ pnMain.add(tfTz_);
+ pnMain.add(lbRz_);
+ pnMain.add(tfRz_);
+
+ BuPanel pnButtons = new BuPanel();
+ pnButtons.setLayout(new BorderLayout(5, 5));
+ pnButtons.add(btApply_, BorderLayout.SOUTH);
+
+ setLayout(new BorderLayout(5, 5));
+ setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
+ add(new JLabel("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
+ add(pnMain, BorderLayout.CENTER);
+ add(pnButtons, BorderLayout.EAST);
+
+
+ }
+}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -1,129 +0,0 @@
-/*
- * @creation 5 avr. 2005
- * @modification $Date: 2008-05-13 12:10:31 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.fudaa.piv;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import org.fudaa.ebli.commun.EbliFormatterInterface;
-import org.fudaa.fudaa.piv.metier.PivProject;
-import org.fudaa.fudaa.piv.metier.PivTransformationParameters;
-
-import com.memoire.bu.BuGridLayout;
-import com.memoire.bu.BuLabel;
-import com.memoire.bu.BuPanel;
-import com.memoire.bu.BuResource;
-import com.memoire.bu.BuTextField;
-import com.memoire.bu.BuToolButton;
-
-/**
- * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
- *
- * @author Bertrand Marchand (mar...@de...)
- */
-public class PivTransformationPanel extends JPanel {
-
- protected JButton btApply_;
- protected EbliFormatterInterface formatter_;
- protected BuTextField tfTx_;
- protected BuTextField tfTy_;
- protected BuTextField tfTz_;
- protected BuTextField tfRz_;
- protected BuLabel lbRz_;
- protected PivProject prj_;
-
- /**
- * @param _deplacement le calque de deplacement
- * @param _formatter
- */
- public PivTransformationPanel(EbliFormatterInterface _formatter) {
- super();
-
- formatter_ = _formatter;
-
- tfTx_ = BuTextField.createDoubleField();
- tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
- tfTy_ = BuTextField.createDoubleField();
- tfTz_ = BuTextField.createDoubleField();
- tfRz_ = BuTextField.createDoubleField();
- lbRz_ = new BuLabel("Rz:");
-
- btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
- btApply_.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent _e) {
- if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
- Double tx = (Double) tfTx_.getValue();
- Double ty = (Double) tfTy_.getValue();
- Double tz = (Double) tfTz_.getValue();
- Double rz = (Double)tfRz_.getValue();
-
- if (tx != null && ty != null && tz != null && rz != null && prj_!=null) {
- PivTransformationParameters params=new PivTransformationParameters();
- params.setTranslationX(tx);
- params.setTranslationY(ty);
- params.setTranslationZ(tz);
- params.setRotationZ(rz);
- prj_.setTransformationParameters(params);
- }
- }
- }
- });
-
- buildComponent();
- updateComponent();
- }
-
- public void setProject(PivProject _prj) {
- prj_=_prj;
- updateComponent();
- }
-
- public void updateComponent() {
- if (prj_==null)
- return;
-
- tfTx_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationX()));
- tfTy_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationY()));
- tfTz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getTranslationZ()));
- tfRz_.setValue(formatter_.getXYFormatter().format(prj_.getTransformationParameters().getRotationZ()));
- }
-
- protected void buildComponent() {
- BuPanel pnMain = new BuPanel();
- pnMain.setLayout(new BuGridLayout(2, 2, 2));
- pnMain.add(new BuLabel("Tx:"));
- pnMain.add(tfTx_);
- pnMain.add(new BuLabel("Ty:"));
- pnMain.add(tfTy_);
- pnMain.add(new BuLabel("Tz:"));
- pnMain.add(tfTz_);
- pnMain.add(lbRz_);
- pnMain.add(tfRz_);
-
- BuPanel pnButtons = new BuPanel();
- pnButtons.setLayout(new BorderLayout(5, 5));
- pnButtons.add(btApply_, BorderLayout.SOUTH);
-
- setLayout(new BorderLayout(5, 5));
- setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
- add(new JLabel("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
- add(pnMain, BorderLayout.CENTER);
- add(pnButtons, BorderLayout.EAST);
-
-
- }
-}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -40,7 +40,7 @@
import org.fudaa.ebli.trace.TraceIconModel;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
-import org.fudaa.fudaa.piv.action.PivChangeTransformationAction;
+import org.fudaa.fudaa.piv.action.PivChangeCoordinatesSystemAction;
import org.fudaa.fudaa.piv.action.PivComputeGridDefinitionAction;
import org.fudaa.fudaa.piv.action.PivEditAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
@@ -132,7 +132,7 @@
private PivEditAction actEdit_;
private SceneRotationAction actRotation_;
private SceneDeplacementAction actDeplacement_;
- private PivChangeTransformationAction actTransfMatrix_;
+ private PivChangeCoordinatesSystemAction actTransfMatrix_;
private JComboBox<String> cbRep_;
AbstractButton btRotation_;
@@ -291,7 +291,7 @@
actShowVelocities_=new PivShowVelocityAction((PivImplementation)getCtuluUI());
actShowFlow_=new PivShowFlowAction((PivImplementation)getCtuluUI());
actEdit_=new PivEditAction(this);
- actTransfMatrix_=new PivChangeTransformationAction((PivImplementation)getCtuluUI());
+ actTransfMatrix_=new PivChangeCoordinatesSystemAction((PivImplementation)getCtuluUI());
getScene().addSelectionListener(actEdit_);
// Les actions affich\xE9es dans le menu contextuel.
getEditor().getSceneEditor().setActions(new EbliActionInterface[]{actEdit_});
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java (from rev 9136, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeCoordinatesSystemAction.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -0,0 +1,42 @@
+package org.fudaa.fudaa.piv.action;
+
+import javax.swing.JComponent;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.commun.EbliFormatter;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivCoordinatesSystemPanel;
+
+public class PivChangeCoordinatesSystemAction extends EbliActionPaletteAbstract {
+ PivCoordinatesSystemPanel pn_;
+ PivImplementation impl_;
+
+ public PivChangeCoordinatesSystemAction(PivImplementation _impl) {
+ super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
+ setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
+ impl_=_impl;
+ }
+
+ @Override
+ protected JComponent buildContentPane() {
+ return getPanel();
+ }
+
+ public PivCoordinatesSystemPanel getPanel() {
+ if (pn_==null) {
+ EbliFormatter fmt=new EbliFormatter();
+ fmt.setFmt(CtuluLib.getDecimalFormat(2));
+ pn_=new PivCoordinatesSystemPanel(fmt);
+ }
+ return pn_;
+ }
+
+ @Override
+ public void updateBeforeShow() {
+ super.updateBeforeShow();
+ pn_.setProject(impl_.getCurrentProject());
+ }
+}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-07-02 09:24:50 UTC (rev 9137)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-07-02 09:30:11 UTC (rev 9138)
@@ -1,42 +0,0 @@
-package org.fudaa.fudaa.piv.action;
-
-import javax.swing.JComponent;
-
-import org.fudaa.ctulu.CtuluLib;
-import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
-import org.fudaa.ebli.commun.EbliFormatter;
-import org.fudaa.ebli.commun.EbliLib;
-import org.fudaa.ebli.ressource.EbliResource;
-import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivTransformationPanel;
-
-public class PivChangeTransformationAction extends EbliActionPaletteAbstract {
- PivTransformationPanel pn_;
- PivImplementation impl_;
-
- public PivChangeTransformationAction(PivImplementation _impl) {
- super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
- setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
- impl_=_impl;
- }
-
- @Override
- protected JComponent buildContentPane() {
- return getPanel();
- }
-
- public PivTransformationPanel getPanel() {
- if (pn_==null) {
- EbliFormatter fmt=new EbliFormatter();
- fmt.setFmt(CtuluLib.getDecimalFormat(2));
- pn_=new PivTransformationPanel(fmt);
- }
- return pn_;
- }
-
- @Override
- public void updateBeforeShow() {
- super.updateBeforeShow();
- pn_.setProject(impl_.getCurrentProject());
- }
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-07-02 09:24:53
|
Revision: 9137
http://sourceforge.net/p/fudaa/svn/9137
Author: bmarchan
Date: 2015-07-02 09:24:50 +0000 (Thu, 02 Jul 2015)
Log Message:
-----------
Fix : Correctif pour le passage RO <-> RC
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -243,6 +243,13 @@
public ZCalquePointEditable getOrthoPointsLayer() {
return cqOrthoPoints_;
}
+
+ /**
+ * Change le repere.
+ */
+ public void changeViewSystemCoords() {
+ majLayers();
+ }
@Override
public EbliActionAbstract getActivationAction() {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -4,14 +4,17 @@
import java.awt.Component;
import java.awt.Dimension;
import java.text.NumberFormat;
+
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
+
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
/**
@@ -26,6 +29,7 @@
PivOrthoPoint[] pts_;
PivImplementation impl_;
boolean bImgVisible_;
+ private GrMorphisme toReal_;
/**
* Une classe pour le modele de la table affichant les valeurs r\xE9elles et
@@ -73,13 +77,13 @@
case 0:
return rowIndex+1;
case 1:
- return pts_[rowIndex].getRealPoint().x_;
+ return pts_[rowIndex].getRealPoint().applique(toReal_).x_;
case 2:
- return pts_[rowIndex].getRealPoint().y_;
+ return pts_[rowIndex].getRealPoint().applique(toReal_).y_;
case 3:
- return pts_[rowIndex].getComputeRealPoint().x_;
+ return pts_[rowIndex].getComputeRealPoint().applique(toReal_).x_;
case 4:
- return pts_[rowIndex].getComputeRealPoint().y_;
+ return pts_[rowIndex].getComputeRealPoint().applique(toReal_).y_;
case 5:
return pts_[rowIndex].getError();
}
@@ -119,6 +123,7 @@
public PivOrthoVerifyGRPPanel(PivImplementation _impl) {
impl_=_impl;
pts_=_impl.getCurrentProject().getOrthoPoints();
+ toReal_=_impl.getCurrentProject().getTransformationParameters().getToReal();
// On efface le calque image, l'image qu'elle contient n'est pas forcement pertinente.
bImgVisible_=impl_.get2dFrame().getVisuPanel().isImageLayerVisible();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -632,12 +632,10 @@
}
/**
- * Change la vue du rep\xE8re d'origine vers le rep\xE8re de calcul.
- * @param _b True : Vue dans le syst\xE8me d'origine. Sinon dans le syst\xE8me de calcul.
+ * Change le repere.
*/
public void changeViewSystemCoords() {
majLayers();
- pnLayers_.restaurer();
}
/**
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -5,6 +5,8 @@
import java.awt.Dimension;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolyligne;
import org.fudaa.ebli.graphe3D.EG3dGraph;
import org.fudaa.ebli.graphe3D.data.EG3dLineModelAbstract;
@@ -12,6 +14,9 @@
import org.fudaa.ebli.graphe3D.ui.panel.EG3dGraphPanel;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.metier.PivTransect;
/**
@@ -25,14 +30,14 @@
EG3dGraph pnGraph_;
private EG3dDefaultDataRenderer transRenderer_;
private EG3dDefaultDataRenderer disRenderer_;
+ /** Le morphisme pour passer des donn\xE9es data vers le repere courant */
+ GrMorphisme toReal_;
class TransectModel extends EG3dLineModelAbstract {
- PivTransect trans_;
GrPolyligne pl_;
- public TransectModel(PivTransect _trans) {
- trans_=_trans;
- pl_=trans_.getStraight();
+ public TransectModel(GrPolyligne _pl) {
+ pl_=_pl;
}
@Override
@@ -57,42 +62,42 @@
}
class DischargeModel extends EG3dLineModelAbstract {
- PivFlowResults res_;
- PivTransect trans_;
+ PivResultsI res_;
+ GrPolyligne pl_;
double zniv_;
double ratio_;
- public DischargeModel(PivTransect _trans, PivFlowResults _res) {
+ public DischargeModel(GrPolyligne _pl, double _zniv, PivResultsI _res) {
res_=_res;
- trans_=_trans;
- zniv_=_res.getWaterElevation();
+ pl_=_pl;
+ zniv_=_zniv;
double lgArrowMax=Double.NEGATIVE_INFINITY;
double vx;
double vy;
- for (int i=0; i<_res.getNombre(); i++) {
- vx=_res.getVx(i);
- vy=_res.getVy(i);
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ vx=_res.getValue(i,TYPE.VX);
+ vy=_res.getValue(i,TYPE.VY);
lgArrowMax=Math.max(lgArrowMax,Math.sqrt(vx*vx+vy*vy));
}
- ratio_=_trans.getStraight().longueurXY()/6./lgArrowMax;
+ ratio_=pl_.longueurXY()/6./lgArrowMax;
}
// Le nombre est modifi\xE9 pour afficher les fleches + une ligne horizontale
@Override
public int getNbPoints() {
- return res_.getNombre()*5+2;
+ return res_.getNbPoints()*5+2;
}
@Override
public float getX(int _idx) {
// 1er point ligne horizontale
if (_idx==0) {
- return (float)trans_.getStraight().sommet(0).x_;
+ return (float)pl_.sommet(0).x_;
}
// 2eme point ligne horizontale
if (_idx==1) {
- return (float)trans_.getStraight().sommet(trans_.getStraight().nombre()-1).x_;
+ return (float)pl_.sommet(pl_.nombre()-1).x_;
}
_idx-=2;
@@ -108,19 +113,19 @@
// Point extremit\xE9
case 1:
case 3:
- return (float)(res_.getX(_idx/5)+res_.getVx(_idx/5)*ratio_);
+ return (float)(res_.getX(_idx/5)+res_.getValue(_idx/5,TYPE.VX)*ratio_);
// Point extremite 1 fleche
case 2:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
double angVit=Math.atan2(vy, vx);
double angFleche=angVit+5./6.*Math.PI;
return (float)(lgFleche*Math.cos(angFleche)+res_.getX(_idx/5)+vx);
// Point extremite 2 fleche
case 4:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
angVit=Math.atan2(vy,vx);
angFleche=angVit-5./6.*Math.PI;
@@ -132,11 +137,11 @@
public float getY(int _idx) {
// 1er point ligne horizontale
if (_idx==0) {
- return (float)trans_.getStraight().sommet(0).y_;
+ return (float)pl_.sommet(0).y_;
}
// 2eme point ligne horizontale
else if (_idx==1) {
- return (float)trans_.getStraight().sommet(trans_.getStraight().nombre()-1).y_;
+ return (float)pl_.sommet(pl_.nombre()-1).y_;
}
_idx-=2;
@@ -152,19 +157,19 @@
// Point extremit\xE9
case 1:
case 3:
- return (float)(res_.getY(_idx/5)+res_.getVy(_idx/5)*ratio_);
+ return (float)(res_.getY(_idx/5)+res_.getValue(_idx/5,TYPE.VY)*ratio_);
// Point extremite 1 fleche
case 2:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
double angVit=Math.atan2(vy, vx);
double angFleche=angVit+5./6.*Math.PI;
return (float)(lgFleche*Math.sin(angFleche)+res_.getY(_idx/5)+vy);
// Point extremite 2 fleche
case 4:
- vx=res_.getVx(_idx/5)*ratio_;
- vy=res_.getVy(_idx/5)*ratio_;
+ vx=res_.getValue(_idx/5,TYPE.VX)*ratio_;
+ vy=res_.getValue(_idx/5,TYPE.VY)*ratio_;
lgFleche=Math.sqrt(vx*vx+vy*vy)/10.;
angVit=Math.atan2(vy, vx);
angFleche=angVit-5./6.*Math.PI;
@@ -229,10 +234,12 @@
public void setSelectedTransects(int... _isels) {
pnGraph_.removeAllDatas();
+ toReal_=impl_.getCurrentProject().getTransformationParameters().getToReal();
+
PivTransect[] transects=impl_.getCurrentProject().getTransects();
for (int i=0; i<_isels.length; i++) {
- TransectModel mdl=new TransectModel(transects[_isels[i]]);
+ TransectModel mdl=new TransectModel(transects[_isels[i]].getStraight().applique(toReal_));
pnGraph_.addData(mdl);
pnGraph_.setDataRenderer(i, transRenderer_);
}
@@ -240,7 +247,12 @@
PivFlowResults[] res=impl_.getCurrentProject().getFlowResults();
if (res!=null) {
for (int i=0; i<_isels.length; i++) {
- DischargeModel mdl=new DischargeModel(transects[_isels[i]],res[_isels[i]]);
+ PivResultsI resAdapter=new PivResultsTransformationAdapter(res[_isels[i]], toReal_);
+ GrPolyligne pl=transects[_isels[i]].getStraight().applique(toReal_);
+ GrPoint ptZ=new GrPoint(0,0,res[_isels[i]].getWaterElevation()).applique(toReal_);
+
+ DischargeModel mdl=new DischargeModel(pl,ptZ.z_,resAdapter);
+
pnGraph_.addData(mdl);
pnGraph_.setDataRenderer(i+_isels.length, disRenderer_);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -227,6 +227,8 @@
setViewMode(MODE_TRANSF_VIEW);
else
setViewMode(MODE_ORIGINAL_VIEW);
+
+ cbRep_.setSelectedIndex(projet.getTransformationParameters().isCurrentSystemOriginal()?1:0);
}
/**
@@ -311,6 +313,8 @@
projet.getTransformationParameters().setCurrentSystemOriginal(cbRep_.getSelectedIndex() != 0);
getRealView().changeViewSystemCoords();
+ getOriginalView().changeViewSystemCoords();
+ restaurer();
}
});
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -16,6 +16,7 @@
import org.fudaa.ctulu.CtuluIOResult;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.PivImplementation;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
@@ -80,7 +81,13 @@
return;
}
+ // Transformation des points reels vers data.
PivOrthoPoint[] pts=ret.getSource();
+ GrMorphisme toData=impl.getCurrentProject().getTransformationParameters().getToData();
+ for (PivOrthoPoint pt : pts) {
+ pt.getRealPoint().autoApplique(toData);
+ }
+
PivOrthoPoint[] newpts;
if (keepPreviousPts) {
PivOrthoPoint[] oldpts=impl.getCurrentProject().getOrthoPoints();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -6,11 +6,13 @@
import org.fudaa.ctulu.CtuluIOResult;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.fudaa.piv.PivImplementation;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.io.PivBathyReader;
+import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivTransect;
/**
@@ -62,7 +64,12 @@
impl.error(ret.getAnalyze().getResume());
return;
}
- impl.getCurrentProject().addTransect(ret.getSource());
+
+ GrMorphisme toData=impl.getCurrentProject().getTransformationParameters().getToData();
+ PivTransect trans=ret.getSource();
+ trans.getStraight().autoApplique(toData);
+
+ impl.getCurrentProject().addTransect(trans);
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -7,16 +7,11 @@
*/
package org.fudaa.fudaa.piv.action;
-import com.memoire.bu.BuButton;
-import com.memoire.bu.BuDesktop;
-import com.memoire.fu.FuLog;
-
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.Arrays;
import javax.swing.AbstractButton;
import javax.swing.JComponent;
@@ -35,14 +30,19 @@
import org.fudaa.ebli.calque.edition.ZEditionAttributesDataI;
import org.fudaa.ebli.calque.edition.ZEditorLigneBriseePanel;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
-import org.fudaa.fudaa.piv.metier.PivTransect;
+import com.memoire.bu.BuButton;
+import com.memoire.bu.BuDesktop;
+import com.memoire.fu.FuLog;
+
/**
* Une action pour cr\xE9er un transect. Cette action est
* utilis\xE9e comme controlleur \xE0 la palette et au calque d'\xE9dition d\xE9di\xE9.
@@ -122,6 +122,11 @@
_pl.sommet(i).z_=(Double) _data.getValue(PivVisuPanel.ATT_IND_ZR, i);
}
+ // Transformation vers repere courant.
+ GrMorphisme toData=pnCalques_.getProject().getTransformationParameters().getToData();
+ _pl.autoApplique(toData);
+
+
PivTransectParams params=new PivTransectParams();
params.setInterpolationStep((Double)_data.getValue(PivVisuPanel.ATT_INTER, 0));
params.setRadius((Double)_data.getValue(PivVisuPanel.ATT_RAYON, 0));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -31,6 +31,7 @@
import org.fudaa.ebli.calque.edition.ZEditionAttributesDataI;
import org.fudaa.ebli.calque.edition.ZEditorLigneBriseePanel;
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
@@ -93,12 +94,15 @@
PivOrthoPoint[] oldPoints=pnCalques_.getProject().getOrthoPoints();
// Valeurs des points r\xE9els.
+ GrMorphisme toData=pnCalques_.getProject().getTransformationParameters().getToData();
+
GrPoint[] realPts = new GrPoint[_pg.sommets_.nombre()];
for (int i = 0; i < _pg.sommets_.nombre(); i++) {
Double x = (Double) _data.getValue(PivOrthoPointsModel.ATT_IND_XR, i);
Double y = (Double) _data.getValue(PivOrthoPointsModel.ATT_IND_YR, i);
Double z = (Double) _data.getValue(PivVisuPanel.ATT_IND_ZR, i);
realPts[i] = new GrPoint(x.doubleValue(), y.doubleValue(), z.doubleValue());
+ realPts[i].autoApplique(toData);
}
if (oldPoints==null) {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-06-29 13:14:53 UTC (rev 9136)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-07-02 09:24:50 UTC (rev 9137)
@@ -45,6 +45,12 @@
* @param _e L'evenement pour l'action.
*/
public void actionPerformed(final ActionEvent _e) {
+ // On ne saisit les donn\xE9es que dans le rep\xE8re de calcul
+ if (impl.getCurrentProject().getTransformationParameters().isCurrentSystemOriginal()) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul."));
+ return;
+ }
+
if (!isValide()) return;
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-22 14:46:12
|
Revision: 9135
http://sourceforge.net/p/fudaa/svn/9135
Author: bmarchan
Date: 2015-06-22 14:46:09 +0000 (Mon, 22 Jun 2015)
Log Message:
-----------
Ajout d'une vue en repere diff?\195?\169rent
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -44,6 +44,7 @@
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
+import org.fudaa.fudaa.piv.action.PivChangeTransformationAction;
import org.fudaa.fudaa.piv.action.PivCreateParticleLinesAction;
import org.fudaa.fudaa.piv.action.PivNewTransectAction;
import org.fudaa.fudaa.piv.action.PivRealViewAction;
@@ -61,6 +62,7 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivProjectStateListener;
import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
import org.fudaa.fudaa.piv.particles.PivParticlesLayer;
import org.fudaa.fudaa.piv.particles.PivResultSource;
@@ -81,10 +83,12 @@
private PivNewTransectAction actNewTransect_;
private PivTransectParamAction actParamsTransect_;
+ private PivChangeTransformationAction actTransfMatrix_;
private EbliActionAbstract actRealView_;
private PivVisuPanel pnLayers_;
private JComboBox<CtuluVariable> cbVar_;
+ private JComboBox<String> cbRep_;
private JComboBox<String> cbImg_;
private BuTransparentToggleButton btLock_;
private JComboBox<String> cbVel_;
@@ -92,9 +96,11 @@
private AbstractButton btAnim_;
private PivCreateParticleLinesAction actParticleLines_;
private AbstractButton btStreamLines_;
+ private AbstractButton btTransfMatrix_;
private PivProject prj_;
private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>();
private boolean enableEvents2_=true;
+ private boolean enableEvents_=true;
ZCalquePointEditable cqRealOrthoPoints_;
ZCalqueMultiPointEditable cqRealControlPoints_;
@@ -407,6 +413,23 @@
* Mise a jour des calques depuis le projet.
*/
private void majLayers() {
+ PivResultsI averageResults=null;
+ if (prj_.getAverageResults()!=null)
+ averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getMatrixForCurrentSystem());
+ PivResultsI[] rawResults=null;
+ if (prj_.getInstantRawResults()!=null) {
+ rawResults=new PivResultsI[prj_.getInstantRawResults().length];
+ for (int i=0; i<rawResults.length; i++) {
+ rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+ PivResultsI[] filteredResults=null;
+ if (prj_.getInstantFilteredResults()!=null) {
+ filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
+ for (int i=0; i<filteredResults.length; i++) {
+ filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
mdlRealOrthoPoints=new PivOrthoPointsModel(PivVisuPanel.MODE_REAL_VIEW);
mdlRealOrthoPoints.setProjet(prj_);
@@ -420,48 +443,42 @@
mdlRealImage.setProjet(prj_);
cqRealImg_.setModele(mdlRealImage);
- if (prj_.getAverageResults()!=null) {
- mdlVelResults=new PivVelResultsModel(prj_.getAverageResults());
+ if (averageResults!=null) {
+ mdlVelResults=new PivVelResultsModel(averageResults);
cqVelResults.setModele(mdlVelResults);
- cqVelResults.setVisible(false);
}
- if (prj_.getInstantRawResults()!=null) {
- mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantRawResults());
+ if (rawResults!=null) {
+ mdlInstantVelResults=new PivVelResultsModel(rawResults);
cqInstantVelResults_.setModele(mdlInstantVelResults);
- cqInstantVelResults_.setVisible(false);
}
- if (prj_.getInstantFilteredResults()!=null) {
- mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults());
+ if (filteredResults!=null) {
+ mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
cqInstantVelFltResults_.setModele(mdlInstantVelFltResults);
- cqInstantVelFltResults_.setVisible(false);
}
mdlFlowResults=new PivFlowResultsModel();
mdlFlowResults.setProjet(prj_);
cqFlowResults.setModele(mdlFlowResults);
- cqFlowResults.setVisible(false);
-// mdlTransect=new PivTransectModel();
-// mdlTransect.setProjet(prj_);
// Evite de perdre la selection en cours.
cqTransect_.modeleDonnees().setProjet(prj_);
- if (prj_.getInstantRawResults()!=null) {
- mdlInstantResults=new PivResultsModel(prj_.getInstantRawResults(),null);
+ if (rawResults!=null) {
+ mdlInstantResults=new PivResultsModel(rawResults,null);
cqInstantIso_.setModele(mdlInstantResults);
cqRawParticles_.getSource().setResults(mdlInstantResults);
}
- if (prj_.getInstantFilteredResults()!=null) {
- mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null);
+ if (filteredResults!=null) {
+ mdlInstantFltResults=new PivResultsModel(filteredResults,null);
cqInstantFltIso_.setModele(mdlInstantFltResults);
cqFltParticles_.getSource().setResults(mdlInstantFltResults);
}
- if (prj_.getAverageResults()!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()}, null);
+ if (averageResults!=null) {
+ mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults}, null);
cqAverageIso_.setModele(mdlAverageResults);
cqAveParticles_.getSource().setResults(mdlAverageResults);
}
@@ -472,9 +489,6 @@
return layers_.toArray(new BCalqueAffichage[0]);
}
-
- private boolean enableEvents_=true;
-
/**
* Construction des outils sp\xE9cifiques \xE0 cette vue.
*/
@@ -488,6 +502,10 @@
new PivParticlesLayer[]{cqAveParticles_,cqFltParticles_,cqRawParticles_});
btStreamLines_=actParticleLines_.buildToolButton(EbliComponentFactory.INSTANCE);
+ // Le bouton des param\xE8tres du rep\xE8re.
+ actTransfMatrix_=new PivChangeTransformationAction();
+ btTransfMatrix_=actTransfMatrix_.buildToolButton(EbliComponentFactory.INSTANCE);
+
// La liste des variables possibles
cbVar_=new JComboBox<>();
cbVar_.addItemListener(new ItemListener() {
@@ -504,6 +522,21 @@
cbVar_.setToolTipText(PivResource.getS("Affiche les r\xE9sultats pour la variable s\xE9lectionn\xE9e"));
cbVar_.setEnabled(false);
+ // La liste des rep\xE8res
+ cbRep_=new JComboBox<>();
+ cbRep_.setToolTipText("Changement de rep\xE8re");
+ cbRep_.addItem("Rep\xE8re de calcul");
+ cbRep_.addItem("Rep\xE8re d'origine");
+ cbRep_.setPreferredSize(new Dimension(120, cbRep_.getPreferredSize().height));
+ cbRep_.setMaximumSize(cbRep_.getPreferredSize());
+ cbRep_.addItemListener(new ItemListener() {
+
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ setViewInOriginalSystemCoords(cbRep_.getSelectedIndex()!=0);
+ }
+ });
+
// La liste d\xE9roulante des images
cbImg_ = new JComboBox<>();
cbImg_.addItemListener(new ItemListener() {
@@ -616,6 +649,16 @@
}
}
}
+
+ /**
+ * Change la vue du rep\xE8re d'origine vers le rep\xE8re de calcul.
+ * @param _b True : Vue dans le syst\xE8me d'origine. Sinon dans le syst\xE8me de calcul.
+ */
+ private void setViewInOriginalSystemCoords(boolean _b) {
+ prj_.setOriginalSystemCoords(_b);
+ majLayers();
+ pnLayers_.restaurer();
+ }
/**
* Mise a jour les outils.
@@ -638,6 +681,12 @@
if (prj_==null) return;
+ actTransfMatrix_.getPanel().setProject(prj_);
+
+ if (prj_.isOriginalSystemCoords()) {
+ cbRep_.setSelectedIndex(1);
+ }
+
// La liste d\xE9roulante des images
File[] imgs=prj_.getReadyTransfImageFiles();
if (imgs != null) {
@@ -711,6 +760,24 @@
@Override
public void projectStateChanged(PivProject _prj, String _prop) {
+ PivResultsI averageResults=null;
+ if (prj_.getAverageResults()!=null)
+ averageResults=new PivResultsTransformationAdapter(prj_.getAverageResults(),prj_.getMatrixForCurrentSystem());
+ PivResultsI[] rawResults=null;
+ if (prj_.getInstantRawResults()!=null) {
+ rawResults=new PivResultsI[prj_.getInstantRawResults().length];
+ for (int i=0; i<rawResults.length; i++) {
+ rawResults[i]=new PivResultsTransformationAdapter(prj_.getInstantRawResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+ PivResultsI[] filteredResults=null;
+ if (prj_.getInstantFilteredResults()!=null) {
+ filteredResults=new PivResultsI[prj_.getInstantFilteredResults().length];
+ for (int i=0; i<filteredResults.length; i++) {
+ filteredResults[i]=new PivResultsTransformationAdapter(prj_.getInstantFilteredResults()[i], prj_.getMatrixForCurrentSystem());
+ }
+ }
+
if ("transfImages".equals(_prop)) {
majTools();
mdlRealImage.update();
@@ -725,9 +792,9 @@
mdlFlowResults.update();
}
else if("averageResults".equals(_prop)) {
- if (_prj.getAverageResults()!=null) {
- mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()},null);
- mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()});
+ if (averageResults!=null) {
+ mdlAverageResults=new PivResultsModel(new PivResultsI[]{averageResults},null);
+ mdlVelResults=new PivVelResultsModel(new PivResultsI[]{averageResults});
}
else {
mdlAverageResults=null;
@@ -740,9 +807,9 @@
majTools();
}
else if ("instantResults".equals(_prop)) {
- if (_prj.getInstantRawResults()!=null) {
- mdlInstantResults=new PivResultsModel(prj_.getInstantRawResults(),null);
- mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantRawResults());
+ if (rawResults!=null) {
+ mdlInstantResults=new PivResultsModel(rawResults,null);
+ mdlInstantVelResults=new PivVelResultsModel(rawResults);
}
else {
mdlInstantResults=null;
@@ -755,9 +822,9 @@
majTools();
}
else if ("instantFilteredResults".equals(_prop)) {
- if (_prj.getInstantFilteredResults()!=null) {
- mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null);
- mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults());
+ if (filteredResults!=null) {
+ mdlInstantFltResults=new PivResultsModel(filteredResults,null);
+ mdlInstantVelFltResults=new PivVelResultsModel(filteredResults);
}
else {
mdlInstantFltResults=null;
@@ -780,7 +847,7 @@
@Override
public JComponent[] getSpecificTools() {
- return new JComponent[]{btStreamLines_,btAnim_,cbVar_,cbImg_,btLock_,cbVel_};
+ return new JComponent[]{btStreamLines_,btTransfMatrix_,cbRep_,btAnim_,cbVar_,cbImg_,btLock_,cbVel_};
}
@Override
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -0,0 +1,129 @@
+/*
+ * @creation 5 avr. 2005
+ * @modification $Date: 2008-05-13 12:10:31 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.fudaa.ebli.commun.EbliFormatterInterface;
+import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuPanel;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuToolButton;
+
+/**
+ * Un panneau pour saisir la matrice de transformation rep\xE8re d'origine vers rep\xE8re de calcul.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivTransformationPanel extends JPanel {
+
+ protected JButton btApply_;
+ protected EbliFormatterInterface formatter_;
+ protected BuTextField tfTx_;
+ protected BuTextField tfTy_;
+ protected BuTextField tfTz_;
+ protected BuTextField tfRz_;
+ protected BuLabel lbRz_;
+ protected PivProject prj_;
+
+ /**
+ * @param _deplacement le calque de deplacement
+ * @param _formatter
+ */
+ public PivTransformationPanel(EbliFormatterInterface _formatter) {
+ super();
+
+ formatter_ = _formatter;
+
+ tfTx_ = BuTextField.createDoubleField();
+ tfTx_.setPreferredSize(new Dimension(90, tfTx_.getPreferredSize().height));
+ tfTy_ = BuTextField.createDoubleField();
+ tfTz_ = BuTextField.createDoubleField();
+ tfRz_ = BuTextField.createDoubleField();
+ lbRz_ = new BuLabel("Rz:");
+
+ btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer"));
+ btApply_.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ if (btApply_.isEnabled() && btApply_ == _e.getSource()) {
+ Double tx = (Double) tfTx_.getValue();
+ Double ty = (Double) tfTy_.getValue();
+ Double tz = (Double) tfTz_.getValue();
+ Double rz = Math.toRadians((Double)tfRz_.getValue());
+
+ if (tx != null && ty != null && tz != null && rz != null) {
+ PivTransformationMatrix mat=new PivTransformationMatrix();
+ mat.setToTranslation(-tx, -ty);
+ mat.setTranslateZ(-tz);
+ mat.rotate(-rz);
+ if (prj_ != null)
+ prj_.setMatrixToComputation(mat);
+ }
+ }
+ }
+ });
+
+ buildComponent();
+ updateComponent();
+ }
+
+ public void setProject(PivProject _prj) {
+ prj_=_prj;
+ updateComponent();
+ }
+
+ public void updateComponent() {
+ if (prj_==null)
+ return;
+
+ tfTx_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateX()));
+ tfTy_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateY()));
+ tfTz_.setValue(formatter_.getXYFormatter().format(-prj_.getMatrixToComputation().getTranslateZ()));
+ tfRz_.setValue(formatter_.getXYFormatter().format(Math.toDegrees(-prj_.getMatrixToComputation().getRotationZ())));
+ }
+
+ protected void buildComponent() {
+ BuPanel pnMain = new BuPanel();
+ pnMain.setLayout(new BuGridLayout(2, 2, 2));
+ pnMain.add(new BuLabel("Tx:"));
+ pnMain.add(tfTx_);
+ pnMain.add(new BuLabel("Ty:"));
+ pnMain.add(tfTy_);
+ pnMain.add(new BuLabel("Tz:"));
+ pnMain.add(tfTz_);
+ pnMain.add(lbRz_);
+ pnMain.add(tfRz_);
+
+ BuPanel pnButtons = new BuPanel();
+ pnButtons.setLayout(new BorderLayout(5, 5));
+ pnButtons.add(btApply_, BorderLayout.SOUTH);
+
+ setLayout(new BorderLayout(5, 5));
+ setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
+ add(new JLabel("<html><p>Param\xE8tres de transformation du<br>rep\xE8re d'origine vers le rep\xE8re de calcul</html>"), BorderLayout.NORTH);
+ add(pnMain, BorderLayout.CENTER);
+ add(pnButtons, BorderLayout.EAST);
+
+
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransformationPanel.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -0,0 +1,33 @@
+package org.fudaa.fudaa.piv.action;
+
+import javax.swing.JComponent;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.ebli.commun.EbliFormatter;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.fudaa.piv.PivTransformationPanel;
+
+public class PivChangeTransformationAction extends EbliActionPaletteAbstract {
+ PivTransformationPanel pn_;
+
+ public PivChangeTransformationAction() {
+ super(EbliLib.getS("Rep\xE8re"), EbliResource.EBLI.getIcon("repere"), "CHANGE_TRANSF");
+ setDefaultToolTip(EbliLib.getS("Transformations du rep\xE8re d'origine vers le rep\xE8re de calcul"));
+ }
+
+ @Override
+ protected JComponent buildContentPane() {
+ return getPanel();
+ }
+
+ public PivTransformationPanel getPanel() {
+ if (pn_==null) {
+ EbliFormatter fmt=new EbliFormatter();
+ fmt.setFmt(CtuluLib.getDecimalFormat(2));
+ pn_=new PivTransformationPanel(fmt);
+ }
+ return pn_;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChangeTransformationAction.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -7,11 +7,11 @@
*/
package org.fudaa.fudaa.piv.io;
+import gnu.trove.TDoubleArrayList;
+
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import org.fudaa.ctulu.CtuluActivity;
import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
@@ -57,10 +57,10 @@
*/
private synchronized PivFlowResults readResults() {
PivFlowResults res = new PivFlowResults();
- List<Double> lx=new ArrayList<Double>();
- List<Double> ly=new ArrayList<Double>();
- List<Double> lvx=new ArrayList<Double>();
- List<Double> lvy=new ArrayList<Double>();
+ TDoubleArrayList lx=new TDoubleArrayList();
+ TDoubleArrayList ly=new TDoubleArrayList();
+ TDoubleArrayList lvx=new TDoubleArrayList();
+ TDoubleArrayList lvy=new TDoubleArrayList();
if (super.in_ == null) {
analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
@@ -114,10 +114,10 @@
}
// Sortie normale
catch (final EOFException e) {
- res.setX(lx.toArray(new Double[0]));
- res.setY(ly.toArray(new Double[0]));
- res.setVx(lvx.toArray(new Double[0]));
- res.setVy(lvy.toArray(new Double[0]));
+ res.setX(lx.toNativeArray());
+ res.setY(ly.toNativeArray());
+ res.setVx(lvx.toNativeArray());
+ res.setVy(lvy.toNativeArray());
}
catch (final IOException e) {
analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber());
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivControlPointsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -1,13 +1,16 @@
package org.fudaa.fudaa.piv.layer;
-import com.vividsolutions.jts.geom.CoordinateSequence;
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISMultiPoint;
import org.fudaa.ctulu.gis.GISZoneCollectionMultiPoint;
import org.fudaa.ebli.calque.edition.ZModeleMultiPointEditable;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+
/**
* Un modele pour les points d'orthorectification recalcul\xE9s, dans l'espace r\xE9el.
*
@@ -42,6 +45,8 @@
GISZoneCollectionMultiPoint zp = (GISZoneCollectionMultiPoint) getGeomData();
zp.removeAll(null);
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
+
if (prj_.getOrthoPoints() != null) {
PivOrthoPoint[] pts = prj_.getOrthoPoints();
if (pts.length == 0 || pts[0].getComputeRealPoint() == null) {
@@ -50,8 +55,9 @@
CoordinateSequence seq = GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(pts.length, 2);
for (int i = 0; i < pts.length; i++) {
- seq.setOrdinate(i, 0, pts[i].getComputeRealPoint().x_);
- seq.setOrdinate(i, 1, pts[i].getComputeRealPoint().y_);
+ GrPoint ptReal=mat.transform(pts[i].getComputeRealPoint());
+ seq.setOrdinate(i, 0, ptReal.x_);
+ seq.setOrdinate(i, 1, ptReal.y_);
}
GISMultiPoint mp = (GISMultiPoint) GISGeometryFactory.INSTANCE.createMultiPoint(seq);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivFlowResultsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -14,6 +14,8 @@
import org.fudaa.fudaa.piv.metier.PivFlowResults;
import org.fudaa.fudaa.piv.metier.PivGlobalFlowResults;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsTransformationAdapter;
/**
* Un modele pour le trac\xE9 des d\xE9bits sous forme de vecteurs vitesses.
@@ -48,7 +50,11 @@
* Met a jour le mod\xE8le
*/
public void update() {
- res_=new PivGlobalFlowResults(prj_.getFlowResults());
+ PivResultsI[] res=prj_.getFlowResults();
+ PivResultsI[] adapters=new PivResultsI[res==null ? 0:res.length];
+ for (int i=0; i<res.length; i++)
+ adapters[i]=new PivResultsTransformationAdapter(res[i], prj_.getMatrixForCurrentSystem());
+ res_=new PivGlobalFlowResults(adapters);
}
/** Non implement\xE9 */
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -16,7 +16,7 @@
import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivProject;
-import org.fudaa.fudaa.piv.metier.PivTransect;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
/**
* Un modele pour les points d'orthorectification, soit dans l'espace d'image
@@ -123,7 +123,7 @@
}
/**
- * Met a jour le mod\xE8le en fonction des points d'orthorectification.
+ * Met a jour le mod\xE8le en fonction des points d'orthorectification et du rep\xE8re.
*/
public void update() {
if (!eventEnabled_) return;
@@ -137,6 +137,7 @@
if (prj_.getOrthoPoints() != null) {
PivOrthoPoint[] pts=prj_.getOrthoPoints();
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
for (int ipt=0; ipt < pts.length; ipt++) {
@@ -194,13 +195,14 @@
// GISMultiPoint mp=(GISMultiPoint) GISGeometryFactory.INSTANCE.createMultiPoint(seq);
// zp.addGeometry(mp, null, null);
- GISPoint pt=new GISPoint(pts[ipt].getRealPoint().x_, pts[ipt].getRealPoint().y_, 0);
+ GrPoint ptReal=mat.transform(pts[ipt].getRealPoint());
+ GISPoint pt=new GISPoint(ptReal.x_, ptReal.y_, 0);
zp.add(pt, null);
// Les valeurs d'attributs
zp.getModel(ATT_IND_XI).setObject(ipt, pts[ipt].getImgPoint().x_, null);
zp.getModel(ATT_IND_YI).setObject(ipt, imgSize.height - pts[ipt].getImgPoint().y_, null);
- zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(ipt, pts[ipt].getRealPoint().z_, null);
+ zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(ipt, ptReal.z_, null);
zp.getModel(PivVisuPanel.ATT_LABEL).setObject(ipt, "P" + (ipt + 1), null);
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -3,12 +3,15 @@
import java.awt.geom.Point2D;
import java.io.File;
import java.util.Iterator;
+
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
+
import org.fudaa.ctulu.CtuluImageContainer;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.fudaa.piv.metier.PivProject;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
/**
* Un modele pour l'image dans l'espace r\xE9el.
@@ -57,6 +60,8 @@
File[] imgFiles=prj_.getReadyTransfImageFiles();
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
+
// Si l'indice d'image est bien dans les images disponibles
if (_idx!=-1 && imgFiles.length>_idx && prj_.getOrthoParameters()!=null) {
File img=prj_.getCacheImageFile(imgFiles[_idx]);
@@ -86,6 +91,7 @@
new Point2D.Double(prj_.getOrthoParameters().getXmax(),prj_.getOrthoParameters().getYmin()),
new Point2D.Double(prj_.getOrthoParameters().getXmin(),prj_.getOrthoParameters().getYmax())
};
+ mat.transform(realPts,0,realPts,0,realPts.length);
setImage(imgCont);
setProj(imgPts, realPts);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -20,6 +20,7 @@
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import org.fudaa.fudaa.piv.metier.PivTransformationMatrix;
import com.vividsolutions.jts.geom.CoordinateSequence;
@@ -125,11 +126,16 @@
try {
GISZoneCollectionLigneBrisee zl=(GISZoneCollectionLigneBrisee) getGeomData();
zl.removeAll(null);
+
+ PivTransformationMatrix mat=prj_.getMatrixForCurrentSystem();
PivTransect[] trans=prj_.getTransects();
if (trans != null) {
for (int i=0; i < trans.length; i++) {
- GrPolyligne pl=trans[i].getStraight();
+ GrPolyligne pl=new GrPolyligne();
+ for (int ipt=0; ipt<trans[i].getStraight().nombre(); ipt++)
+ pl.sommets_.ajoute(mat.transform(trans[i].getStraight().sommet(ipt)));
+
this.addGeometry(pl, null, null, new AttributeDataAdapter(trans[i]));
// Initialisation du Z.
zl.initZAttribute(i);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -4,11 +4,13 @@
*/
package org.fudaa.fudaa.piv.metier;
+import org.fudaa.ctulu.CtuluVariable;
+
/**
* Les r\xE9sultats d'un calcul de d\xE9bit.
* @author Bertrand Marchand (mar...@de...)
*/
-public class PivFlowResults {
+public class PivFlowResults implements PivResultsI {
/** Le debit */
protected double discharge;
/** La surface mouill\xE9e */
@@ -18,13 +20,13 @@
/** Le niveau d'eau */
protected double waterElevation;
/** Les coordonn\xE9es X des points */
- protected Double[] x;
+ protected double[] x;
/** Les coordonn\xE9es Y des points */
- protected Double[] y;
+ protected double[] y;
/** Les vitesses suivant Vx */
- protected Double[] vx;
+ protected double[] vx;
/** Les vitesses suivant Vy */
- protected Double[] vy;
+ protected double[] vy;
/**
* @return Le debit
@@ -125,7 +127,7 @@
* Definit les coordonn\xE9es X des points de r\xE9sultats
* @param _x Les coordonn\xE9es X
*/
- public void setX(Double[] _x) {
+ public void setX(double[] _x) {
x=_x;
}
@@ -133,7 +135,7 @@
* Definit les coordonn\xE9es Y des points de r\xE9sultats
* @param _y Les coordonn\xE9es Y
*/
- public void setY(Double[] _y) {
+ public void setY(double[] _y) {
y=_y;
}
@@ -141,7 +143,7 @@
* Definit les vitesses X des points de r\xE9sultats
* @param _vx Les vitesses X
*/
- public void setVx(Double[] _vx) {
+ public void setVx(double[] _vx) {
vx=_vx;
}
@@ -149,7 +151,42 @@
* Definit les vitesses Y des points de r\xE9sultats
* @param _vy Les vitesses Y
*/
- public void setVy(Double[] _vy) {
+ public void setVy(double[] _vy) {
vy=_vy;
}
+
+ @Override
+ public boolean hasResult(CtuluVariable _tpRes) {
+ return TYPE.VX.equals(_tpRes) || TYPE.VY.equals(_tpRes);
+ }
+
+ @Override
+ public CtuluVariable[] getResults() {
+ return new CtuluVariable[]{TYPE.VX,TYPE.VY};
+ }
+
+ @Override
+ public int getNbPoints() {
+ return getNombre();
+ }
+
+ @Override
+ public double getValue(int _ind, CtuluVariable _tpRes) {
+ if (TYPE.VX.equals(_tpRes))
+ return getVx(_ind);
+ else if (TYPE.VY.equals(_tpRes))
+ return getVy(_ind);
+ else
+ return -1;
+ }
+
+ @Override
+ public double[] getValues(CtuluVariable _tpRes) {
+ if (TYPE.VX.equals(_tpRes))
+ return vy;
+ else if (TYPE.VY.equals(_tpRes))
+ return vy;
+ else
+ return null;
+ }
}
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 2015-06-22 14:45:16 UTC (rev 9134)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivGlobalFlowResults.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -1,18 +1,20 @@
package org.fudaa.fudaa.piv.metier;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
/**
* Une classe pour englober la totalit\xE9 des r\xE9sultats de d\xE9bit.
* @author Bertrand Marchand (mar...@de...)
*/
public class PivGlobalFlowResults {
- PivFlowResults[] res_;
+ PivResultsI[] res_;
int cpt_;
/**
* Cr\xE9ation d'un r\xE9sultat global.
* @param _res Les r\xE9sultats individuels. Peut \xEAtre <code>null</code>
*/
- public PivGlobalFlowResults(PivFlowResults[] _res) {
+ public PivGlobalFlowResults(PivResultsI[] _res) {
res_=_res;
}
@@ -20,7 +22,7 @@
* @return La coordonn\xE9e X du point d'index donn\xE9e.
*/
public double getX(int _i) {
- PivFlowResults res=getRes(_i);
+ PivResultsI res=getRes(_i);
if (res!=null) return res.getX(_i-cpt_);
return -1;
}
@@ -29,7 +31,7 @@
* @return La coordonn\xE9e Y du point d'index donn\xE9e.
*/
public double getY(int _i) {
- PivFlowResults res=getRes(_i);
+ PivResultsI res=getRes(_i);
if (res!=null) return res.getY(_i-cpt_);
return -1;
}
@@ -38,8 +40,8 @@
* @return La vitesse Vx du point d'index donn\xE9e.
*/
public double getVx(int _i) {
- PivFlowResults res=getRes(_i);
- if (res!=null) return res.getVx(_i-cpt_);
+ PivResultsI res=getRes(_i);
+ if (res!=null) return res.getValue(_i-cpt_,TYPE.VX);
return -1;
}
@@ -47,8 +49,8 @@
* @return La vitesse Vy du point d'index donn\xE9e.
*/
public double getVy(int _i) {
- PivFlowResults res=getRes(_i);
- if (res!=null) return res.getVy(_i-cpt_);
+ PivResultsI res=getRes(_i);
+ if (res!=null) return res.getValue(_i-cpt_,TYPE.VY);
return -1;
}
@@ -58,20 +60,20 @@
public int getNombre() {
cpt_=0;
if (res_ != null) {
- for (PivFlowResults res : res_) {
- cpt_+=res.getNombre();
+ for (PivResultsI res : res_) {
+ cpt_+=res.getNbPoints();
}
}
return cpt_;
}
- private PivFlowResults getRes(int _i) {
+ private PivResultsI getRes(int _i) {
cpt_=0;
if (res_ != null) {
- for (PivFlowResults res : res_) {
- if (_i < cpt_+res.getNombre())
+ for (PivResultsI res : res_) {
+ if (_i < cpt_+res.getNbPoints())
return res;
- cpt_+=res.getNombre();
+ cpt_+=res.getNbPoints();
}
}
return null;
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java 2015-06-22 14:46:09 UTC (rev 9135)
@@ -0,0 +1,105 @@
+package org.fudaa.fudaa.piv.metier;
+
+import java.awt.geom.Point2D;
+
+import org.fudaa.ctulu.CtuluVariable;
+
+/**
+ * Une classe pour retourner des r\xE9sultats avec transformation ou non des coordonn\xE9es.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivResultsTransformationAdapter implements PivResultsI {
+ PivTransformationMatrix mat_;
+ PivResultsI res_;
+ /** Cache localisation des points */
+ Point2D[] locationPts_;
+ /** Cache localisation des extremit\xE9s de vecteurs */
+ Point2D[] extPts_;
+
+ public PivResultsTransformationAdapter(PivResultsI _res, PivTransformationMatrix _mat) {
+ mat_=_mat;
+ res_=_res;
+ locationPts_=new Point2D[_res.getNbPoints()];
+ extPts_=new Point2D[_res.getNbPoints()];
+ }
+
+ private Point2D getLocation(int _ind) {
+ Point2D pt;
+ if ((pt=locationPts_[_ind])==null) {
+ pt=new Point2D.Double(res_.getX(_ind),res_.getY(_ind));
+ mat_.transform(pt,pt);
+ locationPts_[_ind]=pt;
+ }
+ return pt;
+ }
+
+ private Point2D getExt(int _ind) {
+ Point2D pt;
+ if ((pt=extPts_[_ind])==null) {
+ pt=new Point2D.Double(res_.getX(_ind)+res_.getValue(_ind,TYPE.VX),res_.getY(_ind)+res_.getValue(_ind,TYPE.VY));
+ mat_.transform(pt,pt);
+ pt.setLocation(pt.getX()-getLocation(_ind).getX(), pt.getY()-getLocation(_ind).getY());
+ extPts_[_ind]=pt;
+ }
+ return pt;
+ }
+
+ @Override
+ public boolean hasResult(CtuluVariable _tpRes) {
+ return res_.hasResult(_tpRes);
+ }
+
+ @Override
+ public CtuluVariable[] getResults() {
+ return res_.getResults();
+ }
+
+ @Override
+ public int getNbPoints() {
+ return res_.getNbPoints();
+ }
+
+ @Override
+ public double getX(int _ind) {
+ return getLocation(_ind).getX();
+ }
+
+ @Override
+ public double getY(int _ind) {
+ return getLocation(_ind).getY();
+ }
+
+ @Override
+ public double getValue(int _ind, CtuluVariable _tpRes) {
+ if (_tpRes.equals(TYPE.VX)) {
+ return getExt(_ind).getX();
+ }
+ else if (_tpRes.equals(TYPE.VY)) {
+ return getExt(_ind).getY();
+ }
+ else {
+ return res_.getValue(_ind, _tpRes);
+ }
+ }
+
+ @Override
+ public double[] getValues(CtuluVariable _tpRes) {
+ if (_tpRes.equals(TYPE.VX)) {
+ double[] val=new double[getNbPoints()];
+ for (int i=0; i<getNbPoints(); i++) {
+ val[i]=getExt(i).getX();
+ }
+ return val;
+ }
+ else if (_tpRes.equals(TYPE.VY)) {
+ double[] val=new double[getNbPoints()];
+ for (int i=0; i<getNbPoints(); i++) {
+ val[i]=getExt(i).getY();
+ }
+ return val;
+ }
+ else {
+ return res_.getValues(_tpRes);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsTransformationAdapter.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-22 14:45:19
|
Revision: 9134
http://sourceforge.net/p/fudaa/svn/9134
Author: bmarchan
Date: 2015-06-22 14:45:16 +0000 (Mon, 22 Jun 2015)
Log Message:
-----------
Matrice de transformation repere d'origine vers repere de calcul
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlParam.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -11,4 +11,12 @@
public GrPoint iaCenter;
/** La liste ordonn\xE9e des noms des images source */
public String[] srcImages;
+ /** Translation X */
+ public double tx;
+ /** Translation Y */
+ public double ty;
+ /** Translation Z */
+ public double tz;
+ /** Rotation Z */
+ public double rz;
}
\ No newline at end of file
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlReader.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -79,6 +79,17 @@
params.srcImages[ind]=name;
}
+ // La matrice de transformation espace d'origine => espace de calcul.
+ NodeList ndlMat=doc.getElementsByTagName("transfMatrix");
+ for (int i=0; i<ndlMat.getLength(); i++) {
+ Element elMat=(Element)ndlMat.item(i);
+ params.tx=Double.parseDouble(elMat.getAttribute("tx"));
+ params.ty=Double.parseDouble(elMat.getAttribute("ty"));
+ params.tz=Double.parseDouble(elMat.getAttribute("tz"));
+ params.rz=Double.parseDouble(elMat.getAttribute("rz"));
+ }
+
+
// // Les transects
// NodeList ndlTrans=doc.getElementsByTagName("transect");
// params.transects=new PivTransect[ndlTrans.getLength()];
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGlobalXmlWriter.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -38,6 +38,10 @@
}
writer.endTag("srcImages");
+ // La rotation/translation appliqu\xE9s \xE0 l'espace r\xE9el.
+ writer.startTagWithAttrs("transfMatrix", new String[]{"tx","ty","tz","rz"}, new String[]{ "" + _param.tx,"" + _param.ty,"" + _param.tz,"" + _param.rz});
+ writer.endTag("transfMatrix");
+
// writeTransects(writer, _param.transects);
writer.finish();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -1,6 +1,7 @@
package org.fudaa.fudaa.piv.metier;
import java.awt.Dimension;
+import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
@@ -102,6 +103,10 @@
protected Dimension imgPgmSize=null;
/** True : Les images d'origine ont \xE9t\xE9 modifi\xE9es */
protected boolean areSrcImagesChanged=true;
+ /** La matrice de transformation pour passer du systeme d'origine au systeme de calcul. Identit\xE9 au lancement */
+ protected PivTransformationMatrix matrix=new PivTransformationMatrix();
+ /** Definit si les coordonn\xE9es affich\xE9es le sont dans le system de coordonn\xE9es d'origine ou de calcul. */
+ protected boolean isOriginalSystemCoords_;
/** Les listeners notifi\xE9s lors d'une modification du projet. */
protected HashSet<PivProjectStateListener> listeners=new HashSet<PivProjectStateListener>();
@@ -1018,6 +1023,40 @@
return usedInstantResults;
}
+ /**
+ * @param _matrix La matrice de transformation pour passer du repere origine au repere calcul
+ */
+ public void setMatrixToComputation(PivTransformationMatrix _matrix) {
+ matrix=_matrix;
+ isModified=true;
+ fireProjectStateChanged("matrix");
+ }
+
+ /**
+ * @return La matrice de transformation pour passer du repere origine au repere calcul
+ */
+ public PivTransformationMatrix getMatrixToComputation() {
+ return matrix;
+ }
+
+ public void setOriginalSystemCoords(boolean _b) {
+ isOriginalSystemCoords_=_b;
+ }
+
+ public boolean isOriginalSystemCoords() {
+ return isOriginalSystemCoords_;
+ }
+
+ /**
+ * @return La matrice de transformation pour le systeme courant.
+ */
+ public PivTransformationMatrix getMatrixForCurrentSystem() {
+ if (isOriginalSystemCoords())
+ return matrix;
+ else
+ return new PivTransformationMatrix();
+ }
+
void fireProjectStateChanged(String _prop) {
for (PivProjectStateListener listener : listeners) {
listener.projectStateChanged(this,_prop);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2015-06-16 16:36:57 UTC (rev 9133)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -448,6 +448,12 @@
return names.indexOf(o1.getName()) - names.indexOf(o2.getName());
}
});
+
+ // Affectation de la transformation.
+ prj_.matrix=new PivTransformationMatrix();
+ prj_.matrix.setToTranslation(paramXml.tx, paramXml.ty);
+ prj_.matrix.setTranslateZ(paramXml.tz);
+ prj_.matrix.rotate(paramXml.rz);
prj_.srcFiles_.clear();
prj_.srcFiles_.addAll(Arrays.asList(srcFiles));
@@ -467,6 +473,12 @@
for (int i=0; i<prj_.srcFiles_.size(); i++) {
params.srcImages[i]=prj_.srcFiles_.get(i).getName();
}
+
+ // La matrice de transformation
+ params.tx=prj_.matrix.getTranslateX();
+ params.ty=prj_.matrix.getTranslateY();
+ params.tz=prj_.matrix.getTranslateZ();
+ params.rz=prj_.matrix.getRotationZ();
File globalFile = new File(prj_.getOutputDir(), "global.xml");
new PivGlobalXmlWriter().write(params, globalFile, _prog);
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java 2015-06-22 14:45:16 UTC (rev 9134)
@@ -0,0 +1,51 @@
+package org.fudaa.fudaa.piv.metier;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+
+import org.fudaa.ebli.geometrie.GrPoint;
+
+/**
+ * Une classe pour d\xE9finir la translation et la rotation du systeme d'origine vers le systeme de calcul. On ajoute aussi
+ * une translation en Z qui ne sert pas pour l'affichage, mais pour les calculs.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class PivTransformationMatrix extends AffineTransform {
+ /** Translation suivant Z */
+ private double tz_=0;
+ /** Des caches */
+ Point2D pt2D=new Point2D.Double();
+
+ /**
+ * @return L'angle de rotation suivant Z (en radians).
+ */
+ public double getRotationZ() {
+ return Math.atan2(getShearY(),getScaleX());
+ }
+
+ /**
+ * @param _tz La translation suivant Z.
+ */
+ public void setTranslateZ(double _tz) {
+ tz_=_tz;
+ }
+
+ /**
+ * @return La translation suivant Z.
+ */
+ public double getTranslateZ() {
+ return tz_;
+ }
+
+ /**
+ * Transforme le point suivant la matrice.
+ * @param _pt Le point d'entr\xE9e.
+ * @return LE point transform\xE9.
+ */
+ public GrPoint transform(GrPoint _pt) {
+ pt2D.setLocation(_pt.x_, _pt.y_);
+ transform(pt2D, pt2D);
+ GrPoint pt=new GrPoint(pt2D.getX(),pt2D.getY(),_pt.z_+tz_);
+ return pt;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransformationMatrix.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-16 16:36:59
|
Revision: 9133
http://sourceforge.net/p/fudaa/svn/9133
Author: bmarchan
Date: 2015-06-16 16:36:57 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Ajout des r?\195?\169sultats de d?\195?\169bit dans la fenetre qui s'affiche ?\195?\160 la fin d'un calcul
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-06-16 14:54:20 UTC (rev 9132)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2015-06-16 16:36:57 UTC (rev 9133)
@@ -7,10 +7,20 @@
*/
package org.fudaa.fudaa.piv;
-import com.memoire.bu.BuGridLayout;
+import java.awt.BorderLayout;
+import java.awt.Component;
import java.awt.Dimension;
+import java.text.NumberFormat;
+
import javax.swing.JLabel;
-import javax.swing.JTextField;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.SwingConstants;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableModel;
+
+import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
@@ -21,56 +31,137 @@
* @version $Id$
*/
public class PivFlowInfoPanel extends CtuluDialogPanel {
- private PivFlowResults res_;
- private JTextField tfWaterElevation;
- private JTextField tfDischarge;
- private JTextField tfWettedArea;
- private JTextField tfMeanVelocity;
+ private PivFlowResults[] res_;
+ private double meanDisch_;
+ private double meanArea_;
+ private double meanMeanV_;
+
+ /**
+ * Une classe pour le modele de la table affichant les r\xE9sultats.
+ */
+ private class DischargeTableModel implements TableModel {
+
+ public int getRowCount() {
+ return res_.length+1;
+ }
+
+ public int getColumnCount() {
+ return 7;
+ }
+
+ public String getColumnName(int columnIndex) {
+ switch (columnIndex) {
+ default:
+ case 0:
+ return PivResource.getS("N\xB0");
+ case 1:
+ return PivResource.getS("D\xE9bit total (m\xB3/s)");
+ case 2:
+ return PivResource.getS("Ecart (%)");
+ case 3:
+ return PivResource.getS("Aire mouill\xE9e (m\xB2)");
+ case 4:
+ return PivResource.getS("Ecart (%)");
+ case 5:
+ return PivResource.getS("Vit. moy. (m/s)");
+ case 6:
+ return PivResource.getS("Ecart (%)");
+ }
+ }
+
+ public Class<?> getColumnClass(int columnIndex) {
+ return columnIndex==0 ? String.class:Double.class;
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return false;
+ }
+
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ double val;
+
+ switch (columnIndex) {
+ default:
+ case 0:
+ return rowIndex==res_.length? PivResource.getS("Moyenne"):""+(rowIndex+1);
+ case 1:
+ return rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
+ case 2:
+ val=rowIndex==res_.length? meanDisch_:res_[rowIndex].getDischarge();
+ return Math.abs(val-meanDisch_)/meanDisch_*100;
+ case 3:
+ return rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
+ case 4:
+ val=rowIndex==res_.length? meanArea_:res_[rowIndex].getWettedArea();
+ return Math.abs(val-meanArea_)/meanArea_*100;
+ case 5:
+ return rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
+ case 6:
+ val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity();
+ return Math.abs(val-meanMeanV_)/meanMeanV_*100;
+ }
+ }
+
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {}
+ public void addTableModelListener(TableModelListener l) {}
+ public void removeTableModelListener(TableModelListener l) {}
+ }
+
+ /**
+ * Une classe pour une repr\xE9sentation des doubles.
+ */
+ private class DischargeCellRenderer extends DefaultTableCellRenderer {
+ NumberFormat fmt = CtuluLib.getDecimalFormat(3);
+
+ public DischargeCellRenderer() {
+ this.setHorizontalAlignment(SwingConstants.RIGHT);
+ fmt.setMaximumFractionDigits(3);
+ fmt.setMinimumFractionDigits(3);
+ }
+
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
+
+ if (value instanceof Double) {
+ this.setText(fmt.format((Double)value));
+ }
+ return this;
+ }
+ }
/**
* Construction du panneau avec les r\xE9sutalts de d\xE9bit
* @param _res Les r\xE9sultats.
*/
- public PivFlowInfoPanel(PivFlowResults _res) {
-
- setLayout(new BuGridLayout(2,3,3));
- add(new JLabel(PivResource.getS("Niveau d'eau (m)")));
- add(tfWaterElevation=new JTextField());
- add(new JLabel(PivResource.getS("D\xE9bit total (m\xB3/s)")));
- add(tfDischarge=new JTextField());
- add(new JLabel(PivResource.getS("Aire mouill\xE9e (m\xB2)")));
- add(tfWettedArea=new JTextField());
- add(new JLabel(PivResource.getS("Vitesse moyenne sur la section (m/s)")));
- add(tfMeanVelocity=new JTextField());
+ public PivFlowInfoPanel(PivFlowResults[] _res) {
+ setLayout(new BorderLayout(5,5));
+ JTable tbResults=new JTable();
+ tbResults.setModel(new DischargeTableModel());
+ tbResults.setDefaultRenderer(Double.class,new DischargeCellRenderer());
+ JScrollPane spResults=new JScrollPane();
+ spResults.getViewport().add(tbResults);
+ spResults.setPreferredSize(new Dimension(700,200));
+ add(new JLabel(PivResource.getS("Liste des transects")),BorderLayout.NORTH);
+ add(spResults, BorderLayout.CENTER);
- tfWaterElevation.setEditable(false);
- tfDischarge.setPreferredSize(new Dimension(80,tfDischarge.getPreferredSize().height));
- tfDischarge.setEditable(false);
- tfWettedArea.setEditable(false);
- tfMeanVelocity.setEditable(false);
-
- setResults(_res);
+ res_=_res;
+ computeMoyennes();
}
- /**
- * Affecte les r\xE9sultats au dialogue et les affiche.
- * @param _res Les r\xE9sultats. Peut \xEAtre <tt>null</tt>
- */
- public void setResults(PivFlowResults _res) {
- res_=_res;
+ protected void computeMoyennes() {
+ meanDisch_=0;
+ meanArea_=0;
+ meanMeanV_=0;
- if (res_!=null) {
- tfWaterElevation.setText(""+res_.getWaterElevation());
- tfDischarge.setText(""+res_.getDischarge());
- tfWettedArea.setText(""+res_.getWettedArea());
- tfMeanVelocity.setText(""+res_.getMeanVelocity());
+ for (PivFlowResults res : res_) {
+ meanDisch_+=res.getDischarge();
+ meanArea_+=res.getWettedArea();
+ meanMeanV_+=res.getMeanVelocity();
}
- else {
- tfWaterElevation.setText("");
- tfDischarge.setText("");
- tfWettedArea.setText("");
- tfMeanVelocity.setText("");
- }
+
+ meanDisch_/=res_.length;
+ meanArea_/=res_.length;
+ meanMeanV_/=res_.length;
}
@Override
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-06-16 14:54:20 UTC (rev 9132)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-06-16 16:36:57 UTC (rev 9133)
@@ -100,11 +100,11 @@
// Probl\xE8me de thread swing probablement...
SwingUtilities.invokeLater(new Runnable() {
public void run() {
- impl.message(PivResource.getS("Calcul termin\xE9"), PivResource.getS("Le calcul s'est termin\xE9 avec succ\xE8s"), false);
+// impl.message(PivResource.getS("Calcul termin\xE9"), PivResource.getS("Le calcul s'est termin\xE9 avec succ\xE8s"), false);
+// impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
+ PivFlowInfoPanel pnInfo=new PivFlowInfoPanel(impl.getCurrentProject().getFlowResults());
+ pnInfo.afficheModale(impl.getFrame(), PivResource.getS("Calcul termin\xE9 avec succ\xE8s"), CtuluDialog.OK_OPTION);
impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
-// PivFlowInfoPanel pnInfo=new PivFlowInfoPanel(impl.getCurrentProject().getFlowResults()[0]);
-// pnInfo.afficheModale(impl.getFrame(), PivResource.getS("Calcul termin\xE9"), CtuluDialog.OK_OPTION);
-// impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
impl.get2dFrame().getVisuPanel().setFlowLayerVisible(true);
}
});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-16 14:54:23
|
Revision: 9132
http://sourceforge.net/p/fudaa/svn/9132
Author: bmarchan
Date: 2015-06-16 14:54:20 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Am?\195?\169lioration : Possiblit?\195?\169 d'ouvrir la fenetre parametres transect pour plusieurs transects.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -5,35 +5,38 @@
import org.fudaa.fudaa.piv.io.PivExeLauncher;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import org.omg.PortableServer._ServantLocatorStub;
/**
- * Un panneau de saisie des param\xE8tres du transect pour le calcul des d\xE9bits.
+ * Un panneau de saisie des param\xE8tres des transects s\xE9lectionn\xE9s pour le calcul des d\xE9bits.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
*/
public class PivTransectParamPanel extends CtuluDialogPanel {
PivImplementation impl_;
- PivTransect savedTrans_;
- int idSel_;
+ PivTransect[] savedTrans_;
+ PivTransect[] trans_;
+ int[] selIds_;
/**
* Constructeur.
*/
- public PivTransectParamPanel(PivImplementation _impl, int _idSel) {
+ public PivTransectParamPanel(PivImplementation _impl) {
impl_=_impl;
- idSel_=_idSel;
initComponents();
customize();
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- // Sauvegarde du transect pr\xE9cedent pour le cas d'annulation.
- savedTrans_=trans[_idSel].clone();
+ trans_=impl_.getCurrentProject().getTransects();
+ // Sauvegarde des transects pr\xE9cedents pour le cas d'annulation.
+ savedTrans_=new PivTransect[trans_.length];
+ for (int i=0; i<savedTrans_.length; i++)
+ savedTrans_[i]=trans_[i].clone();
- PivTransectParams params=trans[_idSel].getParams();
+// PivTransectParams params=trans[_idSel].getParams();
// if (params==null)
// params=new PivTransectParams();
- setFlowParams(params);
+// setFlowParams(params);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(true);
}
@@ -45,26 +48,71 @@
}
/**
+ * Change selection
+ * @param _selIds Les transects s\xE9lectionn\xE9s.
+ */
+ public void setSelected(int... _selIds) {
+ selIds_=_selIds;
+ initFlowParams();
+ }
+
+ /**
* Rempli le panneau depuis les donn\xE9es du projet.
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit.
*/
- public void setFlowParams(PivTransectParams _params) {
- tfCoef.setText("" + _params.getSurfaceCoef());
- tfDmax.setText("" + _params.getRadius());
- tfInterpolationStep.setText("" + _params.getInterpolationStep());
+ private void initFlowParams() {
+ String scoef=null;
+ String sradius=null;
+ String sstep=null;
+
+ for (int id : selIds_) {
+ if (scoef==null)
+ scoef=""+trans_[id].getParams().getSurfaceCoef();
+ else if (!scoef.equals(""+trans_[id].getParams().getSurfaceCoef())) {
+ scoef="";
+ }
+ if (sradius==null)
+ sradius=""+trans_[id].getParams().getRadius();
+ else if (!sradius.equals(""+trans_[id].getParams().getRadius())) {
+ sradius="";
+ }
+ if (sstep==null)
+ sstep=""+trans_[id].getParams().getInterpolationStep();
+ else if (!sstep.equals(""+trans_[id].getParams().getInterpolationStep())) {
+ sstep="";
+ }
+ }
+
+ if (scoef==null)
+ scoef="";
+ if (sstep==null)
+ sstep="";
+ if (sradius==null)
+ sradius="";
+
+ tfCoef.setText(scoef);
+ tfDmax.setText(sradius);
+ tfInterpolationStep.setText(sstep);
+
}
-
+
/**
- * Retourne les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
- * retourn\xE9s dans _params.
- *
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit servant \xE0 transf\xE9rer les
- * valeurs mises \xE0 jour.
+ * Recup\xE8re les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
+ * retourn\xE9s dans les params transects.
*/
- public void retrieveFlowParams(PivTransectParams _params) {
- _params.setSurfaceCoef(Double.parseDouble(tfCoef.getText().trim()));
- _params.setRadius(Double.parseDouble(tfDmax.getText().trim()));
- _params.setInterpolationStep(Double.parseDouble(tfInterpolationStep.getText().trim()));
+ private void retrieveFlowParams() {
+ String scoef=tfCoef.getText().trim();
+ String sradius=tfDmax.getText().trim();
+ String sstep=tfInterpolationStep.getText().trim();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ if (!scoef.isEmpty())
+ trans[id].getParams().setSurfaceCoef(Double.parseDouble(scoef));
+ if (!sradius.isEmpty())
+ trans[id].getParams().setRadius(Double.parseDouble(sradius));
+ if (!sstep.isEmpty())
+ trans[id].getParams().setInterpolationStep(Double.parseDouble(sstep));
+ }
}
/**
@@ -176,42 +224,41 @@
public boolean isDataValid() {
setErrorText("");
boolean bok=
- isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
- isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
- isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
+ tfCoef.getText().trim().isEmpty() || isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
+ tfDmax.getText().trim().isEmpty() || isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
+ tfInterpolationStep.getText().trim().isEmpty() || isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
return bok;
}
@Override
public void apply() {
- PivTransect trans=savedTrans_.clone();
- retrieveFlowParams(trans.getParams());
-
- CtuluLog log=new CtuluLog();
- log.setDesc(PivResource.getS("Reconditionnement du transect"));
- PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans, null);
- if (log.containsErrorOrSevereError()) {
- impl_.error(log.getResume());
- return;
+ retrieveFlowParams();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ CtuluLog log=new CtuluLog();
+ log.setDesc(PivResource.getS("Reconditionnement du transect"));
+ PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans[id], null);
+ if (log.containsErrorOrSevereError()) {
+ impl_.error(log.getResume());
+ return;
+ }
}
- PivTransect[] transects=impl_.getCurrentProject().getTransects();
- transects[idSel_]=trans;
- impl_.getCurrentProject().setTransects(transects);
+ // Pour forcer le rafraichissement d'\xE9cran
+ impl_.getCurrentProject().setTransects(trans);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
}
@Override
public boolean cancel() {
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- trans[idSel_]=savedTrans_;
- impl_.getCurrentProject().setTransects(trans);
+ impl_.getCurrentProject().setTransects(savedTrans_);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(false);
return super.cancel();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -20,7 +20,7 @@
import org.fudaa.fudaa.piv.PivResource;
/**
- * Une action pour saisir les parametres de calcul de d\xE9bit d'un transect.
+ * Une action pour saisir les parametres de calcul de d\xE9bit des transects selectectionn\xE9s.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
@@ -40,11 +40,12 @@
*/
@Override
public void actionPerformed(final ActionEvent _e) {
- int idSel=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getMinIndex();
+ int[] selIds=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getSelectedIndex();
- PivTransectParamPanel pn=new PivTransectParamPanel(impl, idSel);
+ PivTransectParamPanel pn=new PivTransectParamPanel(impl);
+ pn.setSelected(selIds);
- pn.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ pn.afficheModale(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
}
@Override
@@ -59,7 +60,7 @@
if (cq==impl.get2dFrame().getVisuPanel().getRealView().getTransectLayer() &&
((ZCalqueLigneBriseeEditable)cq).getLayerSelection() !=null &&
- ((ZCalqueLigneBriseeEditable)cq).getLayerSelection().getNbSelectedIndex()==1) {
+ !((ZCalqueLigneBriseeEditable)cq).getLayerSelection().isEmpty()) {
b=true;
}
super.setEnabled(b);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-06-16 13:08:18
|
Revision: 9131
http://sourceforge.net/p/fudaa/svn/9131
Author: bmarchan
Date: 2015-06-16 13:08:15 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Fix : Pb de niveau d'eau sur les profils en 3D.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-05-12 13:29:25 UTC (rev 9130)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2015-06-16 13:08:15 UTC (rev 9131)
@@ -62,10 +62,10 @@
double zniv_;
double ratio_;
- public DischargeModel(PivTransect _trans, PivFlowResults _res, double _zniv) {
+ public DischargeModel(PivTransect _trans, PivFlowResults _res) {
res_=_res;
trans_=_trans;
- zniv_=_zniv;
+ zniv_=_res.getWaterElevation();
double lgArrowMax=Double.NEGATIVE_INFINITY;
double vx;
@@ -240,7 +240,7 @@
PivFlowResults[] res=impl_.getCurrentProject().getFlowResults();
if (res!=null) {
for (int i=0; i<_isels.length; i++) {
- DischargeModel mdl=new DischargeModel(transects[_isels[i]],res[_isels[i]], impl_.getCurrentProject().getOrthoParameters().getResolution());
+ DischargeModel mdl=new DischargeModel(transects[_isels[i]],res[_isels[i]]);
pnGraph_.addData(mdl);
pnGraph_.setDataRenderer(i+_isels.length, disRenderer_);
}
Modified: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2015-05-12 13:29:25 UTC (rev 9130)
+++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2015-06-16 13:08:15 UTC (rev 9131)
@@ -45,7 +45,7 @@
Choisir 2 points diff\xE9rents=Please choose 2 different points
Choix de la variable=Variable choice
Choix du segment=Segment choice
-Clic gauche \: Rotation de la vue\nCtrl+clic gauche \: D\xE9placement de la vue\nShift+clic gauche \: Zoom de la vue=Left click \: View rotation\nLeft Ctrl+click \: View pan\nLeft Shift+click \: View zoom
+Clic gauche \: Rotation de la vue\nCtrl+clic gauche \: D\xE9placement de la vue\nShift+clic gauche \: Zoom de la vue=Left click \: View rotation\nCtrl+Left click \: View pan\nShift+Left click \: View zoom
Coefficient de vitesse=Velocity coefficient
Construction des noeuds=Nodes construction
Construction des points=Points construction
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-05-11 21:41:50
|
Revision: 9127
http://sourceforge.net/p/fudaa/svn/9127
Author: deniger
Date: 2015-05-11 21:41:48 +0000 (Mon, 11 May 2015)
Log Message:
-----------
dev
Removed Paths:
-------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/sig/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-05-11 21:41:11
|
Revision: 9126
http://sourceforge.net/p/fudaa/svn/9126
Author: deniger
Date: 2015-05-11 21:41:09 +0000 (Mon, 11 May 2015)
Log Message:
-----------
dev
Modified Paths:
--------------
trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigGrillePalette.java
Modified: trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigGrillePalette.java
===================================================================
--- trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigGrillePalette.java 2015-05-11 21:39:31 UTC (rev 9125)
+++ trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigGrillePalette.java 2015-05-11 21:41:09 UTC (rev 9126)
@@ -42,6 +42,7 @@
import org.fudaa.ebli.controle.BSelecteurTargetInterface;
import org.fudaa.ebli.controle.BSelecteurTextField;
import org.fudaa.ebli.geometrie.GrBoite;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.ressource.EbliResource;
/**
@@ -49,10 +50,8 @@
* @version $Id: FSigGrillePalette.java,v 1.2 2007-04-16 16:35:35 deniger Exp $
*/
@SuppressWarnings("serial")
-public final class FSigGrillePalette extends EbliActionPaletteAbstract implements
+public final class FSigGrillePalette extends EbliActionPaletteAbstract implements BSelecteurTargetInterface {
-BSelecteurTargetInterface {
-
ZEbliCalquesPanel panel_;
final ZCalqueGrille target_;
@@ -63,8 +62,7 @@
*/
FSigGrillePalette(final ZCalqueGrille _target, final ZEbliCalquesPanel _panel) {
super(EbliResource.EBLI.getString("Repere"), EbliResource.EBLI.getIcon("repere"),
-
- "CHANGE_REFERENCE");
+ "CHANGE_REFERENCE");
target_ = _target;
panel_ = _panel;
}
@@ -95,8 +93,8 @@
}
BuComboBox createAxeComboBox() {
- return new BuComboBox(new String[] { EbliLib.getS("Graduations manuelles: nombre"),
- EbliLib.getS("Graduations manuelles: longueur"), EbliLib.getS("Graduations automatiques: Nombre") });
+ return new BuComboBox(new String[]{EbliLib.getS("Graduations manuelles: nombre"),
+ EbliLib.getS("Graduations manuelles: longueur"), EbliLib.getS("Graduations automatiques: Nombre")});
}
/**
@@ -142,9 +140,8 @@
void updateMainGraduationType() {
final int selectedIndex = cbGraduationMode_.getSelectedIndex();
setProperty(propMainGraduationModeAuto_, selectedIndex >= 2);
- setProperty(propMainGraduationModeLength_, Boolean.valueOf(selectedIndex == 1 ||
-
- selectedIndex == 3));
+ setProperty(propMainGraduationModeLength_, Boolean.valueOf(selectedIndex == 1
+ || selectedIndex == 3));
if (selectedIndex == 0 || selectedIndex == 2) {
layoutCardX_.show(pnMainGraduation_, CHOOSE_GRADUATION_NB);
} else if (selectedIndex == 1 || selectedIndex == 3) {
@@ -155,7 +152,7 @@
void updateSousGraduation() {
tfMinorGraduation_.setEnabled(cbShowMinorGraduation_.isSelected() && target_.isDrawX()
- && !target_.isModeAutomatiqueX());
+ && !target_.isModeAutomatiqueX());
}
protected JPanel createPanel() {
@@ -165,12 +162,8 @@
cbShowAxe_.setText(titleCbShowAxe_);
cbGraduationMode_ = createAxeComboBox();
- final boolean auto = ((Boolean)
-
- target_.getProperty(propMainGraduationModeAuto_)).booleanValue();
- final boolean length = ((Boolean)
-
- target_.getProperty(propMainGraduationModeLength_)).booleanValue();
+ final boolean auto = ((Boolean) target_.getProperty(propMainGraduationModeAuto_)).booleanValue();
+ final boolean length = ((Boolean) target_.getProperty(propMainGraduationModeLength_)).booleanValue();
if (auto) {
cbGraduationMode_.setSelectedIndex(2);
} else {
@@ -178,8 +171,8 @@
}
cbGraduationMode_.addItemListener(new ItemListener() {
/**
- *
- */
+ *
+ */
@Override
public void itemStateChanged(final ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
@@ -192,8 +185,7 @@
pnMainGraduation_ = new BuPanel(layoutCardX_);
final BuPanel mainPanel = new BuTitledPanel(cbShowAxe_, new BuGridLayout(2, 5, 5, true,
-
- false, true, true, true));
+ false, true, true, true));
cbShowAxe_.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent _e) {
@@ -209,18 +201,14 @@
final BuTextField tfGraduationNb = (BuTextField) selecteurTextField.getComponents()[0];
tfGraduationNb.setStringValidator(BuStringValidator.INTEGER);
tfGraduationNb.setValueValidator(BuValueValidator.MULTI(BuValueValidator.INTEGER,
-
- BuValueValidator.MINMAX(0, 5000)));
+ BuValueValidator.MINMAX(0, 5000)));
selecteurTextField.updateFromTarget();
// tfGraduationNb.setColumns(5);
pnMainGraduation_.add(tfGraduationNb, CHOOSE_GRADUATION_NB);
selecteurTextField = new BSelecteurTextField(propMainGraduationLength_,
-
- BuValueValidator.DOUBLE);
+ BuValueValidator.DOUBLE);
selecteurTextField.setSelecteurTarget(FSigGrillePalette.this);
- final BuTextField tfMainGraduationLength = (BuTextField)
-
- selecteurTextField.getComponents()[0];
+ final BuTextField tfMainGraduationLength = (BuTextField) selecteurTextField.getComponents()[0];
selecteurTextField.updateFromTarget();
pnMainGraduation_.add(tfMainGraduationLength, CHOOSE_GRADUATION_LENGTH);
// --on affiche le manuel 1 par defaut --//
@@ -231,9 +219,8 @@
cbShowMinorGraduation_ = selectCb.getCb();
cbShowMinorGraduation_.setText(EbliLib.getS("Dessiner les sous-graduations"));
selecteurTextField = new BSelecteurTextField(propMinorGraduationNb_,
+ BuValueValidator.INTEGER);
- BuValueValidator.INTEGER);
-
selecteurTextField.setSelecteurTarget(FSigGrillePalette.this);
tfMinorGraduation_ = (BuTextField) selecteurTextField.getComponents()[0];
tfMinorGraduation_.setStringValidator(BuStringValidator.INTEGER);
@@ -283,9 +270,7 @@
@Override
public void actionPerformed(final ActionEvent _e) {
final JDialog d = new JDialog(CtuluLibSwing.getFrameAncestorHelper(target_));
- final BSelecteurReduitFonteNewVersion ft = new
-
- BSelecteurReduitFonteNewVersion(btFont.getFont(), d);
+ final BSelecteurReduitFonteNewVersion ft = new BSelecteurReduitFonteNewVersion(btFont.getFont(), d);
ft.setTarget(target_);
d.setContentPane(ft.getComponent());
d.setModal(true);
@@ -304,9 +289,7 @@
* @param pn
* @param lineConf
*/
- private void installTraceLigne(final BuPanel pn, final ZCalqueAffichageDonneesLigneConfigure lineConf)
-
- {
+ private void installTraceLigne(final BuPanel pn, final ZCalqueAffichageDonneesLigneConfigure lineConf) {
final BSelecteurInterface[] jc = lineConf.createSelecteurs();
pn.add(new JLabel(lineConf.getTitle()));
final JComponent[] components = jc[0].getComponents();
@@ -332,7 +315,7 @@
* @param tfMaxY
*/
public ZoomContainer(final BuTextField tfMinX, final BuTextField tfMaxX, final BuTextField tfMinY,
- final BuTextField tfMaxY) {
+ final BuTextField tfMaxY) {
super();
this.tfMinX = tfMinX;
this.tfMaxX = tfMaxX;
@@ -356,7 +339,7 @@
return (maxX != null && maxY != null && minX != null && minY != null);
}
- protected void applyToPanel() {
+ protected void applyToPanel(boolean zoomX) {
if (isAllSet()) {
final Double minx = (Double) tfMinX.getValue();
final Double miny = (Double) tfMinY.getValue();
@@ -364,29 +347,46 @@
Double maxy = (Double) tfMaxY.getValue();
final double deltax = Math.abs(maxx - minx);
final double deltay = Math.abs(maxy - miny);
- if (deltay > deltax) {
- maxx = Double.valueOf(minx.doubleValue() + deltay);
- } else if (deltax > deltay) {
- maxy = Double.valueOf(miny.doubleValue() + deltax);
- }
- target_.changeZoom(minx, miny, maxx, maxy);
+ /*
+ if (deltay > deltax) {
+ maxx = Double.valueOf(minx.doubleValue() + deltay);
+ } else if (deltax > deltay) {
+ maxy = Double.valueOf(miny.doubleValue() + deltax);
+ }
+ */
+ target_.getVue().changeRepereZoom(target_, new GrBoite(new GrPoint(minx, miny, 0), new GrPoint(maxx, maxy, 0)), 0, 0, 0, false, false, zoomX);
+ //target_.changeZoom(minx, miny, maxx, maxy);
}
}
}
private BuPanel createZoom() {
- final BuPanel select = new BuPanel(new BuGridLayout(3, 3, 3, false, false, false, false, false));
+ final BuPanel select = new BuPanel(new BuGridLayout(4, 3, 3, false, false, false, false, false));
select.add(new BuLabel(EbliLib.getS("")));
select.add(new BuLabel(EbliLib.getS("Min")));
select.add(new BuLabel(EbliLib.getS("Max")));
+ select.add(new BuLabel(EbliLib.getS("")));
+
select.add(new BuLabel(EbliLib.getS("X")));
final BuTextField tfMinX = addDoubleText(select);
final BuTextField tfMaxX = addDoubleText(select);
+
+ final BuButton btZoomX = new BuButton(EbliLib.getS("Appliquer le zoom sur X"));
+ btZoomX.setIcon(EbliResource.EBLI.getToolIcon("zoom-selection"));
+ btZoomX.setEnabled(true);
+ select.add(btZoomX);
+
select.add(new BuLabel(EbliLib.getS("Y")));
final BuTextField tfMinY = addDoubleText(select);
final BuTextField tfMaxY = addDoubleText(select);
+
+ final BuButton btZoomY = new BuButton(EbliLib.getS("Appliquer le zoom sur Y"));
+ btZoomY.setIcon(EbliResource.EBLI.getToolIcon("zoom-selection"));
+ btZoomY.setEnabled(true);
+ select.add(btZoomY);
+
final ZoomContainer container = new ZoomContainer(tfMinX, tfMaxX, tfMinY, tfMaxY);
final PropertyChangeListener listener = new PropertyChangeListener() {
@@ -395,6 +395,23 @@
container.updateFromView();
}
};
+
+ btZoomX.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ container.applyToPanel(true);
+ }
+ });
+
+ btZoomY.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ container.applyToPanel(false);
+ }
+ });
+
panel_.getVueCalque().addPropertyChangeListener("repere", listener);
// to update the textfields at construction
container.updateFromView();
@@ -402,20 +419,9 @@
final BuPanel zoom = new BuPanel(new BuVerticalLayout(3, false, false));
zoom.setBorder(CtuluLibSwing.createTitleBorder(EbliLib.getS("Changer le zoom")));
zoom.add(select);
- final BuButton bt = new BuButton(EbliLib.getS("Appliquer le zoom"));
- bt.setIcon(EbliResource.EBLI.getToolIcon("zoom-selection"));
- bt.setEnabled(true);
- bt.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(final ActionEvent _e) {
- container.applyToPanel();
- }
- });
- zoom.add(bt);
final BuButton btRestaurer = new BuButton(EbliResource.EBLI.getIcon("restore"),
-
- EbliResource.EBLI.getString("Restaurer"));
+ EbliResource.EBLI.getString("Restaurer"));
btRestaurer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent _e) {
@@ -443,18 +449,18 @@
}
/**
- *
- */
+ *
+ */
@Override
public Object getProperty(final String _key) {
return target_.getProperty(_key);
}
/**
- *
- */
+ *
+ */
@Override
public boolean setProperty(final String _key, final Object prop) {
return target_.setProperty(_key, prop);
}
-}
\ No newline at end of file
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-05-11 21:39:33
|
Revision: 9125
http://sourceforge.net/p/fudaa/svn/9125
Author: deniger
Date: 2015-05-11 21:39:31 +0000 (Mon, 11 May 2015)
Log Message:
-----------
dev
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java 2015-05-11 21:33:18 UTC (rev 9124)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java 2015-05-11 21:39:31 UTC (rev 9125)
@@ -1182,7 +1182,7 @@
}
}
- public BVueCalque getVue_() {
+ public BVueCalque getVue() {
return vue_;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-05-11 21:33:21
|
Revision: 9124
http://sourceforge.net/p/fudaa/svn/9124
Author: deniger
Date: 2015-05-11 21:33:18 +0000 (Mon, 11 May 2015)
Log Message:
-----------
dev
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/pom.xml
Removed Paths:
-------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/ebli/
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/zoom/
Modified: trunk/soft/fudaa-prepro/ui/pom.xml
===================================================================
--- trunk/soft/fudaa-prepro/ui/pom.xml 2015-05-11 21:32:55 UTC (rev 9123)
+++ trunk/soft/fudaa-prepro/ui/pom.xml 2015-05-11 21:33:18 UTC (rev 9124)
@@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
- <fudaa-business.version>1.6-SNAPSHOT</fudaa-business.version>
+ <!--<fudaa-business.version>1.6-SNAPSHOT</fudaa-business.version>-->
<project.build.sourceEncoding>ISO-8859-15</project.build.sourceEncoding>
</properties>
<parent>
@@ -61,10 +61,9 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.fudaa.business.fudaa-ef</groupId>
- <artifactId>ef-core</artifactId>
- <version>${fudaa-business.version}</version>
- </dependency>
+ <groupId>org.fudaa.business.fudaa-ef</groupId>
+ <artifactId>ef-core</artifactId>
+ </dependency>
</dependencies>
<build>
<plugins>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2015-05-11 21:32:57
|
Revision: 9123
http://sourceforge.net/p/fudaa/svn/9123
Author: deniger
Date: 2015-05-11 21:32:55 +0000 (Mon, 11 May 2015)
Log Message:
-----------
dev
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java
Added Paths:
-----------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/AxeZoomProcessor.java
Copied: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/AxeZoomProcessor.java (from rev 9122, trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/zoom/AxeZoomProcessor.java)
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/AxeZoomProcessor.java (rev 0)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/AxeZoomProcessor.java 2015-05-11 21:32:55 UTC (rev 9123)
@@ -0,0 +1,57 @@
+package org.fudaa.ebli.calque;
+
+import java.awt.Insets;
+
+import org.fudaa.ebli.calque.BVueCalque;
+import org.fudaa.ebli.geometrie.GrBoite;
+import org.fudaa.ebli.repere.RepereEvent;
+/**
+ * Redimensionnement du calque.
+ * @author Adrien
+ *
+ */
+public class AxeZoomProcessor {
+
+
+ public RepereEvent process(final Object _source, final GrBoite _boite, final double _rz, final int mrgHorizontal, final int mrgVertical,
+ boolean _rapide, boolean _changeZ, BVueCalque vue, boolean zoomX) {
+
+
+ final Insets insets = vue.getInsets();
+ final double wd = _boite.getDeltaX();
+ final double hd = _boite.getDeltaY();
+ int margeGauche = mrgHorizontal;
+ int margeDroite = mrgHorizontal;
+ int margeHaut = mrgVertical;
+ int margeBas = mrgVertical;
+
+ if (vue.getCalqueInsets() != null) {
+ //-- voir si le graphe ca joue mieux --//
+ //vue.getCalqueInsets().left = 0;
+
+ margeGauche = vue.getCalqueInsets().left;
+ margeDroite = vue.getCalqueInsets().right;
+ margeHaut = vue.getCalqueInsets().top;
+ margeBas = vue.getCalqueInsets().bottom;
+ }
+
+ final double wv = vue.getWidth() - insets.left - insets.right - margeGauche - margeDroite;
+ final double hv = vue.getHeight() - insets.top - insets.bottom - margeHaut - margeBas;
+ final RepereEvent repere = new RepereEvent(_source, _rapide);
+ // final double e = Math.max(wd / wv, hd / hv);
+ double e = zoomX?(wd / wv):hd / hv;
+ repere.ajouteTransformation(RepereEvent.ZOOM, e, false);
+ vue.margeXCentre = (wv - wd / e) / 2;
+ repere.ajouteTransformation(RepereEvent.TRANS_X, _boite.o_.x_ / e - vue.margeXCentre - margeGauche, false);
+ vue.margeYCentre = (hv - hd / e) / 2;
+ repere.ajouteTransformation(RepereEvent.TRANS_Y, _boite.o_.y_ / e - vue.margeYCentre - margeBas, false);
+ repere.ajouteTransformation(RepereEvent.TRANS_Z, 0., false);
+ repere.ajouteTransformation(RepereEvent.ROT_X, 0., false);
+ repere.ajouteTransformation(RepereEvent.ROT_Y, 0., false);
+ if (_changeZ) {
+ repere.ajouteTransformation(RepereEvent.ROT_Z, _rz, false);
+ }
+ return repere;
+ }
+
+}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java 2015-04-23 12:50:42 UTC (rev 9122)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java 2015-05-11 21:32:55 UTC (rev 9123)
@@ -69,8 +69,8 @@
boolean noRepaintTask_;
final RepereMouseKeyController repereController_;
GrVecteur vect_ = new GrVecteur();
- private double margeXCentre;
- private double margeYCentre;
+ public double margeXCentre;
+ public double margeYCentre;
public BVueCalque(final BCalque _c) {
repere_ = new double[4][3];
@@ -291,6 +291,21 @@
changeRepere(_source, _boite, _rz, _mrg, _mrg, _rapide, changeZ);
}
+ public void changeRepereZoom(final Object _source, final GrBoite _boite, final double _rz, final int mrgHorizontal, final int mrgVertical,
+ final boolean _rapide, final boolean _changeZ, boolean zoomX) {
+ if (_boite == null) {
+ return;
+ }
+ if (!checkBoite(_boite, true, true)) {
+ return;
+ }
+ AxeZoomProcessor redi = new AxeZoomProcessor();
+ RepereEvent repere = redi.process(_source, _boite, _rz, mrgHorizontal, mrgVertical, _rapide, _changeZ, this, zoomX);
+
+ repereModifie(repere);
+
+ }
+
public void changeRepere(final Object _source, final GrBoite _boite, final double _rz, final int mrgHorizontal, final int mrgVertical,
final boolean _rapide, final boolean _changeZ) {
if (_boite == null) {
@@ -309,6 +324,7 @@
int margeBas = mrgVertical;
if (insets_ != null) {
+
margeGauche = insets_.left;
margeDroite = insets_.right;
margeHaut = insets_.top;
@@ -842,4 +858,8 @@
public Cursor getDefaultCursor() {
return new Cursor(Cursor.CROSSHAIR_CURSOR);
}
+
+ public Insets getCalqueInsets() {
+ return insets_;
+ }
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java 2015-04-23 12:50:42 UTC (rev 9122)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGrille.java 2015-05-11 21:32:55 UTC (rev 9123)
@@ -1,14 +1,14 @@
/*
* @file BCalqueGrille.java
- *
+ *
* @creation 1998-09-03
- *
+ *
* @modification $Date: 2008-02-20 10:14:40 $
- *
+ *
* @license GNU General Public License 2
- *
+ *
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- *
+ *
* @mail de...@fu...
*/
package org.fudaa.ebli.calque;
@@ -36,12 +36,13 @@
/**
* Un calque d'affichage d'une grille.
- *
+ *
* @version $Revision: 1.11.6.1 $ $Date: 2008-02-20 10:14:40 $ by $Author: bmarchan $
* @author Guillaume Desnoix
*/
@SuppressWarnings("serial")
public class ZCalqueGrille extends ZCalqueAffichageDonnees {
+
/**
* caratere visible de l'axe x
*/
@@ -153,7 +154,7 @@
}
private void computeXValues(final GrBoite _zv, final Graphics2D _g, final TDoubleArrayList _xValue,
- final TIntArrayList _xStrWidth, final List _xString) {
+ final TIntArrayList _xStrWidth, final List _xString) {
final Font font = getFont();
if (font != null) {
@@ -161,7 +162,9 @@
}
final FontMetrics fm = font == null ? null : _g.getFontMetrics(font);
TickIterator it = createXTickIterator(_zv);
- if (it == null) { return; }
+ if (it == null) {
+ return;
+ }
// _it=
while (it.hasNext()) {
final double x = it.currentValue();
@@ -180,7 +183,7 @@
}
private double computeYValues(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _yValue,
- final TIntArrayList _yStrWidth, final List _yString) {
+ final TIntArrayList _yStrWidth, final List _yString) {
final Font font = getFont();
if (font != null) {
_g.setFont(font);
@@ -189,7 +192,9 @@
double yMax = 0;
TickIterator it = createYIterator(_zv);
- if (it == null) { return 0; }
+ if (it == null) {
+ return 0;
+ }
while (it.hasNext()) {
@@ -244,7 +249,7 @@
}
private void drawXAxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue,
- final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, final double _maxXForAxe) {
+ final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, final double _maxXForAxe) {
int minXDraw = _absyAxe;
int maxXDraw = (int) _maxXForAxe;
@@ -254,8 +259,8 @@
}
private void drawYaxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue,
- final TDoubleArrayList _yValue, final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe,
- final double _minYForAxe) {
+ final TDoubleArrayList _yValue, final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe,
+ final double _minYForAxe) {
int minYDraw = _ordxAxe;
int maxYDraw = (int) _minYForAxe;
@@ -300,7 +305,7 @@
}
void fillXZone(final Graphics2D _g, final GrBoite _targetBoite, final int _absyAxe, final int _ordxAxe,
- final GrBoite _ecranBoite) {
+ final GrBoite _ecranBoite) {
if (_ecranBoite.getMaxY() > _ordxAxe) {
_g.setColor(vue_.getBackground());
_g.fillRect(_absyAxe, _ordxAxe, (int) _targetBoite.getMaxX() - _absyAxe, (int) _targetBoite.getMaxY() - _ordxAxe);
@@ -308,8 +313,8 @@
}
protected void drawYGraduations(final Graphics2D _g, final TDoubleArrayList _yValue, final TIntArrayList _yStrWidth,
- final List _yString, final GrMorphisme _versEcran, final int _marge, final int _absyAxe, final int _ordxAxe,
- final GrBoite _ecranBoite, final double _maxXForAxe) {
+ final List _yString, final GrMorphisme _versEcran, final int _marge, final int _absyAxe, final int _ordxAxe,
+ final GrBoite _ecranBoite, final double _maxXForAxe) {
final int nb = _yString.size();
final int tiret = getTiretLength();
final Font font = getFont();
@@ -324,7 +329,7 @@
tmp_.y_ = _yValue.getQuick(i);
tmp_.z_ = 0;
tmp_.autoApplique(_versEcran);
-
+
if (tmp_.y_ > _ordxAxe) {
continue;
}
@@ -357,8 +362,8 @@
}
private void drawXGraduations(final Graphics2D _g, final GrBoite _targetBoite, final TDoubleArrayList _xValue,
- final TIntArrayList _xStrWidth, final List _xString, final int _absyAxe, final int _ordxAxe,
- final GrBoite _ecranBoite, final double _minYForAxe, final int _ordXString) {
+ final TIntArrayList _xStrWidth, final List _xString, final int _absyAxe, final int _ordxAxe,
+ final GrBoite _ecranBoite, final double _minYForAxe, final int _ordXString) {
int idxStr = -1;
final GrMorphisme versEcran = getVersEcran();
@@ -372,7 +377,7 @@
tmp_.y_ = 0;
tmp_.z_ = 0;
tmp_.autoApplique(versEcran);
-
+
if (tmp_.x_ < _absyAxe) {
continue;
}
@@ -396,7 +401,7 @@
}
if (w > 0) {
final int start = (int) (tmp_.x_ - w / 2D);
- if ( start > idxStr + 1 && start + w < _targetBoite.getMaxX()) {
+ if (start > idxStr + 1 && start + w < _targetBoite.getMaxX()) {
_g.setColor(fg);
_g.drawString((String) _xString.get(i), start, _ordXString);
idxStr = start + w;
@@ -434,8 +439,8 @@
}
/**
- *
- */
+ *
+ */
@Override
public TraceLigneModel getLineModel(int _idx) {
return _idx == 0 ? super.ligneModel_ : traceSousGraduations_;
@@ -456,21 +461,51 @@
@Override
public Object getProperty(String _name) {
- if (GRID_VISIBLE.equals(_name)) { return Boolean.valueOf(gridDraw_); }
- if (AXIS_X_VISIBLE.equals(_name)) { return Boolean.valueOf(xDraw_); }
- if (AXIS_Y_VISIBLE.equals(_name)) { return Boolean.valueOf(yDraw_); }
- if (GRADUATION_X_MODE_AUTO.equals(_name)) { return Boolean.valueOf(xModeAuto_); }
- if (GRADUATION_Y_MODE_AUTO.equals(_name)) { return Boolean.valueOf(yModeAuto_); }
- if (MINOR_GRADUATION_Y_VISIBLE.equals(_name)) { return Boolean.valueOf(yMinorDraw_); }
- if (MINOR_GRADUATION_X_VISIBLE.equals(_name)) { return Boolean.valueOf(xMinorDraw_); }
- if (GRADUATION_X_MODE_LENGTH.equals(_name)) { return Boolean.valueOf(xModeLongueur_); }
- if (GRADUATION_Y_MODE_LENGTH.equals(_name)) { return Boolean.valueOf(yModeLongueur_); }
- if (GRADUATION_X_LENGTH.equals(_name)) { return Double.valueOf(xLength_); }
- if (GRADUATION_Y_LENGTH.equals(_name)) { return Double.valueOf(yLength_); }
- if (GRADUATION_X_NB.equals(_name)) { return Integer.valueOf(xNbGraduation_); }
- if (GRADUATION_Y_NB.equals(_name)) { return Integer.valueOf(yNbGraduation_); }
- if (MINOR_GRADUATION_X_NB.equals(_name)) { return Integer.valueOf(xMinorGraduationNb_); }
- if (MINOR_GRADUATION_Y_NB.equals(_name)) { return Integer.valueOf(yMinorGraduationNb_); }
+ if (GRID_VISIBLE.equals(_name)) {
+ return Boolean.valueOf(gridDraw_);
+ }
+ if (AXIS_X_VISIBLE.equals(_name)) {
+ return Boolean.valueOf(xDraw_);
+ }
+ if (AXIS_Y_VISIBLE.equals(_name)) {
+ return Boolean.valueOf(yDraw_);
+ }
+ if (GRADUATION_X_MODE_AUTO.equals(_name)) {
+ return Boolean.valueOf(xModeAuto_);
+ }
+ if (GRADUATION_Y_MODE_AUTO.equals(_name)) {
+ return Boolean.valueOf(yModeAuto_);
+ }
+ if (MINOR_GRADUATION_Y_VISIBLE.equals(_name)) {
+ return Boolean.valueOf(yMinorDraw_);
+ }
+ if (MINOR_GRADUATION_X_VISIBLE.equals(_name)) {
+ return Boolean.valueOf(xMinorDraw_);
+ }
+ if (GRADUATION_X_MODE_LENGTH.equals(_name)) {
+ return Boolean.valueOf(xModeLongueur_);
+ }
+ if (GRADUATION_Y_MODE_LENGTH.equals(_name)) {
+ return Boolean.valueOf(yModeLongueur_);
+ }
+ if (GRADUATION_X_LENGTH.equals(_name)) {
+ return Double.valueOf(xLength_);
+ }
+ if (GRADUATION_Y_LENGTH.equals(_name)) {
+ return Double.valueOf(yLength_);
+ }
+ if (GRADUATION_X_NB.equals(_name)) {
+ return Integer.valueOf(xNbGraduation_);
+ }
+ if (GRADUATION_Y_NB.equals(_name)) {
+ return Integer.valueOf(yNbGraduation_);
+ }
+ if (MINOR_GRADUATION_X_NB.equals(_name)) {
+ return Integer.valueOf(xMinorGraduationNb_);
+ }
+ if (MINOR_GRADUATION_Y_NB.equals(_name)) {
+ return Integer.valueOf(yMinorGraduationNb_);
+ }
return null;
}
@@ -480,8 +515,8 @@
}
/**
- *
- */
+ *
+ */
@Override
public String getSetTitle(int _idx) {
return EbliLib.getS(_idx == 0 ? "Graduations principales" : "Graduations mineures");
@@ -573,9 +608,9 @@
public boolean isDrawY() {
return yDraw_;
}
-
- public boolean isAxisPainted(){
- return isDrawX()|| isDrawY();
+
+ public boolean isAxisPainted() {
+ return isDrawX() || isDrawY();
}
public boolean isModeAutomatiqueX() {
@@ -606,22 +641,26 @@
@Override
public void paintAllInImage(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
- // super.paintAllInImage(_g, _versEcran, _versReel, _clipReel);
+ final GrBoite _clipReel) {
+ // super.paintAllInImage(_g, _versEcran, _versReel, _clipReel);
}
@Override
public void paintDonnees(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
GrBoite domaine = vue_.getAbstractCalque().getDomaine();
final GrBoite zv = _clipReel.intersectionXY(domaine);
- if (zv == null) { return; }
+ if (zv == null) {
+ return;
+ }
final GrBoite targetBoite = new GrBoite();
targetBoite.ajuste(0, 0, 0);
// la boite d'affichage
- if (!_versEcran.isSame(getVersEcran())) { return; }
+ if (!_versEcran.isSame(getVersEcran())) {
+ return;
+ }
targetBoite.ajuste(getWidth(), getHeight(), 0);
final Color old = _g.getColor();
final Font oldFont = _g.getFont();
@@ -652,6 +691,121 @@
// boolean rapide = isRapide();
final GrMorphisme versEcran = _versEcran;
final int tiret = getTiretLength();
+ //-- ahx: item 1.1.3 enlever espace inutile car le nouveau besoin est d'avoir un rep\xE8re qui tombe juste.
+ final int marge = 0;//1;
+ int absyAxe = (int) (targetBoite.getMinX() + yMax + 2 * marge + tiret);
+ final int margeBas = (font == null ? 0 : font.getSize()) + 2 * marge + tiret;
+
+ int margeToRemoveXAxe = (font == null ? 0 : font.getSize()) + 2 + tiret;
+ int ordxAxe = (int) (targetBoite.getMaxY() - margeToRemoveXAxe);
+ // la marge droite doit etre calculee pour afficher la derniere graduation.
+ //int margeDroit = getLastNonZero(xStrWidth) / 2 + 3;
+ int top = 1;//Math.max(3, font == null ? 3 : font.getSize());
+ //-- ahx: item 1.1.3 enlever espace inutile car le nouveau besoin est d'avoir un rep\xE8re qui tombe juste.
+ int left = absyAxe;//+ 5;
+ int bottom = margeBas;// + 5;
+ int right = 1;//Math.max(margeDroit, 3);
+ //the insets must be determined in order to keep the ratio w/h:
+ //int heightInsets = top + bottom;
+ //int widthInsets = right + left;
+ //CtuluRatio ratio = new CtuluRatio(vue_.getSize());
+ /*
+ if (ratio.toY(widthInsets) > heightInsets) {
+ top = (int) (ratio.toY(widthInsets) - bottom);
+ } else if (ratio.toX(heightInsets) > widthInsets) {
+ right = (int) (ratio.toX(heightInsets) - left);
+ }
+ */
+ vue_.setUserInsets(new Insets(top, left, bottom, right));
+ // we get again the domain after the userInsets modification
+ domaine = vue_.getAbstractCalque().getDomaine();
+ final GrBoite ecranBoite = domaine.applique(_versEcran);
+ //-- ahx: item 1.1.3 enlever espace inutile car le nouveau besoin est d'avoir un rep\xE8re qui tombe juste.
+ /*
+ if (ecranBoite.getMinX() - 5 > absyAxe) {
+ absyAxe = (int) (ecranBoite.getMinX() - 5);
+ }
+ if (ecranBoite.getMaxY() + 5 < ordxAxe) {
+ ordxAxe = (int) (ecranBoite.getMaxY() + 5);
+ }
+ */
+ if (isXPainted) {
+ fillXZone(_g, targetBoite, absyAxe, ordxAxe, ecranBoite);
+
+ }
+
+ // l'axe des x
+ final double maxXForAxe = ecranBoite.getMaxX() - marge;
+
+ // l'axe des y
+ final double minYForAxe = ecranBoite.getMinY() + marge;
+ // les graduation en x
+
+ final int ascent = fm == null ? 0 : fm.getAscent();
+ final int ordXString = ordxAxe + tiret + ascent;
+
+ //first y:
+ if (isYPainted) {
+ fillYZone(_g, targetBoite, absyAxe, ecranBoite);
+ drawYaxe(_g, zv, xValue, yValue, versEcran, absyAxe, ordxAxe, minYForAxe);
+ drawYGraduations(_g, yValue, yStrWidth, yString, versEcran, marge, absyAxe, ordxAxe, ecranBoite, maxXForAxe);
+ }
+
+ //then x
+ if (isXPainted) {
+ drawXAxe(_g, zv, xValue, versEcran, absyAxe, ordxAxe, maxXForAxe);
+ drawXGraduations(_g, targetBoite, xValue, xStrWidth, xString, absyAxe, ordxAxe, ecranBoite, minYForAxe,
+ ordXString);
+ }
+ _g.setColor(old);
+ _g.setFont(oldFont);
+ }
+
+ public void paintDonneesOLD(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
+ final GrBoite _clipReel) {
+ GrBoite domaine = vue_.getAbstractCalque().getDomaine();
+ final GrBoite zv = _clipReel.intersectionXY(domaine);
+
+ if (zv == null) {
+ return;
+ }
+ final GrBoite targetBoite = new GrBoite();
+ targetBoite.ajuste(0, 0, 0);
+ // la boite d'affichage
+
+ if (!_versEcran.isSame(getVersEcran())) {
+ return;
+ }
+ targetBoite.ajuste(getWidth(), getHeight(), 0);
+ final Color old = _g.getColor();
+ final Font oldFont = _g.getFont();
+ // la fonte
+ final Font font = getFont();
+ if (font != null) {
+ _g.setFont(font);
+ }
+ final FontMetrics fm = font == null ? null : _g.getFontMetrics(font);
+ final TDoubleArrayList xValue = new TDoubleArrayList(20);
+ final TIntArrayList xStrWidth = new TIntArrayList(20);
+ final List xString = new ArrayList(20);
+
+ final boolean isXPainted = xDraw_ && zv.getMinX() < zv.getMaxX() && xNbGraduation_ > 0;
+
+ if (isXPainted) {
+ computeXValues(zv, _g, xValue, xStrWidth, xString);
+ }
+ double yMax = 0;
+ final TDoubleArrayList yValue = new TDoubleArrayList(20);
+ final TIntArrayList yStrWidth = new TIntArrayList(20);
+ final List yString = new ArrayList(20);
+ final boolean isYPainted = yDraw_ && zv.getMinY() < zv.getMaxY() && yNbGraduation_ > 0;
+ if (isYPainted) {
+ yMax = computeYValues(_g, zv, yValue, yStrWidth, yString);
+ }
+
+ // boolean rapide = isRapide();
+ final GrMorphisme versEcran = _versEcran;
+ final int tiret = getTiretLength();
final int marge = 1;
int absyAxe = (int) (targetBoite.getMinX() + yMax + 2 * marge + tiret);
final int margeBas = (font == null ? 0 : font.getSize()) + 2 * marge + tiret;
@@ -696,29 +850,32 @@
final int ascent = fm == null ? 0 : fm.getAscent();
final int ordXString = ordxAxe + tiret + ascent;
- //first y:
-
+ //first y:
if (isYPainted) {
fillYZone(_g, targetBoite, absyAxe, ecranBoite);
drawYaxe(_g, zv, xValue, yValue, versEcran, absyAxe, ordxAxe, minYForAxe);
drawYGraduations(_g, yValue, yStrWidth, yString, versEcran, marge, absyAxe, ordxAxe, ecranBoite, maxXForAxe);
}
-
+
//then x
if (isXPainted) {
drawXAxe(_g, zv, xValue, versEcran, absyAxe, ordxAxe, maxXForAxe);
drawXGraduations(_g, targetBoite, xValue, xStrWidth, xString, absyAxe, ordxAxe, ecranBoite, minYForAxe,
- ordXString);
+ ordXString);
}
_g.setColor(old);
_g.setFont(oldFont);
}
int getLastNonZero(TIntArrayList l) {
- if (l == null || l.isEmpty()) { return 0; }
+ if (l == null || l.isEmpty()) {
+ return 0;
+ }
for (int i = l.size() - 1; i >= 0; i--) {
int value = l.getQuick(i);
- if (value > 0) { return value; }
+ if (value > 0) {
+ return value;
+ }
}
return 0;
}
@@ -726,9 +883,8 @@
// Icon
/**
* Dessin de l'icone.
- *
- * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il
- * est ignore ici.
+ *
+ * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il est ignore ici.
* @param _g le graphics sur lequel dessiner l'icone
* @param _x lieu cible de l'icone (x)
* @param _y lieu cible de l'icone (y)
@@ -753,7 +909,8 @@
@Override
public void doPaintSelection(final Graphics2D _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran,
- final GrBoite _clipReel) {}
+ final GrBoite _clipReel) {
+ }
@Override
public EbliUIProperties saveUIProperties() {
@@ -871,11 +1028,13 @@
}
/**
- *
- */
+ *
+ */
@Override
public boolean setProperty(String _name, Object _value) {
- if (_value == null) { return false; }
+ if (_value == null) {
+ return false;
+ }
if (GRID_VISIBLE.equals(_name)) {
setDrawGrid((Boolean) _value);
return true;
@@ -967,7 +1126,9 @@
public void setXLength(final double _lenghtSteps) {
if (xLength_ != _lenghtSteps) {
double l = Math.abs(_lenghtSteps);
- if (CtuluLib.isZero(l)) { return; }
+ if (CtuluLib.isZero(l)) {
+ return;
+ }
double old = xLength_;
xLength_ = _lenghtSteps;
grilleChanged(GRADUATION_X_LENGTH, old, xLength_);
@@ -993,7 +1154,9 @@
public void setYLength(final double _lenghtSteps) {
if (yLength_ != _lenghtSteps) {
double l = Math.abs(_lenghtSteps);
- if (CtuluLib.isZero(l)) { return; }
+ if (CtuluLib.isZero(l)) {
+ return;
+ }
double old = yLength_;
yLength_ = _lenghtSteps;
grilleChanged(GRADUATION_Y_LENGTH, old, yLength_);
@@ -1019,4 +1182,8 @@
}
}
+ public BVueCalque getVue_() {
+ return vue_;
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2015-04-23 12:50:45
|
Revision: 9122
http://sourceforge.net/p/fudaa/svn/9122
Author: bmarchan
Date: 2015-04-23 12:50:42 +0000 (Thu, 23 Apr 2015)
Log Message:
-----------
Message de conditions pour certaines actions de modification
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneDeplacementAction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneRotationAction.java
trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneDeplacementAction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneDeplacementAction.java 2015-04-23 10:34:56 UTC (rev 9121)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneDeplacementAction.java 2015-04-23 12:50:42 UTC (rev 9122)
@@ -9,8 +9,10 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+
import javax.swing.event.InternalFrameEvent;
import javax.swing.tree.TreeSelectionModel;
+
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.edition.BPaletteDeplacement;
import org.fudaa.ebli.calque.edition.ZCalqueDeplacementInteraction;
@@ -115,4 +117,14 @@
if (cqDep_!=null)
pnCalques_.setCalqueSelectionActif();
}
+
+ @Override
+ public String getEnableCondition() {
+ if (sceneEditor_!=null && sceneEditor_.getScene().isRestrictedToCalqueActif()) {
+ return EbliLib.getS("Un calque \xE9ditable doit \xEAtre selectionn\xE9");
+ }
+ else {
+ return super.getEnableCondition();
+ }
+ }
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneRotationAction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneRotationAction.java 2015-04-23 10:34:56 UTC (rev 9121)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneRotationAction.java 2015-04-23 12:50:42 UTC (rev 9122)
@@ -8,6 +8,7 @@
package org.fudaa.ebli.calque.action;
import javax.swing.tree.TreeSelectionModel;
+
import org.fudaa.ebli.calque.edition.BPaletteRotation;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.ebli.calque.edition.ZEditorInterface;
@@ -61,4 +62,14 @@
protected BPalettePanelInterface buildPaletteContent() {
return new BPaletteRotation(sceneEditor_,formatter_);
}
+
+ @Override
+ public String getEnableCondition() {
+ if (sceneEditor_!=null && sceneEditor_.getScene().isRestrictedToCalqueActif()) {
+ return EbliLib.getS("Un calque \xE9ditable doit \xEAtre selectionn\xE9");
+ }
+ else {
+ return super.getEnableCondition();
+ }
+ }
}
Modified: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
===================================================================
--- trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2015-04-23 10:34:56 UTC (rev 9121)
+++ trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2015-04-23 12:50:42 UTC (rev 9122)
@@ -907,3 +907,4 @@
Type Nuage de points=Points fog type
Mode contour=Contour mode
Mode densit\xE9=Density mode
+Un calque \xE9ditable doit \xEAtre selectionn\xE9=An editable layer must be selected
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|