Sound like semantics but for me it makes more sense to say openGL matrix operations occur from right-to-left (or bottom-to-top in C-code).

For instance say you have code like

```
glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); // load Matrix => MV=I
glTranslatef(car_x_pos, car_y_pos, car_z_pos); // times Matrix T => MV=I*T
glRotatef(RAD_TO_DEG * car_direction, 0.0, 0.0, -1.0); // times Matrix R => MV=I*T*R
glScalef(Sx,Sy,Sz); // times Matrix S => MV=I*T*R*S
draw(P); // draw points P'= MV*P = I*T*R*S*P
```

The effective operation order is of scaling first, then rotation, then translating. I think of operations going from bottom-to-top in openGL code which corresponds to right-to-left in matrix operations as

P’ = I*T*R*S*P