From: <bma...@us...> - 2011-09-26 18:21:54
|
Revision: 6449 http://fudaa.svn.sourceforge.net/fudaa/?rev=6449&view=rev Author: bmarchan Date: 2011-09-26 18:21:47 +0000 (Mon, 26 Sep 2011) Log Message: ----------- Add : Calque de visualisation d'un transect 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/PivOrthoGRPAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectReader.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectWriter.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/metier/PivTransect.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.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 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -14,6 +14,7 @@ import javax.swing.JMenu; import javax.units.NonSI; import javax.units.SI; +import org.fudaa.ctulu.gis.GISAttributeDouble; import org.fudaa.ctulu.gis.GISAttributeString; import org.fudaa.ebli.commun.EbliCoordinateDefinition; import org.fudaa.ebli.calque.ZCalqueFleche; @@ -51,6 +52,7 @@ import org.fudaa.fudaa.piv.layer.PivOriginalImageModel; import org.fudaa.fudaa.piv.layer.PivOrthoPointsModel; import org.fudaa.fudaa.piv.layer.PivRealImageModel; +import org.fudaa.fudaa.piv.layer.PivTransectModel; import org.fudaa.fudaa.piv.layer.PivTransfImageModel; import org.fudaa.fudaa.piv.layer.PivVelResultsModel; import org.fudaa.fudaa.piv.metier.PivGrid; @@ -96,6 +98,14 @@ return false; } }; + + /** 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) { + @Override + public String getID() { + return "ATT_REAL_Z"; + } + }; PivProject projet; @@ -112,7 +122,10 @@ ZCalqueEditionInteraction cqCntGrilleEdition_; /** Le calque d'edition des points de r\xE9f\xE9rence. */ ZCalqueEditionInteraction cqGRPEdition_; + /** L'affichage des r\xE9sultats moyenn\xE9s */ ZCalqueFleche cqVelResults; + /** L'affichage d'un transect */ + ZCalqueLigneBriseeEditable cqTransect_; PivIASAModel mdlIASA; PivCntGridModel mdlCntGrid; @@ -124,6 +137,7 @@ ZModelePointEditable mdlGrid; PivControlPointsModel mdlRealControlPoints; PivVelResultsModel mdlVelResults; + PivTransectModel mdlTransect; ZEditorDefault editGeom_; @@ -202,6 +216,9 @@ else if("velResults".equals(_prop)) { mdlVelResults.update(); } + else if ("transect".equals(_prop)) { + mdlTransect.update(); + } getVueCalque().repaint(); } @@ -323,6 +340,8 @@ else if (_mode == MODE_REAL_VIEW) { cqRealOrthoPoints_.setLegende(null); cqRealOrthoPoints_.setLegende(getCqLegend()); + + addCalque(cqTransect_); if (projet!=null && projet.getVelResults()!=null) { cqVelResults.setLegende(null); cqVelResults.setLegende(getCqLegend()); @@ -330,6 +349,7 @@ } addCalque(cqRealOrthoPoints_); addCalque(cqRealImg_); + actRealView_.putValue(Action.SELECTED_KEY, true); getCqLegend().enleve(cqIASA_); @@ -471,6 +491,7 @@ // Layer des vitesses resultantes. cqVelResults = new ZCalqueFleche() { + @Override protected String getFlecheUnit() { return "m/s"; } @@ -486,6 +507,14 @@ } } }); + + cqTransect_= new ZCalqueLigneBriseeEditable(); + cqTransect_.setTitle(PivResource.getS("Transect")); + cqTransect_.setName("cqTransect"); + cqTransect_.setFormeEnable(new int[]{DeForme.LIGNE_BRISEE}); + cqTransect_.setLineModel(1, new TraceLigneModel(TraceLigne.POINTILLE, 1, Color.YELLOW.darker())); + cqTransect_.setIconModel(1, new TraceIconModel(TraceIcon.LOSANGE_PLEIN, 3, Color.YELLOW.darker())); + cqTransect_.setDestructible(false); } /** @@ -582,6 +611,10 @@ cqVelResults.setModele(mdlVelResults); cqVelResults.setVisible(false); + mdlTransect=new PivTransectModel(); + mdlTransect.setProjet(projet); + cqTransect_.modele(mdlTransect); + if (projet.hasTransfImages()) setViewMode(MODE_TRANSF_VIEW); else if (projet.hasPgmImages()) 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 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -86,7 +86,7 @@ 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(PivOrthoPointsModel.ATT_IND_ZR, i); + Double z = (Double) _data.getValue(PivVisuPanel.ATT_IND_ZR, i); realPts[i] = new GrPoint(x.doubleValue(), y.doubleValue(), z.doubleValue()); for (int j = 0; j < i; j++) { if (realPts[j].distance(realPts[i]) == 0) { Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectReader.java 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectReader.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -91,7 +91,7 @@ // Sortie normale catch (final EOFException e) { ret=new PivTransect(); - ret.setTransect(pl); + ret.setStraight(pl); } 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/io/PivTransectWriter.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectWriter.java 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivTransectWriter.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -25,7 +25,7 @@ return; } - GrPolyligne pl = ((PivTransect)_o).getTransect(); + GrPolyligne pl = ((PivTransect)_o).getStraight(); final PrintWriter writer = new PrintWriter(out_); 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 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -40,14 +40,6 @@ return "ATT_REAL_Y"; } }; - /** 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) { - - @Override - public String getID() { - return "ATT_REAL_Z"; - } - }; /** L'attribut utilis\xE9 pour la saisie de X origine. */ public static final GISAttributeDouble ATT_IND_XI=new GISAttributeDouble(PivResource.getS("X img"),true) { @@ -82,11 +74,11 @@ GISAttribute[] attrs = null; type_=_type; if (type_ == PivVisuPanel.MODE_ORIGINAL_VIEW) { - attrs = new GISAttribute[]{ATT_IND_XR, ATT_IND_YR, ATT_IND_ZR, PivVisuPanel.ATT_LABEL}; + attrs = new GISAttribute[]{ATT_IND_XR, ATT_IND_YR, PivVisuPanel.ATT_IND_ZR, PivVisuPanel.ATT_LABEL}; } else { - attrs = new GISAttribute[]{ATT_IND_ZR, ATT_IND_XI, ATT_IND_YI, PivVisuPanel.ATT_LABEL}; - getGeomData().setAttributeIsZ(ATT_IND_ZR); + attrs = new GISAttribute[]{PivVisuPanel.ATT_IND_ZR, ATT_IND_XI, ATT_IND_YI, PivVisuPanel.ATT_LABEL}; + getGeomData().setAttributeIsZ(PivVisuPanel.ATT_IND_ZR); } getGeomData().setAttributes(attrs, null); } @@ -116,7 +108,7 @@ if (type_ == PivVisuPanel.MODE_ORIGINAL_VIEW) { GISAttributeModelDoubleArray xrData = (GISAttributeModelDoubleArray) ATT_IND_XR.createDataForGeom(null, pts.length); GISAttributeModelDoubleArray yrData = (GISAttributeModelDoubleArray) ATT_IND_YR.createDataForGeom(null, pts.length); - GISAttributeModelDoubleArray zrData = (GISAttributeModelDoubleArray) ATT_IND_ZR.createDataForGeom(null, pts.length); + GISAttributeModelDoubleArray zrData = (GISAttributeModelDoubleArray) PivVisuPanel.ATT_IND_ZR.createDataForGeom(null, pts.length); GISAttributeModelObjectArray lbData = (GISAttributeModelObjectArray) PivVisuPanel.ATT_LABEL.createDataForGeom(null, pts.length); CoordinateSequence seq = GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(pts.length, 2); @@ -136,7 +128,7 @@ // Les valeurs d'attributs zp.getModel(ATT_IND_XR).setObject(0, xrData, null); zp.getModel(ATT_IND_YR).setObject(0, yrData, null); - zp.getModel(ATT_IND_ZR).setObject(0, zrData, null); + zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(0, zrData, null); zp.getModel(PivVisuPanel.ATT_LABEL) .setObject(0, lbData, null); } @@ -144,7 +136,7 @@ else { GISAttributeModelDoubleArray xiData = (GISAttributeModelDoubleArray) ATT_IND_XI.createDataForGeom(null, pts.length); GISAttributeModelDoubleArray yiData = (GISAttributeModelDoubleArray) ATT_IND_YI.createDataForGeom(null, pts.length); - GISAttributeModelDoubleArray zrData = (GISAttributeModelDoubleArray) ATT_IND_ZR.createDataForGeom(null, pts.length); + GISAttributeModelDoubleArray zrData = (GISAttributeModelDoubleArray) PivVisuPanel.ATT_IND_ZR.createDataForGeom(null, pts.length); GISAttributeModelObjectArray lbData = (GISAttributeModelObjectArray) PivVisuPanel.ATT_LABEL.createDataForGeom(null, pts.length); CoordinateSequence seq = GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(pts.length, 2); @@ -164,7 +156,7 @@ // Les valeurs d'attributs zp.getModel(ATT_IND_XI).setObject(0, xiData, null); zp.getModel(ATT_IND_YI).setObject(0, yiData, null); - zp.getModel(ATT_IND_ZR).setObject(0, zrData, null); + zp.getModel(PivVisuPanel.ATT_IND_ZR).setObject(0, zrData, null); zp.getModel(PivVisuPanel.ATT_LABEL) .setObject(0, lbData, null); } } @@ -187,7 +179,7 @@ if (type_==PivVisuPanel.MODE_ORIGINAL_VIEW) { GISAttributeModelDoubleArray xrData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_XR).getObjectValueAt(0); GISAttributeModelDoubleArray yrData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_YR).getObjectValueAt(0); - GISAttributeModelDoubleArray zrData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_ZR).getObjectValueAt(0); + GISAttributeModelDoubleArray zrData=(GISAttributeModelDoubleArray) zp.getModel(PivVisuPanel.ATT_IND_ZR).getObjectValueAt(0); for (int i=0; i<pts.length; i++) { GrPoint imgPt=new GrPoint(seq.getX(i), imgSize.height-seq.getY(i), 0); @@ -200,7 +192,7 @@ else { GISAttributeModelDoubleArray xiData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_XI).getObjectValueAt(0); GISAttributeModelDoubleArray yiData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_YI).getObjectValueAt(0); - GISAttributeModelDoubleArray zrData=(GISAttributeModelDoubleArray) zp.getModel(ATT_IND_ZR).getObjectValueAt(0); + GISAttributeModelDoubleArray zrData=(GISAttributeModelDoubleArray) zp.getModel(PivVisuPanel.ATT_IND_ZR).getObjectValueAt(0); for (int i=0; i<pts.length; i++) { GrPoint imgPt=new GrPoint(xiData.getValue(i),imgSize.height-yiData.getValue(i),0); Added: 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 (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -0,0 +1,88 @@ +package org.fudaa.fudaa.piv.layer; + +import com.vividsolutions.jts.geom.CoordinateSequence; +import org.fudaa.ctulu.gis.GISAttribute; +import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; +import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; +import org.fudaa.ebli.geometrie.GrPolygone; +import org.fudaa.ebli.geometrie.GrPolyligne; +import org.fudaa.fudaa.piv.PivVisuPanel; +import org.fudaa.fudaa.piv.metier.PivCntGrid; +import org.fudaa.fudaa.piv.metier.PivProject; + +/** + * Un modele pour la visualisation d'un transect + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivTransectModel extends ZModeleLigneBriseeEditable { + // L'attribut utilis\xE9 pour l'affichage des lignes suivant une palette de couleurs. +// public static final GISAttributeInteger ATT_IND_COL=new GISAttributeInteger("color",false); + // Le projet. + PivProject prj_; + + /** + * Constructeur. + */ + public PivTransectModel() { + super(new GISZoneCollectionLigneBrisee()); + + GISAttribute[] attrs = new GISAttribute[]{PivVisuPanel.ATT_IND_ZR}; + getGeomData().setAttributeIsZ(PivVisuPanel.ATT_IND_ZR); + getGeomData().setAttributes(attrs, null); + } + + /** + * Redefinit le projet, et remet a jour le modele. + * @param _prj Le projet courant. + */ + public void setProjet(PivProject _prj) { + prj_=_prj; + update(); + } + + /** + * Remise a jour du mod\xE8le depuis le projet. + */ + public void update() { + GISZoneCollectionLigneBrisee zl=(GISZoneCollectionLigneBrisee)getGeomData(); + zl.removeAll(null); + + if (prj_.getTransect()!=null) { + GrPolyligne pl=prj_.getTransect().getStraight(); + this.addGeometry(pl, null, null, null); + // Initialisation du Z. + zl.initZAttribute(0); +// +// // Les labels +// GISAttributeModelObjectArray lbData = (GISAttributeModelObjectArray) PivVisuPanel.ATT_LABEL.createDataForGeom(null, pl.nombre()); +// for (int i=0; i<pl.nombre(); i++) { +// lbData.set(i, "P"+(i+1)); +// } +// zl.getModel(PivVisuPanel.ATT_LABEL) .setObject(0, lbData, null); + } + } + + /** + * Appel\xE9 en cas d'\xE9dition de la g\xE9om\xE9trie => On remet a jour le projet + */ + public void geometryChanged() { + GISZoneCollectionLigneBrisee zp=(GISZoneCollectionLigneBrisee)getGeomData(); + + CoordinateSequence seq=zp.getCoordinateSequence(0); + + int nbPts=seq.size(); + if (isGeometryFermee(0)) { + nbPts--; + } + + GrPolygone pl=new GrPolygone(); + for (int i=0; i<nbPts; i++) { + pl.sommets_.ajoute(seq.getX(i),seq.getY(i),0); + } + PivCntGrid cnt=prj_.getComputeCntGrid(); + cnt.setContour(pl); + prj_.setComputeCntGrid(cnt); + } +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native 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 2011-09-26 14:28:17 UTC (rev 6448) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java 2011-09-26 18:21:47 UTC (rev 6449) @@ -4,7 +4,7 @@ /** * Une classe permettant de stocker les points d'un transect. Un transect est une - * droite constitu\xE9e de plusieurs points en X,Y,Z. + * droite constitu\xE9e de plusieurs points 3D. * * @author Bertrand Marchand (mar...@de...) */ @@ -14,18 +14,18 @@ /** - * Retourne la g\xE9om\xE9trie du transect. + * Retourne la droite du transect. * @return Le transect */ - public GrPolyligne getTransect() { + public GrPolyligne getStraight() { return transect; } /** - * Definit la g\xE9om\xE9trie du transect + * Definit la droite du transect * @param _transect Le transect */ - public void setTransect(GrPolyligne _transect) { + public void setStraight(GrPolyligne _transect) { this.transect = _transect; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |