Create mesh programmatically

chrissly::graphics::Vertex vtxData[3U] =
{
    {0.0f, 0.0f, 0xffffffff, 0.0f, 0.0f, 1.0f, -0.5f , -0.5f, 0.0f},
    {0.0f, 0.0f, 0xffffffff, 0.0f, 0.0f, 1.0f,  0.5f , -0.5f, 0.0f},
    {0.0f, 0.0f, 0xffffffff, 0.0f, 0.0f, 1.0f,  0.0f ,  0.5f, 0.0f}
};
HardwareVertexBuffer* vertexBuffer = CE_NEW HardwareVertexBuffer(3U, 36U, HBU_STATIC, false);
void* buffer = vertexBuffer->Map();
memcpy(buffer, vtxData, sizeof(vtxData));
vertexBuffer->Unmap();
Mesh* mesh = MeshManager::Instance()->CreateManual("mytrianglemesh");
SubMesh* subMesh = mesh->CreateSubMesh();
subMesh->vertexData = CE_NEW VertexData(vertexBuffer);
subMesh->SetMaterialName("green_material");
subMesh->topology = PT_TRIANGLELIST;
Entity* entity = SceneManager::Instance()->CreateEntity("mytrianglemesh");
sceneNode->AttachObject(entity);