Radium Engine  1.5.20
Loading...
Searching...
No Matches
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
9namespace Ra {
10namespace Core {
11namespace Animation {
12
13struct SkinningRefData;
14struct SkinningFrameData;
15
17
20
21// clang-format off
29// clang-format on
30DQList RA_CORE_API computeDQ( const Pose& pose, const WeightMatrix& weight );
31
35DQList RA_CORE_API computeDQ_naive( const Pose& pose, const WeightMatrix& weight );
36
41Vector3Array RA_CORE_API applyDualQuaternions( const DQList& DQ, const Vector3Array& vertices );
42
43// clang-format off
58// clang-format on
59void 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
std::vector< T, Eigen::aligned_allocator< T > > AlignedStdVector
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:3