--- Tree-M/PMT.cpp 2001/05/06 00:45:51 1.1 +++ Tree-M/PMT.cpp 2001/05/06 01:35:15 1.2 @@ -147,16 +147,32 @@ SimpleQuery q(&p, r); GiSTlist res = mt->RangeSearch(q); - while(!res.IsEmpty()) { - MTentry *e = res.RemoveFront (); + while(!res.IsEmpty()) + { + MTentry *e = res.RemoveFront (); + add_result(e->Ptr(), e->Key()->obj.data(), ndims); + delete e; + } +} - add_result(e->Key()->distance, e->Ptr(), e->Key()->obj.data(), ndims); +void PMT::top(double *k, int n) const +{ + SETCUR; + Object o(k); + Pred p(o); + TopQuery q(&p, n); + MTentry **res = mt->TopSearch(q); - delete e; - } + for (int i=0; i < n; i++) + { + MTentry *e = res[i]; + add_result(e->Ptr(), e->Key()->obj.data(), ndims); + delete e; + } } -void PMT::top(double *k, int n) const +int PMT::maxlevel() const { - abort (); + SETCUR; + return mt->MaxLevel(); }