Looking more closely at this code I can't see how it's possibly correct.
I guess I will have to rewrite it from scratch. applyMatrix is the last thing on my list before I can publish (purge myself of) the work I've been doing for much too long.
Normally changes made to joints don't propagate down to children. This code is modifying all of the children (or all if "global") but not the selected joints themselves.
Doing a simple test with Maverick using the Selected option on all joints produces a different rotation from the Global option.
https://github.com/mick-p1982/mm3d/blob/1cfbf218029d7e2a31dde6ee8f74b84c22617cec/src/libmm3d/model.cc#L1850-L1879
Looking more closely at this code I can't see how it's possibly correct.
I guess I will have to rewrite it from scratch. applyMatrix is the last thing on my list before I can publish (purge myself of) the work I've been doing for much too long.
Normally changes made to joints don't propagate down to children. This code is modifying all of the children (or all if "global") but not the selected joints themselves.
Doing a simple test with Maverick using the Selected option on all joints produces a different rotation from the Global option.