#include "mesh.h"

namespace sleek
{
    namespace driver
    {
        MeshBuffer::MeshBuffer() noexcept
        {
            gpu = nullptr;
        }

        MeshBuffer::~MeshBuffer() noexcept
        {
        }

        void MeshBuffer::setIdentifier(std::shared_ptr<identifier> vbo) noexcept
        {
            gpu = vbo;
        }

        std::shared_ptr<identifier> MeshBuffer::getIdentifier() const noexcept
        {
            return gpu;
        }

        math::aabbox3df MeshBuffer::getBoundingBox() const noexcept
        {
            return box;
        }

        void MeshBuffer::recalculateBoundingBox() noexcept
        {
            for(u32 i = 0; i<vertices.size(); ++i)
                box.addInternalPoint(vertices[i].Pos);
        }

        void MeshBuffer::clear() noexcept
        {
            vertices.clear();
            indices.clear();
        }
    }
}