virtual public void extructMatches(HomographyMat H, FeaturePairStack matches)
        {
            double            threshold2 = this._threshold2;
            NyARDoublePoint2d xp         = new NyARDoublePoint2d();// float xp[2];
            //前方詰め

            int pos = 0;

            for (int i = 0; i < matches.getLength(); i++)
            {
                H.multiplyPointHomographyInhomogenous(matches.getItem(i).ref_.x, matches.getItem(i).ref_.y, xp);
                double t1 = xp.x - matches.getItem(i).query.x;
                double t2 = xp.y - matches.getItem(i).query.y;

                double d2 = (t1 * t1) + (t2 * t2);
                if (d2 <= threshold2)
                {
                    matches.swap(i, pos);
                    pos++;
                }
            }
            matches.setLength(pos);
            return;
        }