|
From: <bma...@us...> - 2011-11-14 09:46:13
|
Revision: 6665
http://fudaa.svn.sourceforge.net/fudaa/?rev=6665&view=rev
Author: bmarchan
Date: 2011-11-14 09:46:06 +0000 (Mon, 14 Nov 2011)
Log Message:
-----------
Add : Stockage des r?\195?\169sultats instantan?\195?\169s
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelFileFormat.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivInstantVelResults.java
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelFileFormat.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelFileFormat.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelFileFormat.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -0,0 +1,49 @@
+package org.fudaa.fudaa.piv.io;
+
+import org.fudaa.ctulu.fileformat.FileFormatUnique;
+import org.fudaa.ctulu.fileformat.FileReadOperationAbstract;
+import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract;
+import org.fudaa.fudaa.piv.PivResource;
+
+/**
+ * La classe d\xE9crivant le format d'un fichier pivxxxx.dat contenant les
+ * vitesses instantan\xE9es en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivInstantVelFileFormat extends FileFormatUnique {
+
+ private PivInstantVelFileFormat() {
+ super(1);
+ nom_ = PivResource.getS("PIV instant real velocities");
+ description_ = PivResource.getS("Fichier contenant les vitesses instantan\xE9es r\xE9elles");
+ extensions_=new String[]{"dat"};
+ }
+ static final PivInstantVelFileFormat INSTANCE = new PivInstantVelFileFormat();
+
+ /**
+ * Retourne le singleton pour instancier un reader ou un writer.
+ * @return Le singleton
+ */
+ public static PivInstantVelFileFormat getInstance() {
+ return INSTANCE;
+ }
+
+ /**
+ * Cr\xE9ation d'un reader.
+ * @return Le reader
+ */
+ public FileReadOperationAbstract createReader() {
+ return new PivInstantVelReader();
+ }
+
+ /**
+ * Cr\xE9ation d'un writer.
+ * @return Le writer
+ */
+ public FileWriteOperationAbstract createWriter() {
+ return new PivImgRefWriter();
+ }
+
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelFileFormat.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelReader.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelReader.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -0,0 +1,111 @@
+/**
+ * @creation 2002-11-21
+ * @modification $Date: 2007/05/04 13:47:27 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv.io;
+
+import java.io.EOFException;
+import java.io.File;
+import java.io.IOException;
+
+import org.fudaa.ctulu.CtuluActivity;
+import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.metier.PivInstantVelResults;
+
+/**
+ * Un lecteur pour les fichiers des r\xE9sultats de vitesses instantann\xE9es en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivInstantVelReader extends FileOpReadCharSimpleAbstract implements CtuluActivity {
+
+ /** Drapeau d'interruption */
+ boolean bstop_;
+ /** Nb d'octets du fichier a lire pour stat sur pourcentage effectu\xE9 */
+ int nbOctets;
+
+ /**
+ * Le constructeur.
+ */
+ public PivInstantVelReader() {
+ }
+
+ /**
+ * Lit les r\xE9sultats de vitesses et les retourne.
+ * @return Les r\xE9sultats
+ */
+ protected PivInstantVelResults internalRead() {
+ return readVelocities();
+ }
+
+ protected void processFile(final File _f) {
+ nbOctets = (int) _f.length();
+ }
+
+ /**
+ * Utilise FortranReader ( donc un buffer).
+ *
+ * @return les infos non bloquantes.
+ */
+ private synchronized PivInstantVelResults readVelocities() {
+ PivInstantVelResults res = new PivInstantVelResults();
+
+ if (super.in_ == null) {
+ analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
+ return null;
+ }
+
+ try {
+ int lu=0;
+ boolean afficheAvance = false;
+ if ((progress_ != null) && (nbOctets > 0)) {
+ afficheAvance = true;
+ progress_.setProgression(0);
+ }
+ int pourcentageEnCours = 0;
+
+ in_.setJumpBlankLine(true);
+
+ // Boucle jusque fin de fichier. Exception EOF si fin.
+ while (true) {
+ in_.readFields();
+
+ res.addPoint(in_.doubleField(0), in_.doubleField(1), in_.doubleField(2), in_.doubleField(3));
+
+ lu+=26; // Si le formattage en fortran
+
+ if ((afficheAvance) && ((lu * 100 / nbOctets) >= (pourcentageEnCours + 20))) {
+ pourcentageEnCours += 20;
+ progress_.setProgression(pourcentageEnCours);
+ }
+ }
+ }
+ // Sortie normale
+ catch (final EOFException e) {
+ }
+ catch (final IOException e) {
+ analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber());
+ }
+ catch (final NumberFormatException e) {
+ analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber());
+ }
+
+ if (progress_ != null) {
+ progress_.setProgression(100);
+ }
+
+ return res;
+ }
+
+ /**
+ * Interruption asynchrone de l'activit\xE9 de lecture.
+ */
+ public void stop() {
+ bstop_ = true;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantVelReader.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java 2011-11-11 22:17:59 UTC (rev 6664)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -11,11 +11,19 @@
/**
* Un modele pour un calque image.
* @author Bertrand Marchand (mar...@de...)
+ * @version $Id:$
*/
public abstract class PivAbstractImageModel extends ZModeleStatiqueImageRaster {
+ /**
+ * @return Le projet associ\xE9 au mod\xE8le, <tt>null</tt> si aucun projet associ\xE9.
+ */
public abstract PivProject getProject();
+ /**
+ * Definit l'image du projet a afficher.
+ * @param _idx L'index de l'image dans la liste des images, -1 si aucune image \xE0 afficher.
+ */
public abstract void setImage(int _idx);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2011-11-11 22:17:59 UTC (rev 6664)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -3,12 +3,13 @@
import java.awt.geom.Point2D;
import java.io.File;
import java.util.Iterator;
+
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
+
import org.fudaa.ctulu.CtuluImageContainer;
import org.fudaa.ctulu.CtuluLibFile;
-import org.fudaa.ebli.calque.ZModeleStatiqueImageRaster;
import org.fudaa.fudaa.piv.metier.PivProject;
/**
@@ -53,10 +54,11 @@
* Modifie l'image affich\xE9e suivant son index dans le projet.
* @param _idx L'index de l'image dans le projet.
*/
+ @Override
public void setImage(int _idx) {
File[] srcFiles=prj_.getSrcImageFiles();
- // Si l'indice d'image est bien dans les images possibles
+ // Si l'indice d'image est bien dans les images disponibles
if (_idx!=-1 && srcFiles.length>_idx) {
File img=prj_.getCacheImageFile(srcFiles[_idx]);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2011-11-11 22:17:59 UTC (rev 6664)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -41,24 +41,30 @@
return prj_;
}
- @Override
- public void setImage(int _idx) {
-
- }
-
/**
* Met a jour le mod\xE8le en fonction de la premi\xE8re image transform\xE9e.
*/
public void update() {
+ setImage(0);
+ }
- // On prend la premi\xE8re image.
- if (prj_.hasTransfImages() && prj_.getOrthoParameters()!=null) {
- File imgs=prj_.getTransfCacheImageFile();
- ImageInputStream iis=prj_.getRealCacheImageInputStream();
+ /**
+ * Modifie l'image affich\xE9e suivant son index dans le projet.
+ * @param _idx L'index de l'image dans le projet.
+ */
+ @Override
+ public void setImage(int _idx) {
+ File[] imgFiles=prj_.getTransfImageFiles();
+
+ // Si l'indice d'image est bien dans les images disponibles
+ if (_idx!=-1 && imgFiles.length>_idx && prj_.getOrthoParameters()!=null) {
+ File img=prj_.getCacheImageFile(imgFiles[_idx]);
+ ImageInputStream iis=prj_.getRealCacheImageInputStream(img);
+
// Repris de CtuluLibImage.getImageReader(), mais en utilisant l'extension (pgm) au lieu
// du nom de reader (pnm)
- String extension = CtuluLibFile.getExtension(imgs.getName());
+ String extension = CtuluLibFile.getExtension(img.getName());
final Iterator<ImageReader> it = ImageIO.getImageReadersBySuffix(extension);
ImageReader imgReader = null;
if (it != null && it.hasNext()) {
@@ -68,7 +74,7 @@
imgReader.setInput(iis);
- CtuluImageContainer imgCont=new CtuluImageContainer(imgReader,imgs);
+ CtuluImageContainer imgCont=new CtuluImageContainer(imgReader,img);
Point2D.Double[] imgPts=new Point2D.Double[]{
new Point2D.Double(0,0),
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2011-11-11 22:17:59 UTC (rev 6664)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -14,7 +14,7 @@
import org.fudaa.fudaa.piv.metier.PivVelResults;
/**
- * Un modele pour le trac\xE9 des vecteurs vitesses.
+ * Un modele pour le trac\xE9 des vecteurs vitesses moyenn\xE9es.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivInstantVelResults.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivInstantVelResults.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivInstantVelResults.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -0,0 +1,68 @@
+package org.fudaa.fudaa.piv.metier;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Une classe pour stocker les r\xE9sultats de vitesses instantan\xE9es, pour un instant seulement.
+ * Les coordonn\xE9es X et Y sont redondantes pour tous les r\xE9sultats.
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivInstantVelResults {
+
+ /** Les coordonn\xE9es X */
+ private List<Double> x=new ArrayList<Double>();
+ /** Les coordonn\xE9es Y */
+ private List<Double> y=new ArrayList<Double>();
+ /** Les vitesses suivant U pour chaque instant. */
+ private List<Double> vx=new ArrayList<Double>();
+ /** Les vitesses suivant V pour chaque instant. */
+ private List<Double> vy=new ArrayList<Double>();
+
+ /**
+ * Ajoute un point aux r\xE9sultats instantan\xE9s
+ * @param _x La coordonn\xE9e X
+ * @param _y La coordonn\xE9e Y
+ * @param _vx La vitesse Vx
+ * @param _vy La vitesse Vy
+ */
+ public void addPoint(double _x, double _y, double _vx, double _vy) {
+ x.add(_x);
+ y.add(_y);
+ vx.add(_vx);
+ vy.add(_vy);
+ }
+
+ /**
+ * @param _ind L'indice du point
+ * @return Sa coordonn\xE9e X
+ */
+ public double getX(int _ind) {
+ return x.get(_ind);
+ }
+
+ /**
+ * @param _ind L'indice du point
+ * @return Sa coordonn\xE9e Y
+ */
+ public double getY(int _ind) {
+ return y.get(_ind);
+ }
+
+ /**
+ * @param _ind L'indice du point
+ * @return Sa vitesse X
+ */
+ public double getVx(int _ind) {
+ return vx.get(_ind);
+ }
+
+ /**
+ * @param _ind L'indice du point
+ * @return Sa vitesse Y
+ */
+ public double getVy(int _ind) {
+ return vy.get(_ind);
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivInstantVelResults.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2011-11-11 22:17:59 UTC (rev 6664)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2011-11-14 09:46:06 UTC (rev 6665)
@@ -7,12 +7,10 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Map.Entry;
-import java.util.TreeMap;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
@@ -32,6 +30,7 @@
import org.fudaa.fudaa.piv.io.PivGridParamFileFormat;
import org.fudaa.fudaa.piv.io.PivHFileFormat;
import org.fudaa.fudaa.piv.io.PivImgRefFileFormat;
+import org.fudaa.fudaa.piv.io.PivInstantVelFileFormat;
import org.fudaa.fudaa.piv.io.PivParamFileFormat;
import com.memoire.fu.FuLog;
@@ -50,8 +49,10 @@
public static final String IMG_PGM_DIR="img_pgm";
/** Le r\xE9pertoire projet des images transform\xE9es */
public static final String IMG_TRANSF_DIR="img_transf";
- /** Le r\xE9pertoire des vitesses brutes */
+ /** Le r\xE9pertoire des vitesses instantan\xE9es */
public static final String VEL_RAW_DIR="vel_raw";
+ /** Le r\xE9pertoire des vitesses instantan\xE9es en espace r\xE9el. */
+ public static final String VEL_REAL_DIR="vel_real";
private static final FileFilter FLT_FILES=new FileFilter() {
@Override
@@ -76,8 +77,10 @@
protected PivGrid computeGrid;
/** Un transect pour le calcul de d\xE9bits */
protected PivTransect transect;
- /** Les r\xE9sultats de vitesses */
+ /** Les r\xE9sultats de vitesses moyennes */
protected PivVelResults velResults;
+ /** Les r\xE9sultats des vitesses instantan\xE9es */
+ protected PivInstantVelResults[] instantVelResults;
/** Les r\xE9sultats de d\xE9bit calcul\xE9 */
protected PivFlowResults flowResults;
/** La taille des images transform\xE9es */
@@ -99,8 +102,10 @@
ImageInputStream cacheTransfInputStream_;
/** L'input stream pour l'image cache r\xE9elle */
ImageInputStream cacheRealInputStream_;
- /** Les images d'origine dans l'ordre */
- List<File> srcFiles_=new ArrayList<File>();
+ /** Les images d'origine dans l'ordre, dans */
+ List<File> srcFiles_=Collections.synchronizedList(new ArrayList<File>());
+ /** La liste des images transform\xE9es */
+ List<File> transfFiles_=Collections.synchronizedList(new ArrayList<File>());
/**
* Cree l'espace temporaire de stockage des fichiers
@@ -180,18 +185,20 @@
/**
* Controle que les images cache existent pour le r\xE9pertoire des images et
* les cr\xE9e en asynchrone si ce n'est pas le cas.
- * @param _files Les fichiers a considerer pour les cacher.
- * @param _dir Le r\xE9pertoire contenant les images sources.
+ * @param _files Les fichiers \xE0 mettre en cache.
+ * @param _readyFiles LA liste des fichiers prets a etre exploit\xE9s
+ * @param _dir Le r\xE9pertoire contenant les fichiers \xE0 mettre en cache.
* @return false : Si un probl\xE8me s'est produit lors de la production.
*/
- public boolean rebuiltCacheImagesIfNeeded(List<File> _files, final File _dir, ProgressionInterface _prog) {
+ public boolean rebuiltCacheImagesIfNeeded(List<File> _files, final List<File> _readyFiles, final File _dir, ProgressionInterface _prog) {
boolean b=true;
- File imgCacheDir=new File(new File(rootPath,IMG_PGM_DIR),"cache");
+ File imgCacheDir=new File(_dir,"cache");
imgCacheDir.mkdirs();
- srcFiles_.clear();
+ _readyFiles.clear();
+ final String prop=_dir.equals(new File(rootPath,IMG_PGM_DIR)) ? "pgmImages":"transfImages";
final List<File> file2Cache=new ArrayList<File>();
final List<Integer> posFile2Cache=new ArrayList<Integer>();
@@ -203,7 +210,7 @@
cacheFiles.add(cache);
if (cache.exists()) {
- srcFiles_.add(_files.get(i));
+ _readyFiles.add(_files.get(i));
}
else {
file2Cache.add(_files.get(i));
@@ -218,8 +225,8 @@
public void run() {
for (int i=0; i<file2Cache.size(); i++) {
createCacheFromImage(file2Cache.get(i));
- srcFiles_.add(posFile2Cache.get(i), file2Cache.get(i));
- fireProjectStateChanged("pgmImages");
+ _readyFiles.add(posFile2Cache.get(i), file2Cache.get(i));
+ fireProjectStateChanged(prop);
}
// Suppression des images cache inutiles
@@ -229,11 +236,10 @@
}
}
};
- new Thread(r).start();
+// new Thread(r).start();
+ r.run();
-// srcFiles_.addAll(newFiles);
-
- fireProjectStateChanged("pgmImages");
+ fireProjectStateChanged(prop);
return b;
}
@@ -272,12 +278,12 @@
* Retourne le chemin de l'image cache transform\xE9e.
* @return Le chemin de l'image cache transform\xE9e.
*/
- public File getPgmCacheImageFile() {
- return getCacheImageFile(getSrcImageFiles()[0]);
-// File[] files=getPgmCacheImageFiles();
-// return files[0];
-// return new File(new File(rootPath,IMG_PGM_DIR),"cache.jpg");
- }
+// public File getPgmCacheImageFile() {
+// return getCacheImageFile(getSrcImageFiles()[0]);
+//// File[] files=getPgmCacheImageFiles();
+//// return files[0];
+//// return new File(new File(rootPath,IMG_PGM_DIR),"cache.jpg");
+// }
/**
* Retourne le chemin de l'image cache transform\xE9e.
@@ -310,11 +316,12 @@
/**
* Retourne le flux d'entr\xE9e de l'image cache transform\xE9e
+ * @param _f L'image cache
* @return Le flux.
*/
public ImageInputStream getTransfCacheImageInputStream() {
- if (!getTransfCacheImageFile().exists())
- rebuiltTransfCacheImage();
+// if (!getTransfCacheImageFile().exists())
+// rebuiltTransfCacheImage();
if (cacheTransfInputStream_==null) {
try {
@@ -329,16 +336,17 @@
* Retourne le flux d'entr\xE9e de l'image cache transform\xE9e en espace r\xE9el.
* @return Le flux.
*/
- public ImageInputStream getRealCacheImageInputStream() {
- if (!getTransfCacheImageFile().exists())
- rebuiltTransfCacheImage();
+ public ImageInputStream getRealCacheImageInputStream(File _f) {
+// if (!getTransfCacheImageFile().exists())
+// rebuiltTransfCacheImage();
- if (cacheRealInputStream_==null) {
try {
- cacheRealInputStream_=ImageIO.createImageInputStream(getTransfCacheImageFile());
+ if (cacheRealInputStream_ != null) {
+ cacheRealInputStream_.close();
+ }
+ cacheRealInputStream_=ImageIO.createImageInputStream(_f);
}
catch (IOException _exc) {}
- }
return cacheRealInputStream_;
}
@@ -476,7 +484,7 @@
f.delete();
}
- rebuiltCacheImagesIfNeeded(newFiles,imgInpDir,null);
+ rebuiltCacheImagesIfNeeded(newFiles,srcFiles_,imgInpDir,null);
}
/**
@@ -608,6 +616,7 @@
public boolean load(File _prjFile, ProgressionInterface _prog) {
File outputDir=new File(rootPath,OUTPUT_DIR);
File imgSrcDir=new File(rootPath,IMG_PGM_DIR);
+ File imgTransfDir=new File(rootPath,IMG_TRANSF_DIR);
// Le fichier GRP
File grpFile=new File(outputDir,"GRP.dat");
@@ -663,6 +672,18 @@
CtuluIOOperationSynthese ret=reader.read(velFile, null);
velResults=(PivVelResults)ret.getSource();
}
+
+ // Les r\xE9sultats instantan\xE9s de vitesse
+ File[] instantVelFiles=new File(rootPath,VEL_REAL_DIR).listFiles();
+ if (instantVelFiles!=null && instantVelFiles.length>0) {
+ List<PivInstantVelResults> instantVel=new ArrayList<PivInstantVelResults>();
+ for (File f : instantVelFiles) {
+ FileReadOperationAbstract reader=PivInstantVelFileFormat.getInstance().createReader();
+ CtuluIOOperationSynthese ret=reader.read(f, null);
+ instantVel.add((PivInstantVelResults)ret.getSource());
+ }
+ instantVelResults=instantVel.toArray(new PivInstantVelResults[0]);
+ }
// Les r\xE9sultats de d\xE9bit
File flowFile=new File(outputDir,"Discharge.dat");
@@ -683,7 +704,8 @@
// Chargement des images sources et v\xE9rification des caches.
// srcFiles_.clear();
// srcFiles_.addAll();
- rebuiltCacheImagesIfNeeded(Arrays.asList(imgSrcDir.listFiles(FLT_FILES)),imgSrcDir, _prog);
+ rebuiltCacheImagesIfNeeded(Arrays.asList(imgSrcDir.listFiles(FLT_FILES)),srcFiles_,imgSrcDir, _prog);
+ rebuiltCacheImagesIfNeeded(Arrays.asList(imgTransfDir.listFiles(FLT_FILES)),transfFiles_,imgTransfDir, _prog);
FuLog.trace("*** Chargement de "+rootPath+" ***");
if (orthoPoints!=null) {
@@ -741,11 +763,17 @@
FuLog.trace("Pas d'images transform\xE9es.");
}
if (velResults!=null) {
- FuLog.trace("R\xE9sultats de vitesses charg\xE9s");
+ FuLog.trace("R\xE9sultats de vitesses moyenn\xE9es charg\xE9s");
}
else {
- FuLog.trace("Pas de r\xE9sultats de vitesses.");
+ FuLog.trace("Pas de r\xE9sultats de vitesses moyenn\xE9es.");
}
+ if (instantVelResults!=null) {
+ FuLog.trace("R\xE9sultats de vitesses instantan\xE9es charg\xE9s");
+ }
+ else {
+ FuLog.trace("Pas de r\xE9sultats de vitesses instantan\xE9es.");
+ }
if (flowResults!=null) {
FuLog.trace("R\xE9sultats de d\xE9bit charg\xE9s");
}
@@ -982,6 +1010,25 @@
isModified=true;
fireProjectStateChanged("velResults");
}
+
+ /**
+ * Retourne les r\xE9sultats instantan\xE9s.
+ * @return Les r\xE9sultats, ou <tt>null</tt> s'ils n'ont pas \xE9t\xE9 d\xE9finis.
+ */
+ public PivInstantVelResults[] getInstantVelResults() {
+ return instantVelResults;
+ }
+
+ /**
+ * Definit les r\xE9sultats instantan\xE9s de calcul, et notifie que le projet a \xE9t\xE9
+ * modifi\xE9.
+ * @param _res Les r\xE9sultats. <tt>null</tt> est autoris\xE9.
+ */
+ public void setInstantVelResults(PivInstantVelResults[] _res) {
+ instantVelResults=_res;
+ isModified=true;
+ fireProjectStateChanged("instantVelResults");
+ }
/**
* Retourne les r\xE9sultats de d\xE9bit.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|