#ifndef VertexDataSource_h #define VertexDataSource_h #include "Vector3.hpp" namespace quickhull { template class VertexDataSource { const Vector3* m_ptr; size_t m_count; public: VertexDataSource(const Vector3* ptr, size_t count) : m_ptr(ptr), m_count(count) { } VertexDataSource(const std::vector>& vec) : m_ptr(&vec[0]), m_count(vec.size()) { } VertexDataSource() : m_ptr(nullptr), m_count(0) { } VertexDataSource& operator=(const VertexDataSource& other) = default; size_t size() const { return m_count; } const Vector3& operator[](size_t index) const { return m_ptr[index]; } const Vector3* begin() const { return m_ptr; } const Vector3* end() const { return m_ptr + m_count; } }; } #endif /* VertexDataSource_h */