def get_closest_point_to(self, point): n = self.get_normal() return point - (Vec3.dot(Vec3.from_to(self.origin, point), n)*n)
def get_dist_to_point(self, point): return abs(Vec3.from_to(point, self.get_closest_point_to(point)))
def get_closest_point_to(self, point): l = self.direction.get_unit() return self.origin + (Vec3.dot(Vec3.from_to(self.origin, point), l)*l)