Files
UnrealEngine/Engine/Plugins/Animation/GeneSplicer/Source/GeneSplicerLibTest/Private/gstests/Fixtures.cpp
2025-05-18 13:04:45 +08:00

1692 lines
64 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "gstests/Fixtures.h"
#include "genesplicer/TypeDefs.h"
#include "genesplicer/dna/Aliases.h"
#include "genesplicer/types/Block.h"
#include <cstddef>
#include <cstdint>
#ifdef _MSC_VER
#pragma warning(disable : 4503)
#endif
namespace gs4 {
namespace canonical {
// *INDENT-OFF*
const Matrix<Matrix<float> > neutralMeshes = {
{ // DNA-0
{ // Mesh-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f}, // Xs
{2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // Mesh-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f}, // Xs
{2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
},
{ // DNA-1
{ // Mesh-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f}, // Xs
{1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // Mesh-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 2.0f}, // Xs
{1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
},
{ // DNA arch
{ // Mesh-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f}, // Xs
{1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // Mesh-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f, 0.5f, 0.0f, 1.5f}, // Xs
{1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f, 1.5f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
},
{ // DNA expected
{ // Mesh-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f}, // Xs
{1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // Mesh-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f, 0.46f, 0.0f, 1.3f}, // Xs
{1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f, 1.46f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
}
};
const Matrix<Matrix<float> > skinWeightsValues = {
{ // DNA-0
{ // Mesh-0
{1.0f}, // V0 {J0}
{1.0f}, // V1 {J1}
{1.0f}, // V2 {J2}
{0.4f, 0.6f}, // V3 {J0, J1}
{0.2f, 0.8f}, // V4 {J0, J2}
{0.1f, 0.9f}, // V5 {J0, J1}
{1.0f}, // V6 {J0}
{1.0f}, // V7 {J1}
{1.0f}, // V8 {J2}
{1.0f}, // V9 {J0}
{1.0f}, // V10 {J1}
{1.0f}, // V11 {J2}
{1.0f}, // V12 {J0}
{1.0f}, // V13 {J1}
{1.0f}, // V14 {J2}
{1.0f}, // V15 {J0}
{1.0f}, // V16 {J1}
{1.0f}, // V17 {J2}
{1.0f}, // V18 {J0}
{1.0f}, // V19 {J1}
{1.0f} // V20 {J2}
},
{ // Mesh-1
{1.0f}, // V0 {J0}
{1.0f}, // V1 {J1}
{1.0f}, // V2 {J2}
{0.4f, 0.6f}, // V3 {J0, J1}
{0.2f, 0.8f}, // V4 {J0, J2}
{0.1f, 0.9f}, // V5 {J0, J1}
{1.0f}, // V6 {J0}
{1.0f}, // V7 {J1}
{1.0f}, // V8 {J2}
{1.0f}, // V9 {J0}
{1.0f}, // V10 {J1}
{1.0f}, // V11 {J2}
{1.0f}, // V12 {J0}
{1.0f}, // V13 {J1}
{1.0f}, // V14 {J2}
{1.0f}, // V15 {J0}
{1.0f}, // V16 {J1}
{1.0f}, // V17 {J2}
{1.0f}, // V18 {J0}
{1.0f}, // V19 {J1}
{1.0f} // V20 {J2}
}
},
{ // DNA-1
{ // Mesh-0
{1.0f}, // V0 {J2}
{1.0f}, // V1 {J1}
{1.0f}, // V2 {J0}
{0.5f, 0.5f}, // V3 {J1, J2}
{0.2f, 0.8f}, // V4 {J0, J1}
{0.8f, 0.2f}, // V5 {J1, J2}
{0.4f, 0.6f}, // V6 {J0, J2}
{1.0f}, // V7 {J0}
{1.0f}, // V8 {J1}
{1.0f}, // V9 {J2}
{1.0f}, // V10 {J0}
{1.0f}, // V11 {J1}
{1.0f}, // V12 {J2}
{1.0f}, // V13 {J0}
{1.0f}, // V14 {J1}
{1.0f}, // V15 {J2}
{1.0f}, // V16 {J0}
{1.0f}, // V17 {J1}
{1.0f}, // V18 {J2}
{1.0f}, // V19 {J0}
{1.0f} // V20 {J1}
},
{ // Mesh-1
{1.0f}, // V0 {J2}
{1.0f}, // V1 {J1}
{1.0f}, // V2 {J0}
{0.5f, 0.5f}, // V3 {J1, J2}
{0.2f, 0.8f}, // V4 {J0, J1}
{0.8f, 0.2f}, // V5 {J1, J2}
{0.4f, 0.6f}, // V6 {J0, J2}
{1.0f}, // V7 {J0}
{1.0f}, // V8 {J1}
{1.0f}, // V9 {J2}
{1.0f}, // V10 {J0}
{1.0f}, // V11 {J1}
{1.0f}, // V12 {J2}
{1.0f}, // V13 {J0}
{1.0f}, // V14 {J1}
{1.0f}, // V15 {J2}
{1.0f}, // V16 {J0}
{1.0f}, // V17 {J1}
{1.0f}, // V18 {J2}
{1.0f}, // V19 {J0}
{1.0f} // V20 {J1}
}
},
{ // DNA arch
{ // Mesh-0
{0.5f, 0.5f}, // V0
{1.0f}, // V1
{0.5f, 0.5f}, // V2
{0.6875f, 0.3125f}, // V3
{0.667f, 0.333f}, // V4
{0.833f, 0.167f}, // V5
{0.7f, 0.3f}, // V6
{0.5f, 0.5f}, // V7
{0.5f, 0.5f}, // V8
{0.5f, 0.5f}, // V9
{0.5f, 0.5f}, // V10
{0.5f, 0.5f}, // V11
{0.5f, 0.5f}, // V12
{0.5f, 0.5f}, // V13
{0.5f, 0.5f}, // V14
{0.5f, 0.5f}, // V15
{0.5f, 0.5f}, // V16
{0.5f, 0.5f}, // V17
{0.5f, 0.5f}, // V18
{0.5f, 0.5f}, // V19
{0.5f, 0.5f} // V20
},
{ // Mesh-1
{0.5f, 0.5f}, // V0
{1.0f}, // V1
{0.5f, 0.5f}, // V2
{0.6875f, 0.3125f}, // V3
{0.667f, 0.333f}, // V4
{0.833f, 0.167f}, // V5
{0.7f, 0.3f}, // V6
{0.5f, 0.5f}, // V7
{0.5f, 0.5f}, // V8
{0.5f, 0.5f}, // V9
{0.5f, 0.5f}, // V10
{0.5f, 0.5f}, // V11
{0.5f, 0.5f}, // V12
{0.5f, 0.5f}, // V13
{0.5f, 0.5f}, // V14
{0.5f, 0.5f}, // V15
{0.5f, 0.5f}, // V16
{0.5f, 0.5f}, // V17
{0.5f, 0.5f}, // V18
{0.5f, 0.5f}, // V19
{0.5f, 0.5f} // V20
}
},
{ // DNA expected
{ // Mesh-0
{0.471830985915493f, 0.528169014084507f}, // V0 {J0, J2}
{1.0f}, // V1 {J1}
{0.16667f, 0.83333f}, // V2 {J0, J2}
{0.6745f, 0.3255f}, // V3 {J1, J2}
{0.625f, 0.375f}, // V4{J1, J2}
{0.913793103448276f, 0.086206896551724f}, // V5 {J1, J0}
{0.683098591549296f, 0.316901408450704f}, // V6 {J0, j2}
{0.625f, 0.375f}, // V7 {J0, J1}
{0.16667f, 0.83333f}, // V8 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V9 {J0, J2}
{0.625f, 0.375f}, // V10 {J0, J1}
{0.16667f, 0.83333f}, // V11 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V12 {J0, J2}
{0.625f, 0.375f}, // V13 {J0, J1}
{0.16667f, 0.83333f}, // V14 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V15 {J0, J2}
{0.625f, 0.375f}, // V16 {J0, J1}
{0.16667f, 0.83333f}, // V17 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V18 {J0, J2}
{0.625f, 0.375f}, // V19 {J0, J1}
{0.16667f, 0.83333f}, // V20 {J1, J2}
},
{ // Mesh-1
{0.471830985915493f, 0.528169014084507f}, // V0 {J0, J2}
{1.0f}, // V1 {J1}
{0.16667f, 0.83333f}, // V2 {J0, J2}
{0.6745f, 0.3255f}, // V3 {J1, J2}
{0.625f, 0.375f}, // V4{J1, J2}
{0.913793103448276f, 0.086206896551724f}, // V5 {J1, J0}
{0.683098591549296f, 0.316901408450704f}, // V6 {J0, j2}
{0.625f, 0.375f}, // V7 {J0, J1}
{0.16667f, 0.83333f}, // V8 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V9 {J0, J2}
{0.625f, 0.375f}, // V10 {J0, J1}
{0.16667f, 0.83333f}, // V11 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V12 {J0, J2}
{0.625f, 0.375f}, // V13 {J0, J1}
{0.16667f, 0.83333f}, // V14 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V15 {J0, J2}
{0.625f, 0.375f}, // V16 {J0, J1}
{0.16667f, 0.83333f}, // V17 {J1, J2}
{0.471830985915493f, 0.528169014084507f}, // V18 {J0, J2}
{0.625f, 0.375f}, // V19 {J0, J1}
{0.16667f, 0.83333f}, // V20 {J1, J2}
}
}
};
const Matrix<Matrix<std::uint16_t> > skinWeightsJointIndices = {
{ // DNA-0
{ // Mesh-0
{0}, // V0
{1}, // V1
{2}, // V2
{0, 1}, // V3
{0, 2}, // V4
{0, 1}, // V5
{0}, // V6
{1}, // V7
{2}, // V8
{0}, // V9
{1}, // V10
{2}, // V11
{0}, // V12
{1}, // V13
{2}, // V14
{0}, // V15
{1}, // V16
{2}, // V17
{0}, // V18
{1}, // V19
{2} // V20
},
{ // Mesh-1
{0}, // V0
{1}, // V1
{2}, // V2
{0, 1}, // V3
{0, 2}, // V4
{0, 1}, // V5
{0}, // V6
{1}, // V7
{2}, // V8
{0}, // V9
{1}, // V10
{2}, // V11
{0}, // V12
{1}, // V13
{2}, // V14
{0}, // V15
{1}, // V16
{2}, // V17
{0}, // V18
{1}, // V19
{2} // V20
}
},
{ // DNA-1
{ // Mesh-0
{2}, // V0
{1}, // V1
{0}, // V2
{1, 2}, // V3
{0, 1}, // V4
{1, 2}, // V5
{0, 2}, // V6
{0}, // V7
{1}, // V8
{2}, // V9
{0}, // V10
{1}, // V11
{2}, // V12
{0}, // V13
{1}, // V14
{2}, // V15
{0}, // V16
{1}, // V17
{2}, // V18
{0}, // V19
{1} // V20
},
{ // Mesh-1
{2}, // V0
{1}, // V1
{0}, // V2
{1, 2}, // V3
{0, 1}, // V4
{1, 2}, // V5
{0, 2}, // V6
{0}, // V7
{1}, // V8
{2}, // V9
{0}, // V10
{1}, // V11
{2}, // V12
{0}, // V13
{1}, // V14
{2}, // V15
{0}, // V16
{1}, // V17
{2}, // V18
{0}, // V19
{1} // V20
}
},
{ // DNA arch
{ // Mesh-0
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{1, 2}, // V3
{0, 2}, // V4
{1, 2}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
},
{ // Mesh-1
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{1, 2}, // V3
{0, 2}, // V4
{1, 2}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
}
},
{ // DNA expected
{ // Mesh-0
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{1, 2}, // V3
{1, 2}, // V4
{1, 0}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
},
{ // Mesh-1
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{1, 2}, // V3
{1, 2}, // V4
{1, 0}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
}
}
};
const Vector<Matrix<float> > neutralJointTranslations = {
{ // DNA-0
// J0 J1 J2
{1.0f, 0.484f, 0.091f}, // Xs
{1.0f, 0.502f, 0.215f}, // Ys
{1.0f, 0.513f, 0.293f} // Zs
},
{ // DNA-1
// J0 J1 J2
{0.6f, 0.989f, 0.307f}, // Xs
{0.6f, 1.001f, 0.173f}, // Ys
{0.6f, 1.01f, 0.126f} // Zs
},
{ // DNA arch
// J0 J1 J2
{0.8f, 0.734f, 0.196f}, // Xs
{0.8f, 0.752f, 0.2f}, // Ys
{0.8f, 0.763f, 0.203f} // Zs
},
{ // DNA expected
// J0 J1 J2
{0.8f, 0.7550f, 0.1528f}, // Xs
{0.8f, 0.7715f, 0.1713f}, // Ys
{0.8f, 0.7833f, 0.1925f}, // Zs
}
};
const Vector<Matrix<float> > neutralJointRotations = {
{ // DNA-0
// J0 J1 J2
{10.0f, 5.0f, 10.0f}, // Xs
{10.0f, 5.0f, 20.0f}, // Ys
{10.0f, 5.0f, 30.0f} // Zs
},
{ // DNA-1
// J0 J1 J2
{6.0f, 10.0f, 30.0f}, // Xs
{6.0f, 10.0f, 20.0f}, // Ys
{6.0f, 10.0f, 10.0f} // Zs
},
{ // DNA arch
// J0 J1 J2
{8.0f, 7.5f, 20.0f}, // Xs
{8.0f, 7.5f, 20.0f}, // Ys
{8.0f, 7.5f, 20.0f} // Zs
},
{ // DNA expected
// J0 J1 J2
{8.0f, 7.5464f, 17.7917f}, // Xs
{8.0f, 7.8324f, 19.7221f}, // Ys
{8.0f, 7.5475f, 21.1838f}, // Zs
}
};
const Vector<Matrix<std::uint16_t> > jointGroupJointIndices = {
{ // DNA-0
{0, 1}, // JointGroup-0
{2} // JointGroup-1
},
{ // DNA-1
{0, 1}, // JointGroup-0
{2} // JointGroup-1
},
{ // DNA arch
{0, 1}, // JointGroup-0
{2} // JointGroup-1
},
{ // DNA expected
{0, 1}, // JointGroup-0
{2} // JointGroup-1
}
};
const Vector<Matrix<std::uint16_t> > jointGroupOutputIndices = {
{ // DNA-0
{1, 3, 7}, // JointGroup-0
{19, 20, 21} // JointGroup-1
},
{ // DNA-1
{0, 1, 2, 6, 11, 12, 13}, // JointGroup-0
{21, 22, 23} // JointGroup-1
},
{ // DNA arch
{1, 3, 7, 10, 12}, // JointGroup-0
{19, 20, 21, 22, 23} // JointGroup-1
},
{ // DNA expected
{0, 1, 2, 3, 6, 7, 10, 11, 12, 13}, // JointGroup-0
{19, 20, 21, 22, 23} // JointGroup-1
},
{ // Combined DNA0 DNA1
{0, 1, 2, 3, 6, 7, 11, 12, 13}, // JointGroup-0
{19, 20, 21, 22, 23} // JointGroup-1
}
};
const Matrix<std::uint16_t> jointGroupInputIndices = {
{1, 2}, // JointGroup-0
{4, 5} // JointGroup-1
};
const Vector<Matrix<float> > jointGroupValues = {
{ // DNA-0
{ // Joint group-0
0.1f, 0.1f, // O1
0.3f, 0.3f, // O3
0.7f, 0.7f // O7
},
{ // Joint group-1
0.1f, 0.1f, // O19
0.5f, 0.5f, // O20
1.0f, 1.0f // O21
}
},
{ // DNA-1
{ // Joint group-0
0.05f, 0.05f, // O0
0.1f, 0.1f, // O1
0.2f, 0.2f, // O2
0.6f, 0.6f, // O6
1.1f, 1.1f, // O11
1.2f, 1.2f, // O12
1.3f, 1.3f // O13
},
{ // Joint group-1
0.1f, 0.1f, // O21
0.2f, 0.2f, // O22
0.3f, 0.3f // O23
}
},
{ // DNA arch
{ // Joint group-0
0.05f, 0.05f, // O1
0.15f, 0.15f, // O3
0.6f, 0.6f, // O7
0.5f, 0.5f, // O10
0.1f, 0.1f // O12
},
{ // Joint group-1
0.05f, 0.05f, // O19
0.25f, 0.25f, // O20
0.55f, 0.55f, // O21
0.1f, 0.1f, // O22
0.15f, 0.15f // O23
}
},
{ // DNA expected
{ // Joint group-0
0.0f, 0.0f, // O0
0.05f, 0.05f, // O1
0.0f, 0.0f, // O2
0.15f, 0.15f, // O3
0.0f, 0.0f, // O6
0.6f, 0.6f, // O7
-0.3f, -0.3f, // O10
1.1f, 1.1f, // O11
1.14f, 1.14f, // O12
1.3f, 1.3f, // O13
},
{ // Joint group-1
0.058f, 0.058f, // O19
0.29f, 0.29f, // O20
0.622f, 0.622f, // O21
0.084f, 0.084f, // O22
0.126f, 0.126f // O23
}
}
};
const Vector<AlignedVector<float>> accustomedArchetypeJointGroupValues = {
{ // Joint group-0
0.0f, 0.0f, // O0
0.05f, 0.05f, // O1
0.0f, 0.0f, // O2
0.15f, 0.15f, // O3
0.0f, 0.0f, // O6
0.6f, 0.6f, // O7
0.5f, 0.5f, // O10
0.0f, 0.0f, // O11
0.1f, 0.1f, // O12
0.0f, 0.0f, // O13
},
{ // Joint group-1
0.05f, 0.05f, // O19
0.25f, 0.25f, // O20
0.55f, 0.55f, // O21
0.1f, 0.1f, // O22
0.15f, 0.15f // O23
}
};
const Vector<Matrix<std::uint16_t> > jointGroupLODs = {
{ // DNA0
{3, 3, 3}, // Joint group-0
{3, 3, 3} // Joint group-1
},
{ // DNA1
{7, 4, 4}, // Joint group-0
{3, 3, 3} // Joint group-1
},
{ // DNA arch
{5, 3, 3}, // Joint group-0
{5, 5, 5} // Joint group-1
},
{ // DNA expected
{10, 6, 6}, // Joint group-0
{5, 5, 5} // Joint group-1
},
{ // Combined DNA0 DNA1
{9, 6, 6}, // JointGroup-0
{5, 5, 5} // JointGroup-1
}
};
const Vector<Matrix<std::uint32_t> > blendShapeTargetVertexIndices = {
{ // DNA-0
{0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20}, // BlendShape-0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20} // BlendShape-1
},
{ // DNA-1
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, // BlendShape-0
{0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 19, 20} // BlendShape-1
},
{ // DNA arch
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, // BlendShape-0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20} // BlendShape-1
},
{ // DNA expected
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, // BlendShape-0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} // BlendShape-1
}
};
const Matrix<Matrix<float> > blendShapeTargetDeltas = {
{ // DNA-0
{ // BlendShape-0
// V0 V2 V3 V5 V6 V8 V9 V11 V12 V14 V15 V17 V18 V20
{0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f}, // Xs
{0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f}, // Ys
{0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f, 0.73f, 0.1f} // Zs
},
{ // BlendShape-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V20
{-0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, -0.1f}, // Xs
{-0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, -0.1f}, // Ys
{-0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, 1.0f, -0.1f, -0.73f, -0.1f} // Zs
}
},
{ // DNA-1
{ // BlendShape-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{-0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, }, // Xs
{-0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, }, // Ys
{-0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, -0.57f, 1.0f, -0.5f, } // Zs
},
{ // BlendShape-1
// V0 V2 V3 V5 V6 V8 V9 V11 V12 V14 V15 V17 V18 v19 V20
{0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.5f }, // Xs
{0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.5f }, // Ys
{0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.57f, 0.5f, 0.5f } // Zs
}
},
{ // DNA arch
{ // BlendShape-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f}, // Xs
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f}, // Ys
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f} // Zs
},
{ // BlendShape-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V20
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.2f}, // Xs
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.2f}, // Ys
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.2f} // Zs
}
},
{ // DNA expected
{ // BlendShape-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V 16 V17 V18 V19 V20
{0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f}, // Xs
{0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f}, // Ys
{0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f, 0.028f, 0.62f, -0.08f} // Zs
},
{ // BlendShape-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 , v19 V20
{-0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.30f, 0.08f}, // Xs
{-0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.30f, 0.08f}, // Ys
{-0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.38f, 0.08f, -0.028f, 0.30f, 0.08f} // Zs
}
}
};
const Vector<Matrix<XYZBlock<16u> > > expectedNeutralMeshPoolValues = {
{ //Mesh 0
{ // Pool0
{ // DNA0
{0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f}, // Xs
{0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{-0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f}, // Xs
{-0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
},
{ // Pool1
{ // DNA0
{0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{0.0f, 0.5f, -0.5f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.0f, 0.0f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
}
},
{ //Mesh 1
{ // Pool0
{ // DNA0
{0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.5f}, // Xs
{0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{-0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.5f}, // Xs
{-0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, -0.5f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
},
{ // Pool1
{ // DNA0
{0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{0.0f, 0.5f, -0.5f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.0f, 0.0f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
}
}
};
const Matrix<XYZBlock<16u> > expectedNeutralJointPoolTranslations = {
{ // Pool0
{ // DNA0
{0.2f, -0.0491f, -0.122f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.2f, -0.0503f, -0.082f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.2f, -0.0504f, 0.0627f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{-0.2f, 0.0509f, 0.1351f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{-0.2f, 0.0498f, 0.0731f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{-0.2f, 0.0499f, -0.0584f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
}
};
const Matrix<XYZBlock<16u> > expectedNeutralJointPoolRotations = {
{ // Pool0
{ // DNA0
{0.0349f, -0.0117f, -0.1781f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{0.0349f, -0.0051f, -0.0617f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{0.0349f, -0.0128f, 0.1510f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
},
{ // DNA1
{-0.0349f, 0.0081f, 0.1642f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Xs
{-0.0349f, 0.0087f, 0.0678f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // Ys
{-0.0349f, 0.0094f, -0.1592f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // Zs
}
}
};
const Vector<Vector<std::size_t> > expectedBlendShapePoolBucketOffsets = {
{ // Mesh 0
{
0u, 6u, 12u
}
},
{ // Mesh 1
{
12u, 18u, 24u
}
}
};
const Vector<std::uint32_t> expectedBlendShapePoolBucketVertexIndices = {
0u, 4u, 8u, 12u, 16u, 20u, 0u, 4u, 8u, 12u, 16u, 20u, 0u, 4u, 8u, 12u, 16u, 20u, 0u, 4u, 8u, 12u, 16u, 20u
};
const Vector<std::size_t> expectedBlendShapePoolBucketDNABlockOffsets {
0u, 2u, 4u, 6u, 8u, 10u, 12u, 14u, 16u, 18u, 20u, 22u, 24u, 26u, 28u, 30u, 32u, 34u, 36u, 38u, 40u, 42u, 44u, 46u, 48u
};
const Vector<XYZBlock<4u> > expectedBlendShapePoolDNADeltas = {
//Mesh 0
// BlendShape 0
// Bucket 0
{// DNA 0
// v0 v1 v2 v3
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f}
},
{ // DNA 1
// v0 v1 v2 v3
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f}
},
// Bucket 1
{ // DNA 0
// v4 v5 v6 v7
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f}
},
{ // DNA 1
// v4 v5 v6 v7
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f}
},
// Bucket 2
{ // DNA 0
// v8 v9 v10 v11
{0.1f, 0.73f, 0.0f, 0.1f},
{0.1f, 0.73f, 0.0f, 0.1f},
{0.1f, 0.73f, 0.0f, 0.1f}
},
{ // DNA 1
// v8 v9 v10 v11
{-0.5f, -0.57f, 1.0f, -0.5f},
{-0.5f, -0.57f, 1.0f, -0.5f},
{-0.5f, -0.57f, 1.0f, -0.5f}
},
// Bucket 3
{ // DNA 0
// v12 v13 v14 v15
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f}
},
{ // DNA 1
// v12 v13 v14 v15
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f}
},
// Bucket 4
{ // DNA 0
// v16 v17 v18 v19
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f}
},
{ // DNA 1
// v16 v17 v18 v19
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f}
},
// Bucket 5
{ // DNA 0
// v20 p p p
{0.1f, 0.0f, 0.0f, 0.0f},
{0.1f, 0.0f, 0.0f, 0.0f},
{0.1f, 0.0f, 0.0f, 0.0f}
},
{ // DNA 1
// v20 p p p
{-0.5f, 0.0f, 0.0f, 0.0f},
{-0.5f, 0.0f, 0.0f, 0.0f},
{-0.5f, 0.0f, 0.0f, 0.0f}
},
// BlendShape 1
// Bucket 0
{ // DNA 0
// v0 v1 v2 v3
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f}
},
{ // DNA 1
// v0 v1 v2 v3
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f}
},
// Bucket 1
{ // DNA 0
// v4 v5 v6 v7
{1.0f, -0.1f, -0.73f, 1.0f},
{1.0f, -0.1f, -0.73f, 1.0f},
{1.0f, -0.1f, -0.73f, 1.0f}
},
{ // DNA 1
// v4 v5 v6 v7
{0.0f, 0.5f, 0.57f, 0.0f},
{0.0f, 0.5f, 0.57f, 0.0f},
{0.0f, 0.5f, 0.57f, 0.0f}
},
// Bucket 2
{ // DNA 0
// v8 v9 v10 v11
{-0.1f, -0.73f, 1.0f, -0.1f},
{-0.1f, -0.73f, 1.0f, -0.1f},
{-0.1f, -0.73f, 1.0f, -0.1f}
},
{ // DNA 1
// v8 v9 v10 v11
{0.5f, 0.57f, 0.0f, 0.5f},
{0.5f, 0.57f, 0.0f, 0.5f},
{0.5f, 0.57f, 0.0f, 0.5f}
},
// Bucket 3
{ // DNA 0
// v12 v13 v14 v15
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f}
},
{ // DNA 1
// v12 v13 v14 v15
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f}
},
// Bucket 4
{ // DNA 0
// v16 v17 v18 v19
{1.0f, -0.1f, -0.73f, 0.0f},
{1.0f, -0.1f, -0.73f, 0.0f},
{1.0f, -0.1f, -0.73f, 0.0f}
},
{ // DNA 1
// v16 v17 v18 v19
{0.0f, 0.5f, 0.57f, 0.5f},
{0.0f, 0.5f, 0.57f, 0.5f},
{0.0f, 0.5f, 0.57f, 0.5f}
},
// Bucket 5
{ // DNA 0
// v20 p p p
{-0.1f, 0.0f, 0.0f, 0.0f},
{-0.1f, 0.0f, 0.0f, 0.0f},
{-0.1f, 0.0f, 0.0f, 0.0f}
},
{ // DNA 1
// v20 p p p
{0.5f, 0.0f, 0.0f, 0.0f},
{0.5f, 0.0f, 0.0f, 0.0f},
{0.5f, 0.0f, 0.0f, 0.0f}
},
// Mesh 1
// BlendShape 0
// Bucket 0
{// DNA 0
// v0 v1 v2 v3
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f}
},
{ // DNA 1
// v0 v1 v2 v3
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f}
},
// Bucket 1
{ // DNA 0
// v4 v5 v6 v7
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f}
},
{ // DNA 1
// v4 v5 v6 v7
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f}
},
// Bucket 2
{ // DNA 0
// v8 v9 v10 v11
{0.1f, 0.73f, 0.0f, 0.1f},
{0.1f, 0.73f, 0.0f, 0.1f},
{0.1f, 0.73f, 0.0f, 0.1f}
},
{ // DNA 1
// v8 v9 v10 v11
{-0.5f, -0.57f, 1.0f, -0.5f},
{-0.5f, -0.57f, 1.0f, -0.5f},
{-0.5f, -0.57f, 1.0f, -0.5f}
},
// Bucket 3
{ // DNA 0
// v12 v13 v14 v15
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f},
{0.73f, 0.0f, 0.1f, 0.73f}
},
{ // DNA 1
// v12 v13 v14 v15
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f},
{-0.57f, 1.0f, -0.5f, -0.57f}
},
// Bucket 4
{ // DNA 0
// v16 v17 v18 v19
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f},
{0.0f, 0.1f, 0.73f, 0.0f}
},
{ // DNA 1
// v16 v17 v18 v19
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f},
{1.0f, -0.5f, -0.57f, 1.0f}
},
// Bucket 5
{ // DNA 0
// v20 p p p
{0.1f, 0.0f, 0.0f, 0.0f},
{0.1f, 0.0f, 0.0f, 0.0f},
{0.1f, 0.0f, 0.0f, 0.0f}
},
{ // DNA 1
// v20 p p p
{-0.5f, 0.0f, 0.0f, 0.0f},
{-0.5f, 0.0f, 0.0f, 0.0f},
{-0.5f, 0.0f, 0.0f, 0.0f}
},
// BlendShape 1
// Bucket 0
{ // DNA 0
// v0 v1 v2 v3
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f}
},
{ // DNA 1
// v0 v1 v2 v3
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f}
},
// Bucket 1
{ // DNA 0
// v4 v5 v6 v7
{1.0f, -0.1f, -0.73f, 1.0f},
{1.0f, -0.1f, -0.73f, 1.0f},
{1.0f, -0.1f, -0.73f, 1.0f}
},
{ // DNA 1
// v4 v5 v6 v7
{0.0f, 0.5f, 0.57f, 0.0f},
{0.0f, 0.5f, 0.57f, 0.0f},
{0.0f, 0.5f, 0.57f, 0.0f}
},
// Bucket 2
{ // DNA 0
// v8 v9 v10 v11
{-0.1f, -0.73f, 1.0f, -0.1f},
{-0.1f, -0.73f, 1.0f, -0.1f},
{-0.1f, -0.73f, 1.0f, -0.1f}
},
{ // DNA 1
// v8 v9 v10 v11
{0.5f, 0.57f, 0.0f, 0.5f},
{0.5f, 0.57f, 0.0f, 0.5f},
{0.5f, 0.57f, 0.0f, 0.5f}
},
// Bucket 3
{ // DNA 0
// v12 v13 v14 v15
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f},
{-0.73f, 1.0f, -0.1f, -0.73f}
},
{ // DNA 1
// v12 v13 v14 v15
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f},
{0.57f, 0.0f, 0.5f, 0.57f}
},
// Bucket 4
{ // DNA 0
// v16 v17 v18 v19
{1.0f, -0.1f, -0.73f, 0.0f},
{1.0f, -0.1f, -0.73f, 0.0f},
{1.0f, -0.1f, -0.73f, 0.0f}
},
{ // DNA 1
// v16 v17 v18 v19
{0.0f, 0.5f, 0.57f, 0.5f},
{0.0f, 0.5f, 0.57f, 0.5f},
{0.0f, 0.5f, 0.57f, 0.5f}
},
// Bucket 5
{ // DNA 0
// v20 p p p
{-0.1f, 0.0f, 0.0f, 0.0f},
{-0.1f, 0.0f, 0.0f, 0.0f},
{-0.1f, 0.0f, 0.0f, 0.0f}
},
{ // DNA 1
// v20 p p p
{0.5f, 0.0f, 0.0f, 0.0f},
{0.5f, 0.0f, 0.0f, 0.0f},
{0.5f, 0.0f, 0.0f, 0.0f}
}
};
const Vector<XYZBlock<4u> > expectedBlendShapePoolArchDeltas = {
//Mesh 0
// BlendShape 0
{ // Bucket 0
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f}
},
{ // Bucket 1
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f}
},
{ // Bucket 2
{-0.2f, 0.08f, 0.5f, -0.2f},
{-0.2f, 0.08f, 0.5f, -0.2f},
{-0.2f, 0.08f, 0.5f, -0.2f}
},
{ // Bucket 3
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f}
},
{ // Bucket 4
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f}
},
{ // Bucket 5
{-0.2f, 0.0f, 0.0f, 0.0f},
{-0.2f, 0.0f, 0.0f, 0.0f},
{-0.2f, 0.0f, 0.0f, 0.0f}
},
// BlendShape 1
{ // Bucket 0
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f}
},
{ // Bucket 1
{0.5f, 0.2f, -0.08f, 0.5f},
{0.5f, 0.2f, -0.08f, 0.5f},
{0.5f, 0.2f, -0.08f, 0.5f}
},
{ // Bucket 2
{0.2f, -0.08f, 0.5f, 0.2f},
{0.2f, -0.08f, 0.5f, 0.2f},
{0.2f, -0.08f, 0.5f, 0.2f}
},
{ // Bucket 3
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f}
},
{ // Bucket 4
{0.5f, 0.2f, -0.08f, 0.0f},
{0.5f, 0.2f, -0.08f, 0.0f},
{0.5f, 0.2f, -0.08f, 0.0f}
},
{ // Bucket 5
{0.2f, 0.0f, 0.0f, 0.0f},
{0.2f, 0.0f, 0.0f, 0.0f},
{0.2f, 0.0f, 0.0f, 0.0f}
},
//Mesh 1
// BlendShape 0
{ // Bucket 0
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f}
},
{ // Bucket 1
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f}
},
{ // Bucket 2
{-0.2f, 0.08f, 0.5f, -0.2f},
{-0.2f, 0.08f, 0.5f, -0.2f},
{-0.2f, 0.08f, 0.5f, -0.2f}
},
{ // Bucket 3
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f},
{0.08f, 0.5f, -0.2f, 0.08f}
},
{ // Bucket 4
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f},
{0.5f, -0.2f, 0.08f, 0.5f}
},
{ // Bucket 5
{-0.2f, 0.0f, 0.0f, 0.0f},
{-0.2f, 0.0f, 0.0f, 0.0f},
{-0.2f, 0.0f, 0.0f, 0.0f}
},
// BlendShape 1
{ // Bucket 0
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f}
},
{ // Bucket 1
{0.5f, 0.2f, -0.08f, 0.5f},
{0.5f, 0.2f, -0.08f, 0.5f},
{0.5f, 0.2f, -0.08f, 0.5f}
},
{ // Bucket 2
{0.2f, -0.08f, 0.5f, 0.2f},
{0.2f, -0.08f, 0.5f, 0.2f},
{0.2f, -0.08f, 0.5f, 0.2f}
},
{ // Bucket 3
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f},
{-0.08f, 0.5f, 0.2f, -0.08f}
},
{ // Bucket 4
{0.5f, 0.2f, -0.08f, 0.0f},
{0.5f, 0.2f, -0.08f, 0.0f},
{0.5f, 0.2f, -0.08f, 0.0f}
},
{ // Bucket 5
{0.2f, 0.0f, 0.0f, 0.0f},
{0.2f, 0.0f, 0.0f, 0.0f},
{0.2f, 0.0f, 0.0f, 0.0f}
}
};
const Vector<std::uint16_t > expectedBlendShapePoolDNAIndices = {
// Mesh 0
// BlendShape 0
0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u,
// BlendShape 1
0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u,
// Mesh 1
// BlendShape 0
0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u,
// BlendShape 1
0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u, 0u, 1u,
};
const Vector<Vector<Vector<float>>> accustomedArchetypeBlendShapeDeltas = {
{ // BlendShape-0
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f}, // Xs
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f}, // Ys
{0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f, 0.08f, 0.5f, -0.2f} // Zs
},
{ // BlendShape-1
// V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19, V20
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.0f, 0.2f}, // Xs
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.0f, 0.2f}, // Ys
{-0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.5f, 0.2f, -0.08f, 0.0f, 0.2f} // Zs
}
};
const Vector<Matrix<std::uint32_t>> expectedBlendShapePoolVertexIndices = {
{//Mesh0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, // BlendShape-0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} // BlendShape-1
},
{//Mesh1
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, // BlendShape-0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} // BlendShape-1
}
};
const Vector<Matrix<std::uint16_t> > expectedSWPoolJointIndices = {
{ //Mesh0
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{0, 1, 2}, // V3
{0, 1, 2}, // V4
{0, 1, 2}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
},
{ //Mesh1
{0, 2}, // V0
{1}, // V1
{0, 2}, // V2
{0, 1, 2}, // V3
{0, 1, 2}, // V4
{0, 1, 2}, // V5
{0, 2}, // V6
{0, 1}, // V7
{1, 2}, // V8
{0, 2}, // V9
{0, 1}, // V10
{1, 2}, // V11
{0, 2}, // V12
{0, 1}, // V13
{1, 2}, // V14
{0, 2}, // V15
{0, 1}, // V16
{1, 2}, // V17
{0, 2}, // V18
{0, 1}, // V19
{1, 2} // V20
}
};
const Matrix<Matrix<VBlock<16u> > > expectedSWPoolWeights = {
{ // Mesh0
{ // Pool0
{ // DNA0
{ // JntPos0
{1.0f, 1.0f, 0.0f, 0.4f, 0.2f, 0.1f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,1.0f,0.0f, 0.0f, 1.0f}
},
{ // JntPos1
{0.0f, 0.0f, 1.0f, 0.6f, 0.0f, 0.9f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f}
},
{ // JntPos2
{0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
},
{ // DNA1
{ // JntPos0
{0.0f, 1.0f, 1.0f, 0.0f, 0.2f, 0.0f, 0.4f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f}
},
{ // JntPos1
{1.0f, 0.0f, 0.0f, 0.5f, 0.8f, 0.8f, 0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f}
},
{ // JntPos2
{0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
}
},
{ // Pool1
{ // DNA0
{ // JntPos0
{0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
},
{ // JntPos1
{1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
},
{ // DNA1
{ // JntPos0
{1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
},
{ // JntPos1
{0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
}
}
},
{ // Mesh1
{ // Pool0
{ // DNA0
{ // JntPos0
{1.0f, 1.0f, 0.0f, 0.4f, 0.2f, 0.1f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,1.0f,0.0f, 0.0f, 1.0f}
},
{ // JntPos1
{0.0f, 0.0f, 1.0f, 0.6f, 0.0f, 0.9f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f}
},
{ // JntPos2
{0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
},
{ // DNA1
{ // JntPos0
{0.0f, 1.0f, 1.0f, 0.0f, 0.2f, 0.0f, 0.4f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f}
},
{ // JntPos1
{1.0f, 0.0f, 0.0f, 0.5f, 0.8f, 0.8f, 0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f}
},
{ // JntPos2
{0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
}
},
{ // Pool1
{ // DNA0
{ // JntPos0
{0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
},
{ // JntPos1
{1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
},
{ // DNA1
{ // JntPos0
{1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
},
{ // JntPos1
{0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
}
}
}
}
};
extern const Vector<std::uint16_t> expectedSWPoolMaxInfluences{
2u
};
extern const Matrix<std::uint16_t> expectedJBPoolInputIndices{
{1, 2}, // JointGroup-0
{4, 5} // JointGroup-1
};
extern const Matrix<std::uint16_t> expectedJBPoolOutputIndices{
{0, 1, 2, 3, 6, 7, 10, 11, 12, 13}, // JointGroup-0
{19, 20, 21, 22, 23} // JointGroup-1
};
extern const Matrix<std::uint16_t> expectedJBPoolLODs{
{10, 6, 6}, // Joint group-0
{5, 5, 5} // Joint group-1
};
extern const Vector<JBJoint> expectedJBPoolBlock{
{ // Joint0
{ // values
{ // OutPos0
{ // Block0
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.05f, 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos1
{ // Block0
{0.05f, 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.05f, 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos2
{ // Block0
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.2f, 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos3
{ // Block0
{0.15f, 0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.15f, -0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos4
},
{ // OutPos5
},
{ // OutPos6
{ // Block0
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.6f, 0.6f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos7
{ // Block0
{0.1f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.6f, -0.6f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos8
}
},
0u, // jointGroup
{0, 1, 2, 3, 4, 5}, // outIndexTargetPos
2u // vBlockRemainder
},
{ // Joint1
{ // values
{ // OutPos0
},
{ // OutPos1
{ // Block0
{-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos2
{ // Block0
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{1.1f, 1.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos3
{ // Block0
{-0.1f, -0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{1.1f, 1.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos4
{ // Block0
{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{1.3f, 1.3f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{// OutPos5
},
{// OutPos6
},
{// OutPos7
},
{// OutPos8
}
},
0u, // jointGroup
{6, 7, 8, 9, 0, 0}, // outIndexTargetPos
2u // vBlockRemainder
},
{ // Joint1
{ // values
{ // OutPos0
},
{ // OutPos1
{ // Block0
{0.05f, 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.05f, -0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos2
{ // Block0
{0.25f, 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.25f, -0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos3
{ // Block0
{0.45f, 0.45f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{-0.45f, -0.45f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos4
{ // Block0
{-0.1f, -0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.1f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos5
{ // Block0
{-0.15f, -0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // dna0
{0.15f, 0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // dna1
}
},
{ // OutPos6
},
{ // OutPos7
},
{ // OutPos8
}
},
1u, // jointGroup
{0u, 1u, 2u, 3u, 4u, 0u}, // outIndexTargetPos
2u // vBlockRemainder
}
};
const Vector<float> spliceWeights = {
0.6f, 0.5f,
1.0f, 0.1f
};
const Vector<Vector3> expectedRawGenesNeutralJointTranslations = {
{0.8f, 0.8f, 0.8f},
{1.5495f, 1.55f, 1.5497f},
{1.7527f, 1.7501f, 1.7454f}
};
const Vector<Vector3> expectedRawGenesNeutralJointRotations = {
{0.13963f, 0.13963f, 0.13963f},
{0.29134f, 0.24954f, 0.29119f},
{0.74603f, 0.46237f, 0.76215f}
};
// *INDENT-ON*
} // namespace canonical
} // namespace gs4