Merge pull request #19026 from chargerKong:dualquat
Dual quaternion
* create dual quaternion;
basic operations, functions(exp,log,norm,inv), to/from mat, sclerp.
* add dqb, dqs, gdqb, to/from affine3;
change algorithm of norm, inv, getTranslation, createFromPitch, normalize;
change type translation to Vec3;
comment improve;
* try fix warning: unreferenced local function
* change exp calculation;
add func(obj) operations;
* Change the algorithm of log function;
add assumeUnit in getRotation;
remove dqs;
change std::vector to InputArray
* fix warning: doxygen and Vec<double, 0>
* fix warning: doxygen and Vec<double, 0>
* add inputarray param for gdqb
* change int to size_t
* win cl warning fix
* replace size_t by int at using Mat.at() function
* replace double by float
* interpolation fix
* replace (i, 0) to (i)
* core(quat): exclude ABI, test_dualquaternion=>test_quaternion.cpp
Co-authored-by: arsaratovtsev <arsaratovtsev@intel.com>
Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>