From: <emm...@us...> - 2008-11-03 13:56:42
|
Revision: 4153 http://fudaa.svn.sourceforge.net/fudaa/?rev=4153&view=rev Author: emmanuel_martin Date: 2008-11-03 13:56:37 +0000 (Mon, 03 Nov 2008) Log Message: ----------- tache #75 : "Raffiner ou d?\195?\169cimer sur plusieurs profils ?\195?\160 la fois". Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneDecimationAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneRefinementAction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-11-03 12:28:29 UTC (rev 4152) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-11-03 13:56:37 UTC (rev 4153) @@ -260,32 +260,36 @@ if (getScene().isAtomicMode()) title=MdlResource.MDL.getString("D\xE9cimation entre 2 sommets"); else - title=MdlResource.MDL.getString("D\xE9cimation sur une polyligne"); + title=MdlResource.MDL.getString("D\xE9cimation sur une ou plusieurs polyligne(s)"); if (pnDecimation_.afficheModaleOk(pn_.getFrame(), title)) { - // La g\xE9om\xE9trie. - int idxGeom=getScene().getSelectionHelper().getUniqueSelectedIdx(); - Geometry geom=(Geometry)getScene().getObject(idxGeom); - int idxdeb; - int idxfin; - if (getScene().isAtomicMode()) { - int[] idxa=getScene().getLayerSelectionMulti().getSelection(idxGeom).getSelectedIndex(); - idxdeb=idxa[0]; - idxfin=idxa[1]; + // Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est + // pas en mode sommet. + int[] geoms=getScene().getSelectionHelper().getSelectedIndexes(); + for (int i=0; i<geoms.length; i++) { + int idxGeom=geoms[i]; + Geometry geom=(Geometry)getScene().getObject(idxGeom); + int idxdeb; + int idxfin; + if (getScene().isAtomicMode()) { + int[] idxa=getScene().getLayerSelectionMulti().getSelection(idxGeom).getSelectedIndex(); + idxdeb=idxa[0]; + idxfin=idxa[1]; + } + else { + idxdeb=0; + idxfin=geom.getNumPoints()-1; + } + + ZModeleDonnees mdld=getScene().getLayerForId(idxGeom).modeleDonnees(); + if (mdld instanceof MdlModel2dLine) { + MdlModel2dLine mdl=(MdlModel2dLine)mdld; + mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0:1, pnDecimation_ + .getNbPts(), pnDecimation_.getDistance(), getMng()); + } + + super.getScene().clearSelection(); } - else { - idxdeb=0; - idxfin=geom.getNumPoints()-1; - } - - ZModeleDonnees mdld=getScene().getLayerForId(idxGeom).modeleDonnees(); - if (mdld instanceof MdlModel2dLine) { - MdlModel2dLine mdl=(MdlModel2dLine)mdld; - mdl.decimate(getScene().sceneId2LayerId(idxGeom),idxdeb,idxfin,pnDecimation_.isNbPtsGiven()?0:1, - pnDecimation_.getNbPts(),pnDecimation_.getDistance(),getMng()); - } - - super.getScene().clearSelection(); } } @@ -303,29 +307,33 @@ title=MdlResource.MDL.getString("Raffinement sur une polyligne"); if (pnRaffinement_.afficheModaleOk(pn_.getFrame(), title)) { - // La g\xE9om\xE9trie. - int idxGeom=getScene().getSelectionHelper().getUniqueSelectedIdx(); - Geometry geom=(Geometry)getScene().getObject(idxGeom); - int idxdeb; - int idxfin; - if (getScene().isAtomicMode()) { - int[] idxa=getScene().getLayerSelectionMulti().getSelection(idxGeom).getSelectedIndex(); - idxdeb=idxa[0]; - idxfin=idxa[1]; + // Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est + // pas en mode sommet. + int[] geoms=getScene().getSelectionHelper().getSelectedIndexes(); + for (int i=0; i<geoms.length; i++) { + int idxGeom=geoms[i]; + Geometry geom=(Geometry)getScene().getObject(idxGeom); + int idxdeb; + int idxfin; + if (getScene().isAtomicMode()) { + int[] idxa=getScene().getLayerSelectionMulti().getSelection(idxGeom).getSelectedIndex(); + idxdeb=idxa[0]; + idxfin=idxa[1]; + } + else { + idxdeb=0; + idxfin=geom.getNumPoints()-1; + } + + ZModeleDonnees mdld=getScene().getLayerForId(idxGeom).modeleDonnees(); + if (mdld instanceof MdlModel2dLine) { + MdlModel2dLine mdl=(MdlModel2dLine)mdld; + mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0:1, pnRaffinement_ + .getNbPts(), pnRaffinement_.getDistance(), getMng()); + } + + super.getScene().clearSelection(); } - else { - idxdeb=0; - idxfin=geom.getNumPoints()-1; - } - - ZModeleDonnees mdld=getScene().getLayerForId(idxGeom).modeleDonnees(); - if (mdld instanceof MdlModel2dLine) { - MdlModel2dLine mdl=(MdlModel2dLine)mdld; - mdl.refine(getScene().sceneId2LayerId(idxGeom),idxdeb,idxfin,pnRaffinement_.isNbPtsGiven()?0:1, - pnRaffinement_.getNbPts(),pnRaffinement_.getDistance(),getMng()); - } - - super.getScene().clearSelection(); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneDecimationAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneDecimationAction.java 2008-11-03 12:28:29 UTC (rev 4152) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneDecimationAction.java 2008-11-03 13:56:37 UTC (rev 4153) @@ -61,8 +61,8 @@ b&=!scn.isSelectionEmpty(); // Si le nombre d'atomiques est de 2 sur le m\xEAme bloc b&=!scn.isAtomicMode() || (hlp.getNbAtomicSelected()==2 && (idGeom=hlp.getUniqueSelectedIdx())!=-1); - // Si le nombre de selectionn\xE9s est de 1 en mode global - b&=scn.isAtomicMode() || (idGeom=hlp.getUniqueSelectedIdx())!=-1; + // Si le nombre de selectionn\xE9s est de 1 ou plus en mode global + b&=scn.isAtomicMode() || true; // Si la g\xE9om\xE9trie appartient a un calque polylignes. b&=scn.getLayerForId(idGeom) instanceof MdlLayer2dLine; @@ -70,7 +70,7 @@ } public String getEnableCondition() { - return EbliResource.EBLI.getString("<p>En mode sommet, s\xE9lectionner 2 sommets d'un m\xEAme objet<p>En mode global, un objet"); + return EbliResource.EBLI.getString("<p>En mode sommet, s\xE9lectionner 2 sommets d'un m\xEAme objet<p>En mode global, un ou plusieurs objet(s)"); } /* (non-Javadoc) Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneRefinementAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneRefinementAction.java 2008-11-03 12:28:29 UTC (rev 4152) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneRefinementAction.java 2008-11-03 13:56:37 UTC (rev 4153) @@ -61,8 +61,8 @@ b&=!scn.isSelectionEmpty(); // Si le nombre d'atomiques est de 2 sur le m\xEAme bloc b&=!scn.isAtomicMode() || (hlp.getNbAtomicSelected()==2 && (idGeom=hlp.getUniqueSelectedIdx())!=-1); - // Si le nombre de selectionn\xE9s est de 1 en mode global - b&=scn.isAtomicMode() || (idGeom=hlp.getUniqueSelectedIdx())!=-1; + // Si le nombre de selectionn\xE9s est de 1 ou plus en mode global + b&=scn.isAtomicMode() || true; // Si la g\xE9om\xE9trie appartient a un calque polylignes. b&=scn.getLayerForId(idGeom) instanceof MdlLayer2dLine; @@ -70,7 +70,7 @@ } public String getEnableCondition() { - return EbliResource.EBLI.getString("<p>En mode sommet, s\xE9lectionner 2 sommets d'un m\xEAme objet<p>En mode global, un objet"); + return EbliResource.EBLI.getString("<p>En mode sommet, s\xE9lectionner 2 sommets d'un m\xEAme objet<p>En mode global, un ou plusieurs objet(s)"); } /* (non-Javadoc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |