From: <emm...@us...> - 2009-02-10 10:42:34
|
Revision: 4451 http://fudaa.svn.sourceforge.net/fudaa/?rev=4451&view=rev Author: emmanuel_martin Date: 2009-02-10 10:42:29 +0000 (Tue, 10 Feb 2009) Log Message: ----------- Petite stabilisation Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2009-02-10 09:33:45 UTC (rev 4450) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2009-02-10 10:42:29 UTC (rev 4451) @@ -409,7 +409,7 @@ @Override public void internalFrameActivated(InternalFrameEvent e) { - controllerBief_.removeAllBiefs(); + controllerBief_.removeAllBiefs(false); controllerBief_.updateFrom2d(); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2009-02-10 09:33:45 UTC (rev 4450) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2009-02-10 10:42:29 UTC (rev 4451) @@ -169,8 +169,17 @@ /** * Supprime les biefs donn\xE9es en param\xE8tre. + * Par defaut avec undoRedo. */ public void removeBief(int[] _idx){ + removeBief(_idx, true); + } + + /** + * Supprime les biefs donn\xE9es en param\xE8tre. + * Si _undoRedo est \xE0 vrai, l'action pourra \xEAtre annul\xE9e. + */ + public void removeBief(int[] _idx, boolean _undoRedo){ Arrays.sort(_idx); CtuluCommandComposite cmd=new CtuluCommandComposite(FudaaLib.getS("Suppression de biefs")); for(int i=_idx.length-1;i>=0;i--) { @@ -178,17 +187,26 @@ biefSelectionModel_.clearSelection(); biefSet_.removeBief(biefSet_.getBiefName(_idx[i]), cmd); } - getCommandManager().addCmd(cmd.getSimplify()); + if(_undoRedo) + getCommandManager().addCmd(cmd.getSimplify()); } /** * Supprime tous les biefs. + * Par defaut avec undoRedo. */ public void removeAllBiefs() { + removeAllBiefs(true); + } + + /** + * Supprime tous les biefs. Si _undoRedo est \xE0 vrai, l'action pourra \xEAtre annul\xE9e. + */ + public void removeAllBiefs(boolean _undoRedo) { int[] idx=new int[biefSet_.getNbBief()]; for(int i=0;i<idx.length;i++) idx[i]=i; - removeBief(idx); + removeBief(idx, _undoRedo); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java 2009-02-10 09:33:45 UTC (rev 4450) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java 2009-02-10 10:42:29 UTC (rev 4451) @@ -955,7 +955,7 @@ * mettre \xE0 jour (qui correspond \xE9galement \xE0 la g\xE9om\xE9trie modifi\xE9). */ private void updateGeom(int _idxPoint, ZModeleLigneBrisee _model, int _idxGeomVolatile, int _idxAtt) { - if(_idxGeomVolatile==-1||_idxAtt==-1) + if(_idxGeomVolatile==-1||_idxAtt==-1||_model.getNombre()<=_idxGeomVolatile) return; CoordinateSequence seqGeomV=_model.getGeomData().getCoordinateSequence(_idxGeomVolatile); CoordinateSequence seqProf=profilsListen_.getGeomData().getCoordinateSequence(_idxPoint); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2009-02-10 09:33:45 UTC (rev 4450) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2009-02-10 10:42:29 UTC (rev 4451) @@ -101,19 +101,11 @@ } /** - * Marge d'acceptation avant de consid\xE9r\xE9 un point comme \xE9tant un point de - * rupture. La valeur est la diff\xE9rence des coefficients directeurs des - * segments avant et apr\xE8s le point. - * En donnant la valeur en radian de l'angle minimal : tolerance_=Math.tan(#ValeurDegr\xE9#) - * Avec #ValeurDegr\xE9# C [0;PI/2[ - * En donnant la valeur en radian de l'angle maximal : tolerance_=Math.tan(Math.PI-#ValeurDegr\xE9#) - * Avec #ValeurDegr\xE9# C ]PI/2;PI] - * En donnant la valeur en degr\xE9 de l'angle minimal : tolerance_=Math.tan(#ValeurDegr\xE9#*Math.PI/2/90) - * Avec #ValeurDegr\xE9# C [0;90[ - * En donnant la valeur en degr\xE9 de l'angle maximal : tolerance_=Math.tan((180-#ValeurDegr\xE9#)*Math.PI/2/90) - * Avec #ValeurDegr\xE9# C ]90;180] + * Marge d'acceptation avant de consid\xE9rer un point comme \xE9tant un point de + * rupture. La valeur est l'angle maximal au dela duquel il sera lin\xE9aris\xE9. + * Il est en radian. */ - static final double tolerance_=Math.tan(89*Math.PI/2/90); + static final double _tolerance=Math.PI-Math.PI/6; /** Le biefContainer contenant le bief contenant les profils utilis\xE9s. */ private BiefContainer biefContainer_; @@ -275,56 +267,17 @@ /// D\xE9termination des points de ruptures. \\\ idxRuptures_.clear(); - double coefDirecteur=0; - // coefDirX : Indique si le coefficient directeur est calcul\xE9 sur les x - // ou sur les y (au d\xE9nominateur). - boolean coefDirX; - // Initialisation : calcul du premier cofficient directeur \\ - int idx=1; - // Calcul du coefficient directeur - if (seq.getX(idx)!=seq.getX(idx-1)) { - // Calcul sur les x - coefDirX=true; - coefDirecteur=(seq.getY(idx)-seq.getY(idx-1))/(seq.getX(idx)-seq.getX(idx-1)); - } - else { - // Calcul sur les y - coefDirX=false; - coefDirecteur=0; - } - // Coeur : Calcul de tous les coefficients directeur et m\xE9morisation des - // ruptures \\ - for (idx=2; idx<seq.size(); idx++) { - double newCoefDirecteur; - boolean newCoefDirX; - // Calcul du coefficient directeur - if (seq.getX(idx)!=seq.getX(idx-1)) { - // Calcul sur les x - newCoefDirX=true; - newCoefDirecteur=(seq.getY(idx)-seq.getY(idx-1))/(seq.getX(idx)-seq.getX(idx-1)); - } - else { - // Calcul sur les y - newCoefDirX=false; - newCoefDirecteur=0; - } - // D\xE9tection des ruptures - if (coefDirX!=newCoefDirX||Math.abs(coefDirecteur-newCoefDirecteur)>tolerance_) - idxRuptures_.add(idx-1); - // Pr\xE9paration de l'it\xE9ration suivante - coefDirecteur=newCoefDirecteur; - coefDirX=newCoefDirX; - } + for (int i=1; i<seq.size()-1; i++) + if(UtilsProfil1d.getAngle(seq.getCoordinate(i-1), seq.getCoordinate(i), seq.getCoordinate(i+1))<_tolerance) + idxRuptures_.add(i); // Lin\xE9arisation du profil - if(idxRuptures_.size()>0) { - int[] idxRuptures=new int[idxRuptures_.size()+2]; - idxRuptures[0]=0; - Iterator<Integer> it=idxRuptures_.iterator(); - for(int i=0;i<idxRuptures_.size();i++) - idxRuptures[i+1]=it.next(); - idxRuptures[idxRuptures.length-1]=seq.size()-1; - LibUtils.linearisePolyligne(biefContainer_.getZoneProfils(), idxProfilSelected_, idxRuptures, null); - } + int[] idxRuptures=new int[idxRuptures_.size()+2]; + idxRuptures[0]=0; + Iterator<Integer> it=idxRuptures_.iterator(); + for (int i=0; i<idxRuptures_.size(); i++) + idxRuptures[i+1]=it.next(); + idxRuptures[idxRuptures.length-1]=seq.size()-1; + LibUtils.linearisePolyligne(biefContainer_.getZoneProfils(), idxProfilSelected_, idxRuptures, null); } catch(ProfilContainerException _exp) { // Remise dans un \xE9tat coh\xE9rent This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |