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