#pragma once #include "instanceVertices.h" #include "location.h" #include #include class BufferedLocation { public: BufferedLocation(InstanceVertices &, glm::vec3 = {}, glm::vec3 = {}); BufferedLocation(InstanceVertices &, const Location &); BufferedLocation & operator=(const Location &); operator const Location &() const; glm::vec3 position() const; glm::vec3 rotation() const; void setPosition(glm::vec3, bool update = true); void setRotation(glm::vec3, bool update = true); void setLocation(glm::vec3, glm::vec3); glm::mat4 getTransform() const; private: void updateBuffer(); Location loc; InstanceVertices::InstanceProxy buffer; };