Согласно руководству у вас есть следующие инструменты для работы:
Aff_transformation_2<Kernel> t ( const Rotation, Direction_2<Kernel> d, Kernel::RT num, Kernel::RT den = RT(1))
аппроксимирует вращение на угол, обозначенный направлением d, так что различия между синусами и косинусами вращения, заданного d, и аппроксимирующим вращением составляют не более num / den каждый.
Условие: num / den> 0 и d! = 0.
Aff_transformation_2<Kernel> t.operator* ( s)
составляет два аффинных преобразования.
Aff_transformation_2<Kernel> t.inverse ()
дает обратное преобразование.
С их помощью вы сможете вычислять матрицы, соответствующие двум направлениям, и использовать тождество в виде:
Mat(d1-d2) === Mat(d1)*Inv(Mat(d2))
чтобы получить то, что вы хотите.