3#include <Core/Animation/HandleWeight.hpp>
4#include <Core/CoreMacros.hpp>
5#include <Core/RaCore.hpp>
6#include <Eigen/SparseCore>
17RA_CORE_API WeightMatrix extractWeightMatrix(
const MeshWeight& weight,
const uint handle_size );
22RA_CORE_API MeshWeight extractMeshWeight( Eigen::Ref<const WeightMatrix> matrix );
30RA_CORE_API WeightMatrix partitionOfUnity( Eigen::Ref<const WeightMatrix> weights );
35RA_CORE_API uint getMaxWeightIndex( Eigen::Ref<const WeightMatrix> weights,
const uint vertexID );
40RA_CORE_API
void getMaxWeightIndex( Eigen::Ref<const WeightMatrix> weights,
46RA_CORE_API
bool checkWeightMatrix( Eigen::Ref<const WeightMatrix> matrix,
47 const bool FAIL_ON_ASSERT =
false,
48 const bool MT =
false );
50RA_CORE_API
bool checkNoWeightVertex( Eigen::Ref<const WeightMatrix> matrix,
51 const bool FAIL_ON_ASSERT =
false,
52 const bool MT =
false );
58RA_CORE_API
bool normalizeWeights( Eigen::Ref<WeightMatrix> matrix,
const bool MT =
false );
hepler function to manage enum as underlying types in VariableSet