Loading [MathJax]/extensions/TeX/AMSmath.js
Radium Engine  1.5.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
DualQuaternionSkinning.hpp
1 #pragma once
2 
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>
8 
9 namespace Ra {
10 namespace Core {
11 namespace Animation {
12 
13 struct SkinningRefData;
14 struct SkinningFrameData;
15 
16 using DQList = AlignedStdVector<DualQuaternion>;
17 
20 
21 // clang-format off
29 // clang-format on
30 DQList RA_CORE_API computeDQ( const Pose& pose, const WeightMatrix& weight );
31 
35 DQList RA_CORE_API computeDQ_naive( const Pose& pose, const WeightMatrix& weight );
36 
41 Vector3Array RA_CORE_API applyDualQuaternions( const DQList& DQ, const Vector3Array& vertices );
42 
43 // clang-format off
58 // clang-format on
59 void RA_CORE_API dualQuaternionSkinning( const SkinningRefData& refData,
60  const Vector3Array& tangents,
61  const Vector3Array& bitangents,
62  SkinningFrameData& frameData );
64 
65 } // namespace Animation
66 } // namespace Core
67 } // namespace Ra
Definition: Cage.cpp:3