code: def indices_separate(self, points, dist_tolerance):
          
          side1 = list()
          inplane = list()
          side2 = list()
          for ip, pp in enumerate(points):
              if self.is_in_plane(pp, dist_tolerance):
                  inplane.append(ip)
              else:
                  if np.dot(pp + self.vector_to_origin, self.normal_vector) < 0.0:
                      side1.append(ip)
                  else:
                      side2.append(ip)
          return [side1, inplane, side2]
docs: Returns three lists containing the indices of the points lying on one side of the plane, on the plane
          and on the other side of the plane. The dist_tolerance parameter controls the tolerance to which a point
          is considered to lie on the plane or not (distance to the plane)
          :param points: list of points
          :param dist_tolerance: tolerance to which a point is considered to lie on the plane
          or not (distance to the plane)
          :return: The lists of indices of the points on one side of the plane, on the plane and
          on the other side of the plane