Order of calling setPos, setScale and setHpr

When we call these functions in different orders do we get always the same results or are there any special cases where this doesn’t happen?

They are generally treated independently, so normally order doesn’t matter. One special case I can think of off the top of my head is when you are using relative setPos, setHpr, etc. operations–when the first parameter is another NodePath. In this case, it forces a transform compose and decompose operation, so you can get slightly different answers from doing it in a different order (but only due to numerical imprecision).