How does blitz read the order in which the triangle is created, and use that to define which way the triangle faces?
Well, when you do an AddTriangle (surface,v0,v1,v2) Blitz assumes that v0-v1-v2 are in clockwise order.
Why is this done?...
If you have an object made of triangles ( take a classic tea pot shape for example ) it is obvious to you and me which direction each triangle should face ( after all it is a solid object so should look like one ) but a programming language needs some way of being told which way each individual triangle is facing.
Of course apart from making sure an object is drawn correctly, knowing which way a triangle is facing also allows the renderer to throw away triangles facing away from the camera and so speed up rendering greatly.
For an in depth explanation you could look at winding order...thats the technical term for which way a triangles vertices are ordered.