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.)
|