How can I get the position of a Vertex on a surface?

I am going through my mesh and I need to return the position of one of them in world space. Vector3.Position()
I am able to get a position with something like this:

Vector3 vertPos = gameobj.transform.position + transform.TransformDirection(meshVerts[0]);

But for something like this it wont work if I rotate the object.

I am unable to return a vector3 in world coordinates with transform.TransformDirection() or transform.TransformPoint()
Is this a bug or am I doing something wrong?

I think what your looking for is

Vector3 vertPos = transform.TransformPoint(meshVerts[0]);

That takes a point in space that is relative to the Transform’s origin and converts it to world space.