I can think of the following algorithm:
First, choose an ordering of all the vertices of the quotient surface, and then orient all the all the edges that aren't loops along this ordering. This way, all the 2-simplices (triangles) are oriented properly.
So now you only have to consider, for every vertex $v$, the edges that go from $v$ to $v$. You use the local homeomorphism to $\mathbb R^2$ at $v$ to be able to talk about "clockwiseness". Then, you iterate over the edges at $v$ in a clockwise fashion, so that every loop will appear exactly twice. I will elaborate later which edge you start this process at. At each edge, you do the following:
- If that edge goes to a vertex other than $v$, it is already oriented, so you do nothing.
- Otherwise, if the edge is not oriented yet, you orient it so that it points away from $v$ in the region you're considering.
- Otherwise, you already oriented that edge earlier, so now it points towards $v$.
Now, to prove that this results in a proper $\Delta$-complex structure, we can consider that a $2$-simplex is properly oriented if, in the original space, there is one vertex of the $2$-simplex that has two edges pointing away from it.
So let us consider an arbitrary $2$-simplex (in the original space), whose three vertices map to $v$ under the canonical map. Let us call the edge that was oriented first $a$. Then let us call the vertex that $a$ points away from $x$. Now, let us call the other edge at $x$ $b$. Then there are two cases:
- $b$ is oriented in the next step after $a$ was oriented: In this case, $b$ points away from $x$ as well, so we are done!
- $b$ is the last in the sequence of edges, while $a$ is the first. In this case, $b$ will point towards $x$, so the algorithm only works if the third edge points from the other end of $b$ towards the other end of $a$. We will choose the starting edge of our iteration to ensure that.
So at which edge should the process start? If one edge is not a loop, we can start at this edge, since then the $2$-simplices adjacent to it will be properly oriented already. Otherwise, we need some definitions:
A half-edge will be the part of an edge (in the quotient space) that touches $v$. The twin of a half-edge $\alpha$ (denoted $T(\alpha)$) will the other half-edge that touches $v$. The successor of a half-edge $\alpha$ (denoted $S(\alpha)$) will be the next half-edge in the clockwise ordering. Let $X(\alpha) = T(S(\alpha))$.
The next $2$-simplex of a half-edge will be the the $2$-simplex between that half-edge and its successor. For any half-edge $\alpha$, the $2$-simplex next to $\alpha$ will also be the $2$-simplex next to $X(\alpha)$, so $X^3(\alpha) = \alpha$.
So if you go from $\alpha$ to $X(\alpha)$ to $X(X(\alpha))$ and back to $\alpha$ while always going clockwise, you will take either one or two turns around $v$. If you took one turn, we will call the next $2$-simplex of $\alpha$ bad, otherwise we will call it good.
Now, there has to be at least one good $2$-simplex at $v$. Otherwise, let $\alpha$ be some half-edge. Then, we have $T(X(\alpha) = S(\alpha)$, so in the clockwise ordering, $X(S(\alpha))$ will be strictly between $S(\alpha)$ and $X(\alpha)$. Similarly, $X(S(S(\alpha)))$ will be strictly between $S(S(\alpha))$ and $X(S(\alpha))$, and so on, which is a contradiction since there are only finitely many edges.
So let $\beta$ be some half-edge so that the next $2$-simplex is good. Then we start the process at $S(\beta)$ and end it at $\beta$. To see that this $2$-simplex will be properly oriented, observe the sequence in which its half-edges are visited:
- $S(\beta)$ is oriented to point away from $v$, so $X(\beta)$ points towards $v$.
- $X(X(\beta))$ is oriented to point away from $v$, so $S(X(\beta))$ points towards $v$.
- $S(X(X(\beta))$ is oriented to point away from $v$, so $\beta$ points towards $v$.
So since both $X(X(\beta))$ and $S(X(\beta))$ point away from $v$, this $2$-simplex is properly oriented.
I feel like I probably reinvented the wheel pretty badly here, so does anybody know some concepts that I used, or some useful notation, or some way of simplifying this?