if (kpNNList.size() < 2) throw (new IllegalArgumentException("BUG: less than two neighbours!"));
KDTree.BestEntry be1 = (KDTree.BestEntry) kpNNList.get(0);
KDTree.BestEntry be2 = (KDTree.BestEntry) kpNNList.get(1);
if ((be1.getDist() / be2.getDist()) > ModifiableConst.getTowPntDistRatio()) continue;
// XXX:最近邻点和次近邻点的距离比值
SURFInterestPointN kpN = (SURFInterestPointN) be1.getNeighbour();
if (Math.abs(kpN.getOrientation() - sp.getOrientation()) > ModifiableConst.getTowPntOrientationMinus())
// continue;
// if (Math.abs(kpN.getScale() - kp.getScale()) > ModifiableConst.getTowPntScaleMinus()) continue;
matches.add(new SurfMatch(sp, kpN, be1.getDist(), be2.getDist()));
}
return (matches);