#pragma once #include <cgv/math/vec.h> namespace cgv { namespace media { /** * A sphere data structure. The sphere is defined by a homogeneous vector which keeps the center point in the first components and the radius in the last component. */ template <typename T,int N> class sphere { public: cgv::math::vec<T> h; ///create a unit sphere sphere() : h(0,0,0,1) { } /// construct from center and radius sphere(const cgv::math::vec<T>& c, const T& radius) { h.resize(c.size()+1); for (unsigned int i=0; i<c.size(); ++i) h(i) = c(i); h(c.size()) = radius; } }; } }