def random_point_inside(self, rng: SeededRandomNumberGenerator) -> Vector3:
        phi: float = rng.random() * math.pi * 2
        theta: float = rng.random() * math.pi
        radius: float = rng.random() * self.radius

        offset: Vector3 = Vector3(r * math.sin(theta) * math.cos(phi),
                                  r * math.sin(theta) * math.sin(phi),
                                  r * math.cos(theta))
        return add(self.center, offset)
 def random_point_inside(self, rng: SeededRandomNumberGenerator) -> Vector3:
     offset: Vector3 = Vector3(
         math.cos(rng.random() * math.pi * 2) * self.radius,
         math.sin(rng.random() * math.pi * 2) * self.radius,
         rng.n11() * height)
     return add(self.center, offset)