Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/interpolateur In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20934/interpolateur Added Files: Interpolateur.java InterpolationNearestNeighborRef.java InterpolationRef.java InterpolationTarget.java Log Message: Maj version 0.05 prepro --- NEW FILE: Interpolateur.java --- (This appears to be a binary file; contents omitted.) --- NEW FILE: InterpolationNearestNeighborRef.java --- /* * @file EfInterpolationRef.java * @creation 29 janv. 2004 * @modification $Date: 2004/02/12 15:32:45 $ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... */ package org.fudaa.dodico.interpolateur; import java.util.Arrays; import org.fudaa.ctulu.CtuluGeometrie; import org.fudaa.dodico.mnt.*; /** * Un classe representant une source pour une interpolation des plus proches voisins. * @author deniger * @version $Id: InterpolationNearestNeighborRef.java,v 1.1 2004/02/12 15:32:45 deniger Exp $ */ public abstract class InterpolationNearestNeighborRef implements InterpolationRef{ /** * Rempli le tableau <code>_fourIndexToSet</code> ( qui doit avoir une taille * d'au moins 4) avec les indices des points les plus proches de (_x,_y) * dans les 4 quadrants. Si aucun trouve, l'indice sera mis a -1 * L'ordre est le suivant:<br> * <pre> * 3 | 2 * ----|---- * 0 | 1 * </pre> * @return false si le tableau a une taille <4 */ public boolean getQuadrantIdx(double _x, double _y, int[] _fourIndexToSet) { if ((_fourIndexToSet == null) || (_fourIndexToSet.length < 4)) return false; Arrays.fill(_fourIndexToSet, -1); double d0= Double.MAX_VALUE; double d1= Double.MAX_VALUE; double d2= Double.MAX_VALUE; double d3= Double.MAX_VALUE; double xref, yref; double diffx; double diffy; double dist; for (int i= getPtsNb() - 1; i >= 0; i--) { xref= getPtX(i); yref= getPtY(i); diffx= xref - _x; diffy= yref - _y; dist= CtuluGeometrie.getD2(xref, yref, _x, _y); if ((diffx <= 0) && (diffy <= 0) && (dist < d0)) { d0= dist; _fourIndexToSet[0]= i; } if ((diffx >= 0) && (diffy <= 0) && (dist < d1)) { d1= dist; _fourIndexToSet[1]= i; } if ((diffx >= 0) && (diffy >= 0) && (dist < d2)) { d2= dist; _fourIndexToSet[2]= i; } if ((diffx <= 0) && (diffy >= 0) && (dist < d3)) { d3= dist; _fourIndexToSet[3]= i; } } return true; } public static class ListOnZ extends InterpolationNearestNeighborRef{ MNTPoint[] list_; public ListOnZ(MNTPoint[] _l){ list_=_l; } /** * */ public int getPtsNb() { return list_.length; } /** * */ public double getV(int _i) { return list_[_i].getZ(); } /** * */ public double getPtX(int _i) { return list_[_i].getX(); } /** * */ public double getPtY(int _i) { return list_[_i].getY(); } } } --- NEW FILE: InterpolationRef.java --- (This appears to be a binary file; contents omitted.) --- NEW FILE: InterpolationTarget.java --- (This appears to be a binary file; contents omitted.) |