-1 for "Mesh". In English, the word "Mesh" cannot in any sense represent the notion of a list containing discrete (non-mesh forming) geometry (e.g. a list of quads).
Correct. But I was thiking it would be ok, because 95% of meshes would truly be meshes; separate primitives would be a specific case -- the only use case that I can see is particles systems.
I don't like VertexArray, it's more an array of primitives (unlike OpenGL, the primitive type is an attribute of the class, it's not given at draw time). However it acts like an array of vertices (operator[] returns a vertex), so... I don't know.
What about sf::Geometry, or sf::Primitives? I guess they are bad too, because of the "array of vertices" semantics.
-1 for "Point". I personally predict that users seeing the name "Vertex" along with a brief description of what that means, will be less confused than a seeing a "Point" class/struct containing all manner of data members which are completely unrelated to the notion of a position in space.
It
is a position in space, with some extra data attached to it.
+1 for VertexArray (and/or possibly even QuadList, TriangleList .etc with the appropriate interface)
I tried this approach before, but these classes would have to return a Quad/Triangle with their operator[], which is not very convenient.