I asked this on reddit and made some head way but I am still unable to see the triangle when running. The mesh is added to the scene when executed and a print statement in the GDNative code prints out. I suspect that the material is not being applied to the mesh but it could be something else. Thanks for the help. Here is the code:
Godot::print("Working");
MeshInstance *meshInstance = MeshInstance::_new();
ArrayMesh *arrayMesh = ArrayMesh::_new();
SurfaceTool *surfaceTool = SurfaceTool::_new();
SpatialMaterial *material = SpatialMaterial::_new();
meshInstance->translate(Vector3(0, 0, 0));
material->set_albedo(Color(255/255, 144/255, 144/255, 255/255));
material->set_specular_mode(material->FLAG_UNSHADED);
material->set_cull_mode(material->CULL_DISABLED);
meshInstance->set_material_override(material);
meshInstance->set_name("Tri");
surfaceTool->begin(Mesh::PRIMITIVE_TRIANGLES);
surfaceTool->add_uv(Vector2(0, 0));
surfaceTool->add_vertex(Vector3(-10.0, -10.0, 0.0));
surfaceTool->add_uv(Vector2(0.5, 1));
surfaceTool->add_vertex(Vector3(0.0, 10.0, 0.0));
surfaceTool->add_uv(Vector2(1, 0));
surfaceTool->add_vertex(Vector3(10.0, -10.0, 0.0));
surfaceTool->generate_normals();
surfaceTool->index();
surfaceTool->commit(arrayMesh);
meshInstance->set_mesh(arrayMesh);
add_child(meshInstance);