Bug Fixed in the function doQueryK if the point cloud contains less than k points
This commit is contained in:
parent
eac3243375
commit
694ffd7cb0
|
@ -199,8 +199,7 @@ namespace vcg {
|
|||
{
|
||||
mNeighborQueue.setMaxSize(k);
|
||||
mNeighborQueue.init();
|
||||
mNeighborQueue.insert(0xffffffff, std::numeric_limits<Scalar>::max());
|
||||
|
||||
|
||||
QueryNode mNodeStack[64];
|
||||
mNodeStack[0].nodeId = 0;
|
||||
mNodeStack[0].sq = 0.f;
|
||||
|
@ -217,9 +216,9 @@ namespace vcg {
|
|||
Node& node = mNodes[qnode.nodeId];
|
||||
|
||||
//if the distance is less than the top of the max-heap, it could be one of the k-nearest neighbours
|
||||
if (qnode.sq < mNeighborQueue.getTopWeight())
|
||||
{
|
||||
//when we arrive to a lef
|
||||
if (mNeighborQueue.getNofElements() < k || qnode.sq < mNeighborQueue.getTopWeight())
|
||||
{
|
||||
//when we arrive to a leaf
|
||||
if (node.leaf)
|
||||
{
|
||||
--count; //pop of the leaf
|
||||
|
|
Loading…
Reference in New Issue