How in the world does UE order UV coordinates?

I have looked everywhere, googled everything I could think of, and found nothing about how to specify UV coordinates in C++.

I’m generating a procedural mesh and need to map UV coordinates to the triangles/quads I create.

How on earth do I do that? I have been beating my head against a wall for several days now; thinking it can’t possibly be as confusing as it seems … but so far absolutely nothing has resulted in a texture properly mapping over all the triangles/quads I create.

Specifically, the issue is that I can’t figure out how to specify UVs such that a texture properly scales/tiles across all quads in my mesh. Of course, using the unit coords for a UV range ((1,1), (1,0), (0,0), (0,1)) for every quad works, but that breaks for any non-square quad.

I guess my specific questions are:

  1. What direction are the coordinates specified: clockwise, or counter-clockwise?
  2. Does it matter what order they’re specified in; meaning, does (0,0) (bottom-left in the coord systems I’ve seen up 'til now) need to be specified first?