From: Frederic D. <de...@us...> - 2004-03-22 10:26:27
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/ef/serviceDunes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7538/src/org/fudaa/dodico/ef/serviceDunes Modified Files: Convertisseur.java Log Message: Correction bogue SMaillage Index: Convertisseur.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/ef/serviceDunes/Convertisseur.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Convertisseur.java 25 Nov 2003 10:11:33 -0000 1.6 --- Convertisseur.java 22 Mar 2004 10:16:11 -0000 1.7 *************** *** 8,11 **** --- 8,12 ---- */ package org.fudaa.dodico.ef.serviceDunes; + import org.fudaa.dodico.corba.dunes.ICalculDunes; import org.fudaa.dodico.corba.ef.IElement; *************** *** 29,270 **** import org.fudaa.dodico.objet.CDodico; /** ! * Classe statique de conversion: les methodes statiques convertissent les ! * interfaces en structures et inversement. Toutes les fonctions sont simples. ! * Si les parametres d'entrees sont invalides, un tableau vide est renvoye. ! * ! * @version $Id$ ! * @author deniger */ public class Convertisseur { ! /** ! * Singleton. ! */ ! /** ! * Singleton. ! * ! * Singleton. Singleton. Singleton. Constructeur prive. ! * ! */ ! private Convertisseur() {} ! /** ! * Met a jour les parametres de ICalculDunes a partir des IParametresCalcul ! * issus du modele metier. L'operation est effectuee si les 2 parametres sont ! * non nuls (envoie exceptions sinon). Verifie egalement le typeElement qui ! * doit etre egale a T3 ou T6 pour le code de calcul Dunes (exception sinon). ! * ! * @param _calCode ! * @param _paramMetier ! * @return true si deroulement complet et correct et false sion ! */ ! public static boolean majICalculDunes( ! ICalculDunes _calCode, ! IParametresCalcul _paramMetier) { ! if (_paramMetier == null) { ! CDodico.exception( ! Convertisseur.class, ! "Les parametres metiers sont nuls."); ! return false; ! } ! if (_calCode == null) { ! CDodico.exception(Convertisseur.class, "L'objet ICalculDunes est nul."); ! return false; ! } ! _calCode.optionP(true); ! _calCode.optionQ(_paramMetier.controleAngles()); ! _calCode.optionA(_paramMetier.controleAires()); ! _calCode.optionS(!_paramMetier.ajoutPoints()); ! _calCode.optionO(_paramMetier.maillageParLongueurOnde()); ! _calCode.optionC(_paramMetier.ajoutEnveloppeConvexe()); ! _calCode.optionY(!_paramMetier.ajoutNoeudsContour()); ! _calCode.aireMax(_paramMetier.aireMax()); ! _calCode.angleMin(_paramMetier.angleMin()); ! _calCode.hauteurMer(_paramMetier.hauteurMer()); ! _calCode.periodeHoule(_paramMetier.periodeHoule()); ! _calCode.nombrePointsLongueurOnde(_paramMetier.nombrePoints()); ! //Dunes ne marche qu'avec 2 types d'éléments T3 et T6 le reste est ignoré ! if ((_paramMetier.typeElement() == LTypeElement.T6) ! || (_paramMetier.typeElement() == LTypeElement.T3)) { ! _calCode.typeElementDunes(_paramMetier.typeElement()); ! return true; ! } else { ! CDodico.exception( ! Convertisseur.class, ! "Dunes gère des éléments de type T3 ou T6 uniquement"); ! return false; ! } ! } /** * Conversion d'un IPoint en SPoint. ! * * @param _point ! * @return le SPoint correspondant a _point */ public static SPoint IPoint2S(IPoint _point) { ! if (_point == null) { ! return null; ! } ! SPoint r= new SPoint(); ! double[] p= _point.coordonnees(); ! r.x= p[0]; ! r.y= p[1]; ! r.z= p[2]; ! p= null; ! return r; ! } ! /** ! * Description de la methode ! * ! * @param _point ! * @param _u ! * @return ! */ ! public static IPoint SPoint2I(SPoint _point, IUsine _u) { ! if ((_point == null) || (_u == null)) { ! return null; } ! IPoint r= _u.creeGeometriePoint(); ! r.coordonnees(new double[] { _point.x, _point.y, _point.z }); return r; } /** * Conversion de _points en un tableau de IPoint[]. ! * * @param _points ! * @return le tableau convertit ou un tableau vide si _points est nul. */ public static SPoint[] IPoint2S(IPoint[] _points) { ! if (_points == null) { ! return new SPoint[0]; } ! int longueur= _points.length; ! SPoint[] spoints= new SPoint[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! spoints[i]= IPoint2S(_points[i]); } return spoints; } ! /** ! * Description de la methode ! * ! * @param _points ! * @param _u ! * @return ! */ ! public static IPoint[] SPoint2I(SPoint[] _points, IUsine _u) { ! if ((_points == null) || (_u == null)) { ! return null; ! } ! int longueur= _points.length; ! IPoint[] r= new IPoint[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! r[i]= SPoint2I(_points[i], _u); ! } ! return r; ! } /** * Conversion de l'interface _poly en Structure. ! * * @param _poly * @return */ public static SPolyligne IPolyligne2S(IPolyligne _poly) { ! if (_poly == null) { ! return null; } ! SPolyligne r= new SPolyligne(); ! int longueur= _poly.points().taille(); ! IPoint[] tempo= new IPoint[longueur]; ! for (int i= 0; i < longueur; i++) { ! tempo[i]= IPointHelper.narrow(_poly.points().element(i)); } ! r.points= IPoint2S(tempo); ! tempo= null; return r; } /** * Conversion du tableau de IPolyligne _polys en Structure. ! * * @param _polys * @return */ public static SPolyligne[] IPolyligne2S(IPolyligne[] _polys) { ! if (_polys == null) { ! return null; } ! int longueur= _polys.length; ! SPolyligne[] r= new SPolyligne[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! r[i]= IPolyligne2S(_polys[i]); } return r; } /** * Transforme l'interface _trou en structure equivalente. ! * * @param _trou * @return */ public static STrou ITrou2S(ITrou _trou) { ! if (_trou == null) { ! return null; } ! STrou r= new STrou(); ! r.position= IPoint2S(_trou.position()); return r; } /** ! * Transforme le tableau d'interfaces _trous en tableau de structures ! * equivalentes. ! * * @param _trous * @return */ public static STrou[] ITrou2S(ITrou[] _trous) { ! if (_trous == null) { ! return null; } ! int longueur= _trous.length; ! STrou[] strou= new STrou[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! strou[i]= ITrou2S(_trous[i]); } return strou; } /** ! * Transforme l'interface _region en structure equivalente. ! * ! * @param _region * @return */ ! public static SRegion IRegion2S(IRegion _region) { ! if (_region == null) { return null; } - SRegion r= new SRegion(); - r.position= IPoint2S(_region.position()); - r.aireMaxElement= _region.aireMaxElement(); return r; } /** ! * Transforme le tableau d'interfaces _regions en tableau de structures ! * equivalentes. ! * ! * @param _regions * @return */ ! public static SRegion[] IRegion2S(IRegion[] _regions) { ! if (_regions == null) { ! return new SRegion[0]; ! } ! int longueur= _regions.length; ! SRegion[] sregion= new SRegion[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! sregion[i]= IRegion2S(_regions[i]); } ! return sregion; } /** * Transforme l'interface _noeud en structure equivalente. ! * * @param _noeud * @param _u --- 30,299 ---- import org.fudaa.dodico.objet.CDodico; /** ! * Classe statique de conversion: les methodes statiques convertissent les interfaces en structures ! * et inversement. Toutes les fonctions sont simples. Si les parametres d'entrees sont invalides, ! * un tableau vide est renvoye. ! * ! * @version $Id$ ! * @author deniger */ public class Convertisseur { ! /** * Conversion d'un IPoint en SPoint. ! * * @param _point ! * @return le SPoint correspondant a _point */ public static SPoint IPoint2S(IPoint _point) { ! if (_point == null) { ! return null; } ! SPoint r = new SPoint(); ! double[] p = _point.coordonnees(); ! r.x = p[0]; ! r.y = p[1]; ! r.z = p[2]; ! p = null; return r; } + /** * Conversion de _points en un tableau de IPoint[]. ! * * @param _points ! * @return le tableau convertit ou un tableau vide si _points est nul. */ public static SPoint[] IPoint2S(IPoint[] _points) { ! if (_points == null) { ! return new SPoint[0]; } ! int longueur = _points.length; ! SPoint[] spoints = new SPoint[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! spoints[i] = IPoint2S(_points[i]); } return spoints; } ! /** * Conversion de l'interface _poly en Structure. ! * * @param _poly * @return */ public static SPolyligne IPolyligne2S(IPolyligne _poly) { ! if (_poly == null) { ! return null; } ! SPolyligne r = new SPolyligne(); ! int longueur = _poly.points().taille(); ! IPoint[] tempo = new IPoint[longueur]; ! for (int i = 0; i < longueur; i++) { ! tempo[i] = IPointHelper.narrow(_poly.points().element(i)); } ! r.points = IPoint2S(tempo); ! tempo = null; return r; } + /** * Conversion du tableau de IPolyligne _polys en Structure. ! * * @param _polys * @return */ public static SPolyligne[] IPolyligne2S(IPolyligne[] _polys) { ! if (_polys == null) { ! return null; } ! int longueur = _polys.length; ! SPolyligne[] r = new SPolyligne[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! r[i] = IPolyligne2S(_polys[i]); } return r; } + + /** + * Transforme l'interface _region en structure equivalente. + * + * @param _region + * @return + */ + public static SRegion IRegion2S(IRegion _region) { + if (_region == null) { + return null; + } + SRegion r = new SRegion(); + r.position = IPoint2S(_region.position()); + r.aireMaxElement = _region.aireMaxElement(); + return r; + } + + /** + * Transforme le tableau d'interfaces _regions en tableau de structures equivalentes. + * + * @param _regions + * @return + */ + public static SRegion[] IRegion2S(IRegion[] _regions) { + if (_regions == null) { + return new SRegion[0]; + } + int longueur = _regions.length; + SRegion[] sregion = new SRegion[longueur]; + for (int i = longueur - 1; i >= 0; i--) { + sregion[i] = IRegion2S(_regions[i]); + } + return sregion; + } + /** * Transforme l'interface _trou en structure equivalente. ! * * @param _trou * @return */ public static STrou ITrou2S(ITrou _trou) { ! if (_trou == null) { ! return null; } ! STrou r = new STrou(); ! r.position = IPoint2S(_trou.position()); return r; } + /** ! * Transforme le tableau d'interfaces _trous en tableau de structures equivalentes. ! * * @param _trous * @return */ public static STrou[] ITrou2S(ITrou[] _trous) { ! if (_trous == null) { ! return null; } ! int longueur = _trous.length; ! STrou[] strou = new STrou[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! strou[i] = ITrou2S(_trous[i]); } return strou; } + /** ! * Met a jour les parametres de ICalculDunes a partir des IParametresCalcul issus du modele ! * metier. L'operation est effectuee si les 2 parametres sont non nuls (envoie exceptions sinon). ! * Verifie egalement le typeElement qui doit etre egale a T3 ou T6 pour le code de calcul Dunes ! * (exception sinon). ! * ! * @param _calCode ! * @param _paramMetier ! * @return true si deroulement complet et correct et false sion ! */ ! public static boolean majICalculDunes( ! ICalculDunes _calCode, ! IParametresCalcul _paramMetier) { ! if (_paramMetier == null) { ! CDodico.exception( ! Convertisseur.class, ! "Les parametres metiers sont nuls."); ! return false; ! } ! if (_calCode == null) { ! CDodico.exception(Convertisseur.class, "L'objet ICalculDunes est nul."); ! return false; ! } ! _calCode.optionP(true); ! _calCode.optionQ(_paramMetier.controleAngles()); ! _calCode.optionA(_paramMetier.controleAires()); ! _calCode.optionS(!_paramMetier.ajoutPoints()); ! _calCode.optionO(_paramMetier.maillageParLongueurOnde()); ! _calCode.optionC(_paramMetier.ajoutEnveloppeConvexe()); ! _calCode.optionY(!_paramMetier.ajoutNoeudsContour()); ! _calCode.aireMax(_paramMetier.aireMax()); ! _calCode.angleMin(_paramMetier.angleMin()); ! _calCode.hauteurMer(_paramMetier.hauteurMer()); ! _calCode.periodeHoule(_paramMetier.periodeHoule()); ! _calCode.nombrePointsLongueurOnde(_paramMetier.nombrePoints()); ! //Dunes ne marche qu'avec 2 types d'éléments T3 et T6 le reste est ignoré ! if ((_paramMetier.typeElement() == LTypeElement.T6) ! || (_paramMetier.typeElement() == LTypeElement.T3)) { ! _calCode.typeElementDunes(_paramMetier.typeElement()); ! return true; ! } else { ! CDodico.exception( ! Convertisseur.class, ! "Dunes gère des éléments de type T3 ou T6 uniquement"); ! return false; ! } ! } ! ! /** ! * Transforme le tableau d'interfaces _elements en tableau de structures equivalentes. ! * ! * @param _elements ! * @param _u * @return */ ! public static IElement[] SElement2I(SNoeud[] _nds,SElement[] _elements, IUsine _u) { ! if ((_elements == null) || (_u == null)) { ! return new IElement[0]; ! } ! int longueur = _elements.length; ! IElement[] ielem = new IElement[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! ielem[i] = SElement2I(_nds,_elements[i], _u); ! } ! return ielem; ! } ! ! /** ! * Transforme l'interface _element en structure equivalente. ! * ! * @param _element ! * @param _u ! * @param _pts les noeuds du maillage ! * @return ! */ ! public static IElement SElement2I(SNoeud[] _pts, SElement _element, IUsine _u) { ! if ((_element == null) || (_u == null)) { ! return null; ! } ! IElement r = _u.creeEfElement(); ! SNoeud[] snds = new SNoeud[_element.noeudsIdx.length]; ! for (int j = _element.noeudsIdx.length - 1; j >= 0; j--) { ! snds[j] = _pts[_element.noeudsIdx[j]]; ! } ! r.noeuds(SNoeud2I(snds, _u)); ! if ((_element.type == LTypeElement.T3) ! || (_element.type == LTypeElement.T6)) { ! r.type(_element.type); ! } else { ! CDodico.exception( ! Convertisseur.class, ! "Dunes gère des éléments de type T3 ou T6 uniquement"); return null; } return r; } + /** ! * @param _smaillage ! * @param _u * @return */ ! public static IMaillage SMaillage2I(SMaillage _smaillage, IUsine _u) { ! if ((_smaillage == null) || (_u == null)) { ! return null; } ! IMaillage r = _u.creeEfMaillage(); ! r.elements(SElement2I(_smaillage.noeuds,_smaillage.elements, _u)); ! return r; } + /** * Transforme l'interface _noeud en structure equivalente. ! * * @param _noeud * @param _u *************** *** 272,286 **** */ public static INoeud SNoeud2I(SNoeud _noeud, IUsine _u) { ! if ((_noeud == null) || (_u == null)) { ! return null; } ! INoeud r= _u.creeEfNoeud(); r.point(SPoint2I(_noeud.point, _u)); return r; } /** ! * Transforme le tableau d'interfaces _noeuds en tableau de structures ! * equivalentes. ! * * @param _noeuds * @param _u --- 301,315 ---- */ public static INoeud SNoeud2I(SNoeud _noeud, IUsine _u) { ! if ((_noeud == null) || (_u == null)) { ! return null; } ! INoeud r = _u.creeEfNoeud(); r.point(SPoint2I(_noeud.point, _u)); return r; } + /** ! * Transforme le tableau d'interfaces _noeuds en tableau de structures equivalentes. ! * * @param _noeuds * @param _u *************** *** 288,357 **** */ public static INoeud[] SNoeud2I(SNoeud[] _noeuds, IUsine _u) { ! if ((_noeuds == null) || (_u == null)) { ! return new INoeud[0]; } ! int longueur= _noeuds.length; ! INoeud[] inoeud= new INoeud[longueur]; ! for (int i= longueur - 1; i >= 0; i--) { ! inoeud[i]= SNoeud2I(_noeuds[i], _u); } return inoeud; } /** ! * Transforme l'interface _element en structure equivalente. ! * ! * @param _element * @param _u * @return */ ! public static IElement SElement2I(SElement _element, IUsine _u) { ! if ((_element == null) || (_u == null)) { ! return null; ! } ! IElement r= _u.creeEfElement(); ! r.noeuds(SNoeud2I(_element.noeuds, _u)); ! if ((_element.type == LTypeElement.T3) ! || (_element.type == LTypeElement.T6)) { ! r.type(_element.type); ! } else { ! CDodico.exception( ! Convertisseur.class, ! "Dunes gère des éléments de type T3 ou T6 uniquement"); ! return null; } return r; } /** ! * Transforme le tableau d'interfaces _elements en tableau de structures ! * equivalentes. ! * ! * @param _elements * @param _u * @return */ ! public static IElement[] SElement2I(SElement[] _elements, IUsine _u) { ! if ((_elements == null) || (_u == null)) { ! return new IElement[0]; } ! int longueur= _elements.length; ! IElement[] ielem= new IElement[longueur]; ! int pc= 0; ! for (int i= longueur - 1; i >= 0; i--) { ! ielem[i]= SElement2I(_elements[i], _u); } ! return ielem; } /** ! * @param _smaillage ! * @param _u ! * @return */ ! public static IMaillage SMaillage2I(SMaillage _smaillage, IUsine _u) { ! if ((_smaillage == null) || (_u == null)) { ! return null; ! } ! IMaillage r= _u.creeEfMaillage(); ! r.elements(SElement2I(_smaillage.elements, _u)); ! return r; ! } } --- 317,372 ---- */ public static INoeud[] SNoeud2I(SNoeud[] _noeuds, IUsine _u) { ! if ((_noeuds == null) || (_u == null)) { ! return new INoeud[0]; } ! int longueur = _noeuds.length; ! INoeud[] inoeud = new INoeud[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! inoeud[i] = SNoeud2I(_noeuds[i], _u); } return inoeud; } + /** ! * Description de la methode ! * ! * @param _point * @param _u * @return */ ! public static IPoint SPoint2I(SPoint _point, IUsine _u) { ! if ((_point == null) || (_u == null)) { ! return null; } + IPoint r = _u.creeGeometriePoint(); + r.coordonnees(new double[] { _point.x, _point.y, _point.z}); return r; } + /** ! * Description de la methode ! * ! * @param _points * @param _u * @return */ ! public static IPoint[] SPoint2I(SPoint[] _points, IUsine _u) { ! if ((_points == null) || (_u == null)) { ! return null; } ! int longueur = _points.length; ! IPoint[] r = new IPoint[longueur]; ! for (int i = longueur - 1; i >= 0; i--) { ! r[i] = SPoint2I(_points[i], _u); } ! return r; } + /** ! * Singleton. */ ! /** ! * Singleton. Singleton. Singleton. Singleton. Constructeur prive. ! */ ! private Convertisseur() {} } |