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

add ArrayBufferControlFile::nameAttribute

parent 70431458
...@@ -11,11 +11,19 @@ ...@@ -11,11 +11,19 @@
#include <ACGL/OpenGL/Objects/ArrayBuffer.hh> #include <ACGL/OpenGL/Objects/ArrayBuffer.hh>
#include <ACGL/OpenGL/Controller/DataControlFile.hh> #include <ACGL/OpenGL/Controller/DataControlFile.hh>
#include <map>
#include <string>
namespace ACGL{ namespace ACGL{
namespace OpenGL{ namespace OpenGL{
class ArrayBufferControlFile : public Resource::FileController<ArrayBuffer> class ArrayBufferControlFile : public Resource::FileController<ArrayBuffer>
{ {
// ===================================================================================================== \/
// ============================================================================================ TYPEDEFS \/
// ===================================================================================================== \/
typedef std::map<uint_t, std::string> AttributeNameMap;
// ========================================================================================================= \/ // ========================================================================================================= \/
// ============================================================================================ CONSTRUCTORS \/ // ============================================================================================ CONSTRUCTORS \/
// ========================================================================================================= \/ // ========================================================================================================= \/
...@@ -33,6 +41,13 @@ public: ...@@ -33,6 +41,13 @@ public:
// ==================================================================================================== \/ // ==================================================================================================== \/
// ============================================================================================ METHODS \/ // ============================================================================================ METHODS \/
// ==================================================================================================== \/ // ==================================================================================================== \/
public:
ArrayBufferControlFile& nameAttribute(uint_t _attributeIndex, const std::string& _name)
{
mAttributeNameMap[_attributeIndex] = _name;
return *this;
}
private: private:
bool load(SharedArrayBuffer& _ab); bool load(SharedArrayBuffer& _ab);
...@@ -48,6 +63,7 @@ public: ...@@ -48,6 +63,7 @@ public:
// =================================================================================================== \/ // =================================================================================================== \/
protected: protected:
SharedGeometryDataControlFile mDataController; SharedGeometryDataControlFile mDataController;
AttributeNameMap mAttributeNameMap;
}; };
} // OpenGL } // OpenGL
......
...@@ -35,9 +35,16 @@ bool ArrayBufferControlFile::load(SharedArrayBuffer& _ab) ...@@ -35,9 +35,16 @@ bool ArrayBufferControlFile::load(SharedArrayBuffer& _ab)
if(!tempData) if(!tempData)
return false; return false;
_ab->removeAttributes();
for(uint_t i = 0; i < tempData->mAttributes.size(); ++i) 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()); _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