|
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.
|