Commit d6ad6ee1 authored by Janis Born's avatar Janis Born
Browse files

add ArrayBufferControlFile::nameAttribute

parent 70431458
......@@ -11,11 +11,19 @@
#include <ACGL/OpenGL/Objects/ArrayBuffer.hh>
#include <ACGL/OpenGL/Controller/DataControlFile.hh>
#include <map>
#include <string>
namespace ACGL{
namespace OpenGL{
class ArrayBufferControlFile : public Resource::FileController<ArrayBuffer>
{
// ===================================================================================================== \/
// ============================================================================================ TYPEDEFS \/
// ===================================================================================================== \/
typedef std::map<uint_t, std::string> AttributeNameMap;
// ========================================================================================================= \/
// ============================================================================================ CONSTRUCTORS \/
// ========================================================================================================= \/
......@@ -33,6 +41,13 @@ public:
// ==================================================================================================== \/
// ============================================================================================ METHODS \/
// ==================================================================================================== \/
public:
ArrayBufferControlFile& nameAttribute(uint_t _attributeIndex, const std::string& _name)
{
mAttributeNameMap[_attributeIndex] = _name;
return *this;
}
private:
bool load(SharedArrayBuffer& _ab);
......@@ -48,6 +63,7 @@ public:
// =================================================================================================== \/
protected:
SharedGeometryDataControlFile mDataController;
AttributeNameMap mAttributeNameMap;
};
} // OpenGL
......
......@@ -35,9 +35,16 @@ bool ArrayBufferControlFile::load(SharedArrayBuffer& _ab)
if(!tempData)
return false;
_ab->removeAttributes();
for(uint_t i = 0; i < tempData->mAttributes.size(); ++i)
{
_ab->defineAttribute(tempData->mAttributes[i]);
ArrayBuffer::Attribute attribute = tempData->mAttributes[i];
// Rename attribute if so specified
if(mAttributeNameMap.find(i) != mAttributeNameMap.end())
attribute.name = mAttributeNameMap[i];
_ab->defineAttribute(attribute);
}
_ab->setDataElements(tempData->getSize()/tempData->getStrideSize(), tempData->getData());
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment