text: #ifndef SPHERE_H
  #define SPHERE_H
  
  #include "ers/common.h"
  #include "ers/vec.h"
  #include "mesh.h"
  #include "transform.h"
  
  constexpr size_t MAX_NUM_TIGHTENING_ITERATIONS = 20;
  
  struct Sphere
  {
  	ers::vec3 center;
  	f32 radius;
  
  	Sphere() = default;
  	Sphere(ers::vec3 center_, f32 radius_);
  	Sphere(const Mesh& m);
  
  	Sphere GetUpdated(const Transform& t) const;
  	ers::vec3 GetFurthestPoint(const ers::vec3& direction) const;
  
  	Mesh* MakeMesh();
  };
  
  void enclose_points(Sphere& s, const ers::vec3& p);
  void tighten_sphere(Sphere& s, const ers::Vector<Vertex>& v, size_t num_iterations);
  
  #endif