 
 void pcl::device::OctreeImpl::approxNearestSearch(const Queries& queries, NeighborIndices& results) const
 {
-    typedef OctreeImpl::PointType PointType;
-    typedef pcl::device::appnearest_search::Batch<PointType> BatchType;
+    typedef pcl::device::appnearest_search::Batch BatchType;
 
     BatchType batch;
     batch.indices = indices;


		__device__ __forceinline__ void processNode(int node_idx)
		{   
			int mask = __ballot(node_idx != -1);            

			while(mask)
			{                

#include "utils/boxutils.hpp"
#include "utils/scan_block.hpp"


namespace pcl { namespace device { namespace appnearest_search
{   
    typedef OctreeImpl::PointType PointType;
	
	struct Batch
	{   
		const PointType* queries;

		const int *indices;
