47 if (a.size() != 3)
GALS_ABORT(
"While constructing Vec3 object using std::vector, input must be of size 3.");
73 return sqrt(m_data[0] * m_data[0] + m_data[1] * m_data[1] + m_data[2] * m_data[2]);
79 if (m_data[0] < m_data[1] && m_data[0] < m_data[2])
return m_data[0];
80 if (m_data[1] < m_data[0] && m_data[1] < m_data[2])
return m_data[1];
99 for (
int i = 0; i <
SIZE; ++i) m_data[i] = vec[i];
102 template <
typename T>
108 template <
typename T>
111 return Vec3<T>(m_data[0] - vec[0], m_data[1] - vec[1], m_data[2] - vec[2]);
114 template <
typename T>
117 return Vec3<T>(m_data[0] * vec[0], m_data[1] * vec[1], m_data[2] * vec[2]);
120 template <
typename T>
123 return Vec3<T>(m_data[0] * var, m_data[1] * var, m_data[2] * var);
126 template <
typename T>
129 return Vec3<T>(m_data[0] / vec[0], m_data[1] / vec[1], m_data[2] / vec[2]);
const T operator[](const int idx) const
void operator=(const Vec3< T > &vec)
bool operator==(const Vec3< T > &vec) const
static bool is_equal(double a, double b)
static constexpr int SIZE
const Vec3< T > operator-(const Vec3< T > &vec) const
const Vec3< T > operator/(const Vec3< T > &vec) const
const Vec3< T > operator*(const Vec3< T > &vec) const