From: <bma...@us...> - 2008-09-25 16:48:56
|
Revision: 3985 http://fudaa.svn.sourceforge.net/fudaa/?rev=3985&view=rev Author: bmarchan Date: 2008-09-25 16:48:48 +0000 (Thu, 25 Sep 2008) Log Message: ----------- Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLib.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLib.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLib.java 2008-09-25 15:56:11 UTC (rev 3984) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLib.java 2008-09-25 16:48:48 UTC (rev 3985) @@ -391,34 +391,39 @@ if (_plan==null||_pt==null||_plan.length<3||_plan[0]==null||_plan[1]==null||_plan[2]==null) return null; // On nomme : a, b, c les trois points d\xE9finissant le plan - double xa=_plan[0].getX(), ya=_plan[0].getY(), za=_plan[0].getZ(), - xb=_plan[1].getX(), yb=_plan[1].getY(), zb=_plan[1].getZ(), - xc=_plan[2].getX(), yc=_plan[2].getY(), zc=_plan[2].getZ(); + double xa=_plan[0].getX(), ya=_plan[0].getY(), za=_plan[0].getZ(); + double xb=_plan[1].getX(), yb=_plan[1].getY(), zb=_plan[1].getZ(); + double xc=_plan[2].getX(), yc=_plan[2].getY(), zc=_plan[2].getZ(); // Teste que les trois points d\xE9finissant le plan sont diff\xE9rents if ((xa==xb&&ya==yb&&za==zb)||(xb==xc&&yb==yc&&zb==zc)||(xa==xc&&ya==yc&&za==zc)) return null; // On nomme : i le point \xE0 projeter ; p le point projet\xE9. - double xi=_pt.getX(), yi=_pt.getY(), zi=_pt.getZ(), - xp, yp, zp; + double xi=_pt.getX(); + double yi=_pt.getY(); + double zi=_pt.getZ(); + double xp; + double yp; + double zp; // Calcul du vecteur ab nomm\xE9 v - double xv = xb - xa, - yv = yb - ya, - zv = zb - za; + double xv = xb - xa; + double yv = yb - ya; + double zv = zb - za; // Calcul du vecteur ac nomm\xE9 u - double xu = xc - xa, - yu = yc - ya, - zu = zc - za; + double xu = xc - xa; + double yu = yc - ya; + double zu = zc - za; // Calcul du vecteur w d\xE9fini comme le produit vectoriel entre v et u - double xw = yu*zv - zu*yv, - yw = zu*xv - xu*zv, - zw = xu*yv - yu*xv; + double xw = yu*zv - zu*yv; + double yw = zu*xv - xu*zv; + double zw = xu*yv - yu*xv; // On calcul k qui est d\xE9fini tel que : vecteur(ip) = k * w double k = ((xa+xi)*xw+(ya+yi)*yw+(za+zi)*zw)/(xw*xw+yw*yw+zw*zw); // Calcul des coordonn\xE9es de p xp = xi + k*xw; yp = yi + k*yw; zp = zi + k*zw; - return new GISPoint(xp, yp, zp); + + return (GISPoint)GISGeometryFactory.INSTANCE.createPoint(xp, yp, zp); } public static Envelope computeEnveloppe(final GISDataModel[] _models, final ProgressionInterface _prog) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java 2008-09-25 15:56:11 UTC (rev 3984) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java 2008-09-25 16:48:48 UTC (rev 3985) @@ -25,7 +25,7 @@ /** * @author Fred Deniger - * @version $Id: TestJGIS.java,v 1.6 2007-05-21 10:28:31 deniger Exp $ + * @version $Id$ */ public class TestJGIS extends TestCase { @@ -36,10 +36,15 @@ public void testProjectOnPlane(){ // Cas g\xE9n\xE9ral GISPoint[] plan = {new GISPoint(1, 0, 0), new GISPoint(0, 1, 0), new GISPoint(0, 0, 1)}; - GISPoint result = GISLib.projectOnPlane(plan, new GISPoint(0, 0, 0)); + GISPoint result = GISLib.projectOnPlane(plan, new GISPoint(0., 0., 0.)); assertEquals(result.getX(), 1/3., 0.0000001); assertEquals(result.getY(), 1/3., 0.0000001); assertEquals(result.getZ(), 1/3., 0.0000001); + // Point sur plan : Le point retour est le m\xEAme que le point en entr\xE9e. + GISPoint res2=GISLib.projectOnPlane(plan, result); + assertEquals(result.getX(),res2.getX(), 0.0000001); + assertEquals(result.getY(),res2.getY(), 0.0000001); + assertEquals(result.getZ(),res2.getZ(), 0.0000001); // Test de robustesse : valeur null assertNull(GISLib.projectOnPlane(null, new GISPoint(0, 0, 0))); assertNull(GISLib.projectOnPlane(plan, null)); Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/test/org/fudaa/ctulu/gis/TestJGIS.java ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |