Vertex Geometry Modifier

Overview 
 The VertexGeometryModifier , in conjunction with a VertexAccessor , helps to modify VertexGeometry objects by the means of the setters offered by the class interface. The interface offers also getters which are helpful to retrieve the values of the vertex elements from a given vertex buffer. 
 Example 
 The example below shows how to change the position values for the vertices from a vertex buffer of a given mesh. 
 VertexGeometry* vertexGeom;
 bool isMutable = m_mesh3->GetVertexBuffer()->GetVertexGeometry()->GetVertexArrayResourceHandle().m_isMutable;
 // Get the vertex geometry of the mesh
 if (isMutable) {
 vertexGeom = m_mesh3->GetVertexBuffer()->GetVertexGeometry();
 }
 else {
 DiagnosticPlatform::ConsoleOut("VertexGeometryData not mutable");
 break;
 }
 // The vertex accessor will be used by the vertex geometry modifier to access the vertices
 VertexAccessor accessor(*vertexGeom);

 // Create a vertex geometry modifier specifying as usage the type of vertex attribute
 // which will be changed
 VertexGeometryModifier modifier(*vertexGeom, VertexGeometry::Position , 0);
 Float vertexData[3];
 for(Int i = 0; i<8; i++) {
 if(s_inflate) {
 // Retrieve the position data of the vertex "i" in the vertexData array
 modifier.GetVertexElement(accessor.GetVertex(i), vertexData, 3);

 // Alter the data and set it back
 modifier.SetVertexElement(accessor.GetMutableVertex(i), vertexData[0]*1.3F, vertexData[1]*1.3F, vertexData[2]*1.3F);
 } 
 else {
 // Set the position of the vertex with data get from an array (Float c_positionData[8][3])
 modifier.SetVertexElement(accessor.GetMutableVertex(i), c_positionData[i], 3);
 }
 }

 // Update the vertex buffer on the mesh
 m_mesh3->GetVertexBuffer()->Update(0, m_mesh3->GetVertexBuffer()->GetVertexGeometry()->GetVertexCount());