From: Bertrand M. <bma...@us...> - 2004-04-15 07:42:58
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14126 Modified Files: RefondeModeleProprietes.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeModeleProprietes.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeModeleProprietes.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RefondeModeleProprietes.java 25 Nov 2003 10:14:16 -0000 1.5 --- RefondeModeleProprietes.java 15 Apr 2004 07:42:48 -0000 1.6 *************** *** 26,31 **** --- 26,33 ---- // private Hashtable bord2Gp=new Hashtable(); boolean modifie; + /** Domaines poreux */ private Vector poreux_= new Vector(); + /** * Création d'un modele de proprietés par défaut depuis le projet *************** *** 63,66 **** --- 65,69 ---- return mdlPrp; } + /** * Retourne le groupe de proprietes associé au bord *************** *** 87,90 **** --- 90,94 ---- modifie= true; } + /** * Ajoute d'un domaine poreux. *************** *** 94,97 **** --- 98,102 ---- modifie= true; } + /** * Suppression d'un domaine poreux. *************** *** 101,104 **** --- 106,118 ---- modifie= true; } + + /** + * Suppression de tous les domaines poreux + */ + public void removeAllDomainesPoreux() { + poreux_.clear(); + modifie=true; + } + /** * Retourne les domaines poreux. *************** *** 107,110 **** --- 121,125 ---- return (RefondeDomainePoreux[])poreux_.toArray(new RefondeDomainePoreux[0]); } + /** * Lecture d'un modele de propriétés. *************** *** 474,477 **** --- 489,496 ---- else if (_file.sval.equals("semi_reflechissant")) tpGp= RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT; + else if (_file.sval.equals("seiche_ouvert")) + tpGp= RefondeGroupeProprietes.SEICHE_BORD_OUVERT; + else if (_file.sval.equals("seiche_ferme")) + tpGp= RefondeGroupeProprietes.SEICHE_BORD_FERME; else throw new IOException(); *************** *** 692,702 **** if (gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) file.println("ouvert_entree"); ! else if ( ! gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) file.println("ouvert_sortie"); ! else if ( ! gp.getType() ! == RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) file.println("semi_reflechissant"); else throw new IOException(); --- 711,722 ---- if (gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) file.println("ouvert_entree"); ! else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) file.println("ouvert_sortie"); ! else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) file.println("semi_reflechissant"); + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_OUVERT) + file.println("seiche_ouvert"); + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_FERME) + file.println("seiche_ferme"); else throw new IOException(); *************** *** 827,829 **** --- 847,897 ---- } } + + /** + * Change la structure du modèle en fonction du modèle de données. + * @param _typeModele Le type du modele de données + * (RefondeModeleCalcul.MODELE_SEICHE, + * RefondeModeleCalcul.MODELE_HOULE) + * @param _prj Le projet. + */ + public void transmute(int _typeModele, RefondeProjet _prj) { + // Aucun changement si le modèle de données est le même + if (_typeModele==_prj.getModeleCalcul().typeModele()) return; + + poreux_.clear(); + + // Changement des groupes propriétés s'il y a lieu. + + Vector vpls= _prj.getGeometrie().scene_.getPolylignes(); + for (int i= 0; i < vpls.size(); i++) { + RefondePolyligne pl= (RefondePolyligne)vpls.get(i); + RefondeGroupeProprietes gp=pl.getGroupeProprietes(); + + // Modèle de seiche + if (_typeModele==RefondeModeleCalcul.MODELE_SEICHE) { + if (gp==null) {} + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_OUVERT); + } + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_OUVERT); + } + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_FERME); + } + } + + // Modèle de houle + else { + if (gp==null) {} + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_OUVERT) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE); + } + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_FERME) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT); + } + } + pl.setGroupeProprietes(gp); + } + } } |