code: def find_neighbours(self, x, y, batch_x=None, batch_y=None):
      if self._conv_type == ConvolutionFormat.MESSAGE_PASSING.value:
          return radius(
              x,
              y,
              self._radius,
              batch_x,
              batch_y,
              max_num_neighbors=self._max_num_neighbors,
          )
      elif (
          self._conv_type == ConvolutionFormat.DENSE.value
          or ConvolutionFormat.PARTIAL_DENSE.value
      ):
          return tp.ball_query(
              self._radius,
              self._max_num_neighbors,
              x,
              y,
              mode=self._conv_type,
              batch_x=batch_x,
              batch_y=batch_y,
          )[0]
      else:
          raise NotImplementedError
  
imports: from abc import ABC, abstractmethod
  from typing import List, Union, cast
  import torch
  from torch_geometric.nn import knn, radius
  import torch_points_kernels
  from torch_points3d.utils.config import is_list
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.debugging_vars import DEBUGGING_VARS, DistributionNeighbour
label_desc: Use image node_id 2 for calling the RadiusNeighbourFinder obj's underlying member method code with example usage: obj.find_neighbours(x, y, batch_x, batch_y) and returns: radius, tp