Skip to content
Snippets Groups Projects
Select Git revision
  • f9ada3d1381875e72c41484b8d2ed7b64c447a26
  • main default protected
  • NewGraphicSystem
  • LayeredRendering
4 results

VerticesArray.hpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    VerticesArray.hpp 1.25 KiB
    #pragma once
    
    #include <array>
    
    #include <engine/graphics/back/geometry/Transformable.hpp>
    #include <engine/graphics/back/textures/Texture.hpp> 
    #include <engine/graphics/front/geometry/Quads.hpp>
    #include <engine/graphics/front/geometry/Vertex.hpp>
    
    namespace megu {
        class VerticesArray {
            public:
                VerticesArray(Primitive_t, size_t);
                VerticesArray(const VerticesArray &);
                VerticesArray operator=(const VerticesArray &);
                ~VerticesArray() = default;
    
                inline size_t size() const {return this->_vertices.size();}
    
                void scale(float x, float y) {this->_transformation.scale(x, y);}
    
                void append(const Vertex &);
    
                const Transformable & transformation() const {return this->_transformation;}
                const Primitive_t & primitive() const {return this->_primitive;}
                const std::vector<Vertex> & vertices() const {return this->_vertices;}
                
                Vertex & operator[](size_t index) {return this->_vertices[index];}
                const Vertex & operator[](size_t index) const {return this->_vertices[index];}
    
            private:
                Transformable _transformation;
                Primitive_t _primitive;
                std::vector<Vertex> _vertices;
        };
    }