Hi Graham,
What you state makes me believe that 3dWarp works correctly. When
using the '-matvec_in2out' option, the matrix is applied to the input
dataset directly, solving "x_out = Matrix x_in + Vector" for x_out.
When using '-matvec_out2in', the _inverse_ of the matrix is applied
to the input dataset, solving "x_in = Matrix x_out + Vector" for x_out.
Those equations come from '3dWarp -help' (said for anyone else reading
this :).
Given that, when using RotTest.mat in the "in 2 out" direction, it
should be applied directly, giving the same transformation as with
3dTagalign. When using RotTest.mat in the "out 2 in" direction, the
inverse should be applied, rotating in the opposite direction.
Just to make sure, I ran the same sort of test that you did (using
3drotate, 3dvolreg, and 3dWarp), and it worked as expected.
The basic point is that the inverse matrix is applied in the out2in
case.
Does this explain what you are seeing, or am I not understanding
your message?
Thanks,
- rick