From: Bertrand M. <bma...@us...> - 2004-04-15 07:45:21
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14613 Modified Files: RefondeCalqueCarte.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Révision du calque de tracé des résultats pour tenir compte de leur aspect transitoire. Index: RefondeCalqueCarte.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeCalqueCarte.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RefondeCalqueCarte.java 25 Nov 2003 10:14:10 -0000 1.4 --- RefondeCalqueCarte.java 15 Apr 2004 07:45:11 -0000 1.5 *************** *** 8,14 **** */ package org.fudaa.fudaa.refonde; import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.ebli.palette.*; import org.fudaa.ebli.repere.*; import org.fudaa.ebli.trace.*; --- 8,15 ---- */ package org.fudaa.fudaa.refonde; + import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.fudaa.refonde.commun.*; import org.fudaa.ebli.repere.*; import org.fudaa.ebli.trace.*; *************** *** 26,32 **** * @author Bertrand Marchand , Bertrand Marchand */ ! public class RefondeCalqueCarte extends BCalqueCarte { ! RefondePaletteCouleurPlage pal_; private GrBoite boite_= null; /** * Contructeur du calque --- 27,36 ---- * @author Bertrand Marchand , Bertrand Marchand */ ! public class RefondeCalqueCarte extends BCalqueCarte implements ZModeleChangeListener { ! BPaletteCouleurPlage pal_; private GrBoite boite_= null; + /** Le modèle de valeurs */ + private ZModeleValeur valeurs_=null; + /** * Contructeur du calque *************** *** 34,53 **** public RefondeCalqueCarte() { super(); ! pal_= new RefondePaletteCouleurPlage(); pal_.setTitre(""); pal_.setSousTitre(""); pal_.setNbPlages(10); } ! public void setPalette(RefondePaletteCouleurPlage _pal) { pal_= _pal; construitLegende(); } ! public RefondePaletteCouleurPlage getPalette() { return pal_; } /** * + Réinitialisation de la palette. */ ! public void setValeurs(double[] _vals) { super.setValeurs(_vals); double vmin= Double.POSITIVE_INFINITY; --- 38,60 ---- public RefondeCalqueCarte() { super(); ! pal_= new BPaletteCouleurPlage(); pal_.setTitre(""); pal_.setSousTitre(""); pal_.setNbPlages(10); } ! ! public void setPalette(BPaletteCouleurPlage _pal) { pal_= _pal; construitLegende(); } ! ! public BPaletteCouleurPlage getPalette() { return pal_; } + /** * + Réinitialisation de la palette. */ ! /* public void setValeurs(double[] _vals) { super.setValeurs(_vals); double vmin= Double.POSITIVE_INFINITY; *************** *** 62,66 **** --- 69,106 ---- pal_.ajusteLegendes(); construitLegende(); + }*/ + + /** + * Affectation du modele de valeurs. + * @param _modele Le modele + */ + public void setModeleValeurs(ZModeleValeur _modele) { + //ZModeleValeur vp=valeurs_; + // if (valeurs_!=null) valeurs_.removeModelChangeListener(this); + valeurs_= _modele; + // if (valeurs_!=null) valeurs_.addModelChangeListener(this); + modelChanged(null); + } + /** + * Retourne le modele de valeurs. + * @return Le modele. + */ + public ZModeleValeur getModeleValeur() { + return valeurs_; + } + + // >>> ZModeleChangeListener ------------------------------------------------ + + public void modelChanged(ZModeleChangeEvent _evt) { + // Mise à jour de la palette en fonction des valeurs (désactivé pour le chgt de pas de temps). + pal_.setMinPalette(valeurs_.getMin()); + pal_.setMaxPalette(valeurs_.getMax()); + pal_.ajustePlages(); + pal_.ajusteLegendes(); + construitLegende(); } + + // <<< ZModeleChangeListener ------------------------------------------------ + /** * Construction de la légende. En fait, affecte la légende du calque au calque *************** *** 109,116 **** _g.translate(-_x, -_y); } // Paint public void paintComponent(Graphics _g) { ! if (RefondeResource.DEBUG) ! System.out.println("Paint calque Carte"); boolean attenue= isAttenue(); boolean rapide= isRapide(); --- 149,157 ---- _g.translate(-_x, -_y); } + // Paint public void paintComponent(Graphics _g) { ! if (RefondeResource.DEBUG) System.out.println("Paint calque Carte"); ! boolean attenue= isAttenue(); boolean rapide= isRapide(); *************** *** 120,299 **** // if( !Double.isNaN(minVal_) ) iv=minVal_; // if( !Double.isNaN(maxVal_) ) av=maxVal_; ! if (boite_ == null) ! boite_= getMaillage().boite(); GrMorphisme versEcran= getVersEcran(); Polygon pecr= boite_.enPolygoneXY().applique(versEcran).polygon(); Rectangle clip= _g.getClipBounds(); ! if (clip == null) ! clip= new Rectangle(0, 0, getWidth(), getHeight()); if (clip.intersects(pecr.getBounds())) { if (rapide) { Color c; - // if(surface_) - // { - // c=paletteCouleur_.couleur(0.5); - // if(attenue) c=attenueCouleur(c); - // _g.setColor(c); - // _g.fillPolygon(pecr); - // } c= pal_.getCouleurAutres(); ! if (attenue) ! c= attenueCouleur(c); _g.setColor(c); _g.drawPolygon(pecr); ! } else { if (maillageEcran_ == null) maillageEcran_= getMaillage().applique(versEcran); Color fg= getForeground(); Color bg= getBackground(); ! if (attenue) ! fg= attenueCouleur(fg); ! if (attenue) ! bg= attenueCouleur(bg); // Palette background ! RefondePaletteCouleurPlage pbg= ! (RefondePaletteCouleurPlage)pal_.clone(); pbg.propagerCouleurs(bg, bg); ! RefondePaletteCouleurPlage pisl= pal_; ! if (getIsosurfaces()) ! pisl= pbg; ! RefondeIsoLignes isol= new RefondeIsoLignes(pisl); ! RefondeIsoSurfaces isos= new RefondeIsoSurfaces(pal_); int n= maillageEcran_.nombre(); ! double[] vals= getValeurs(); ! if (getIsosurfaces()) { ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! for (j= 0; j < m; j++) ! v[j]= vals[noeuds[j]]; ! isos.draw(_g, p, v); ! } ! } ! } ! // Tracé des isolignes (dans la couleur du fond si les isocouleurs sont ! // tracées). ! if (getIsolignes()) { ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! for (j= 0; j < m; j++) ! v[j]= vals[noeuds[j]]; ! isol.draw(_g, p, v); ! } } ! } ! // Tracé des contours (dans la couleur du tracé). ! if (getContour()) { ! _g.setColor(fg); ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) ! _g.drawPolygon(p); } } - // if(contour_||surface_) - // { - // Gouraud grd=null; - // - // if(_g instanceof PrintGraphics) - // { - // System.err.println("Gouraud imprimante"); - // grd=new Gouraud(_g,2,2); - // } - // else - // { - // System.err.println("Gouraud écran"); - // grd=new Gouraud(_g, - // paramGouraud_.getNiveau(), - // paramGouraud_.getTaille()); - // } - // - // for(i=0;i<n;i++) - // { - // Polygon p=maillageEcran_.polygon(i); - // if(clip.intersects(p.getBounds())) - // { - // int[] noeuds=(int[])maillageEcran_.connectivites.elementAt(i); - // int m =noeuds.length; - // - // // double v=(valeurs_[noeuds[0]]-iv)/(av-iv); - // - // if(surface_&&!isosurfaces_) - // { - // /* - // _g.setColor(c); - // _g.fillPolygon(p); - // */ - // - // int[] rc=new int[m]; - // int[] vc=new int[m]; - // int[] bc=new int[m]; - // - // for(j=0;j<m;j++) - // { - // double v=(valeurs_[noeuds[j]]-iv)/(av-iv); - // Color c=paletteCouleur_.couleur(v); - // if(attenue) c=attenueCouleur(c); - // - // rc[j]=c.getRed(); - // vc[j]=c.getGreen(); - // bc[j]=c.getBlue(); - // } - // - // grd.fillRectangle(p.xpoints,p.ypoints,rc,vc,bc); - // } - // - // if(contour_) - // { - // double v=0.; - // for(j=0;j<m;j++) - // v+=(valeurs_[noeuds[j]]-iv)/(av-iv); - // v/=(double)m; - // - // Color c=paletteCouleur_.couleur(v); - // if(attenue) c=attenueCouleur(c); - // - // if(surface_||isolignes_||isosurfaces_) - // _g.setColor(bg); - // else - // _g.setColor(c); - // _g.drawPolygon(p); - // } - // } - // } - // } - // - // if(isolignes_) - // { - // for(i=0;i<n;i++) - // { - // Polygon p=maillageEcran_.polygon(i); - // if(clip.intersects(p.getBounds())) - // { - // int[] noeuds=(int[])maillageEcran_.connectivites.elementAt(i); - // int m=noeuds.length; - // - // double[] v=new double[m]; - // for(j=0;j<m;j++) - // v[j]=Math.max(0., - // Math.min(1., - // (valeurs_[noeuds[j]]-iv)/(av-iv))); - // - // isol.draw(_g,p,v); - // } - // } - // } - // - // // System.err.println("Terminé: "+n); } } - // super.paintComponent(_g); } } --- 161,225 ---- // if( !Double.isNaN(minVal_) ) iv=minVal_; // if( !Double.isNaN(maxVal_) ) av=maxVal_; ! if (boite_ == null) boite_=getMaillage().boite(); ! GrMorphisme versEcran= getVersEcran(); Polygon pecr= boite_.enPolygoneXY().applique(versEcran).polygon(); Rectangle clip= _g.getClipBounds(); ! if (clip==null) clip=new Rectangle(0, 0, getWidth(), getHeight()); ! if (clip.intersects(pecr.getBounds())) { if (rapide) { Color c; c= pal_.getCouleurAutres(); ! if (attenue) c=attenueCouleur(c); _g.setColor(c); _g.drawPolygon(pecr); ! } ! else { if (maillageEcran_ == null) maillageEcran_= getMaillage().applique(versEcran); Color fg= getForeground(); Color bg= getBackground(); ! if (attenue) fg= attenueCouleur(fg); ! if (attenue) bg= attenueCouleur(bg); ! // Palette background ! BPaletteCouleurPlage pbg=(BPaletteCouleurPlage)pal_.clone(); pbg.propagerCouleurs(bg, bg); ! BPaletteCouleurPlage pisl= pal_; ! if (getIsosurfaces()) pisl= pbg; ! TraceIsoLignesPlages isol= new TraceIsoLignesPlages(pisl); ! TraceIsoSurfacesPlages isos= new TraceIsoSurfacesPlages(pal_); ! ! boolean isIsoSurfacesVisible= getIsosurfaces(); ! boolean isIsoLignesVisible= getIsolignes(); ! boolean isContoursVisible= getContour(); ! int n= maillageEcran_.nombre(); ! ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (!clip.intersects(p.getBounds())) continue; ! ! // Trace des isosurfaces / Isolignes (dans la couleur du fond si les ! // isocouleurs sont tracees). ! if (isIsoSurfacesVisible || isIsoLignesVisible) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! ! for (j= 0; j < m; j++) v[j]= valeurs_.valeur(noeuds[j]); ! if (isIsoSurfacesVisible) isos.draw(_g, p, v); ! if (isIsoLignesVisible) isol.draw(_g, p, v); } ! ! // Trace des contours (dans la couleur du trace). ! if (isContoursVisible) { ! _g.setColor(fg); ! _g.drawPolygon(p); } } } } } } |