3 #include <Core/Animation/HandleWeight.hpp>
4 #include <Core/Animation/Pose.hpp>
5 #include <Core/Containers/AlignedStdVector.hpp>
6 #include <Core/Containers/VectorArray.hpp>
7 #include <Core/Math/DualQuaternion.hpp>
13 struct SkinningRefData;
14 struct SkinningFrameData;
16 using DQList = AlignedStdVector<DualQuaternion>;
30 DQList RA_CORE_API computeDQ(
const Pose& pose,
const WeightMatrix& weight );
35 DQList RA_CORE_API computeDQ_naive(
const Pose& pose,
const WeightMatrix& weight );
41 Vector3Array RA_CORE_API applyDualQuaternions(
const DQList& DQ,
const Vector3Array& vertices );
59 void RA_CORE_API dualQuaternionSkinning(
const SkinningRefData& refData,
60 const Vector3Array& tangents,
61 const Vector3Array& bitangents,
62 SkinningFrameData& frameData );