fromFlatbuffer static method
Implementation
static Skin fromFlatbuffer(fb.Skin skin, List<Node> sceneNodes) {
if (skin.joints == null ||
skin.inverseBindMatrices == null ||
skin.joints!.length != skin.inverseBindMatrices!.length) {
throw Exception('Skin data is missing joints or bind matrices.');
}
Skin result = Skin();
for (int jointIndex in skin.joints!) {
if (jointIndex < 0 || jointIndex > sceneNodes.length) {
throw Exception('Skin join index out of range');
}
sceneNodes[jointIndex].isJoint = true;
result.joints.add(sceneNodes[jointIndex]);
}
for (
int matrixIndex = 0;
matrixIndex < skin.inverseBindMatrices!.length;
matrixIndex++
) {
final matrix = skin.inverseBindMatrices![matrixIndex].toMatrix4();
result.inverseBindMatrices.add(matrix);
}
return result;
}