 
 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)
			{                

				int end = *warp_buffer;

				float3 active_query;
				volatile float* warp_buffer_float = (float*)&per_warp_buffer[warpId];

				//broadcast warp_query
				if (active_lane == laneId)
