handle case when clusterMatrices.size() == 0

This commit is contained in:
SamGondelman 2019-03-11 17:32:40 -07:00
parent b24b7fed3d
commit 2b32b77bed
3 changed files with 6 additions and 6 deletions

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

View file

@ -245,7 +245,7 @@ void CauterizedModel::updateRenderItems() {
Transform renderTransform = modelTransform; Transform renderTransform = modelTransform;
if (useDualQuaternionSkinning) { if (useDualQuaternionSkinning) {
if (meshState.clusterDualQuaternions.size() <= 2) { if (meshState.clusterDualQuaternions.size() == 1 || meshState.clusterDualQuaternions.size() == 2) {
const auto& dq = meshState.clusterDualQuaternions[0]; const auto& dq = meshState.clusterDualQuaternions[0];
Transform transform(dq.getRotation(), Transform transform(dq.getRotation(),
dq.getScale(), dq.getScale(),
@ -253,7 +253,7 @@ void CauterizedModel::updateRenderItems() {
renderTransform = modelTransform.worldTransform(transform); renderTransform = modelTransform.worldTransform(transform);
} }
} else { } else {
if (meshState.clusterMatrices.size() <= 2) { if (meshState.clusterMatrices.size() == 1 || meshState.clusterMatrices.size() == 2) {
renderTransform = modelTransform.worldTransform(Transform(meshState.clusterMatrices[0])); renderTransform = modelTransform.worldTransform(Transform(meshState.clusterMatrices[0]));
} }
} }
@ -261,7 +261,7 @@ void CauterizedModel::updateRenderItems() {
renderTransform = modelTransform; renderTransform = modelTransform;
if (useDualQuaternionSkinning) { if (useDualQuaternionSkinning) {
if (cauterizedMeshState.clusterDualQuaternions.size() <= 2) { if (cauterizedMeshState.clusterDualQuaternions.size() == 1 || cauterizedMeshState.clusterDualQuaternions.size() == 2) {
const auto& dq = cauterizedMeshState.clusterDualQuaternions[0]; const auto& dq = cauterizedMeshState.clusterDualQuaternions[0];
Transform transform(dq.getRotation(), Transform transform(dq.getRotation(),
dq.getScale(), dq.getScale(),
@ -269,7 +269,7 @@ void CauterizedModel::updateRenderItems() {
renderTransform = modelTransform.worldTransform(Transform(transform)); renderTransform = modelTransform.worldTransform(Transform(transform));
} }
} else { } else {
if (cauterizedMeshState.clusterMatrices.size() <= 2) { if (cauterizedMeshState.clusterMatrices.size() == 1 || cauterizedMeshState.clusterMatrices.size() == 2) {
renderTransform = modelTransform.worldTransform(Transform(cauterizedMeshState.clusterMatrices[0])); renderTransform = modelTransform.worldTransform(Transform(cauterizedMeshState.clusterMatrices[0]));
} }
} }

View file

@ -247,7 +247,7 @@ void Model::updateRenderItems() {
Transform renderTransform = modelTransform; Transform renderTransform = modelTransform;
if (useDualQuaternionSkinning) { if (useDualQuaternionSkinning) {
if (meshState.clusterDualQuaternions.size() <= 2) { if (meshState.clusterDualQuaternions.size() == 1 || meshState.clusterDualQuaternions.size() == 2) {
const auto& dq = meshState.clusterDualQuaternions[0]; const auto& dq = meshState.clusterDualQuaternions[0];
Transform transform(dq.getRotation(), Transform transform(dq.getRotation(),
dq.getScale(), dq.getScale(),
@ -255,7 +255,7 @@ void Model::updateRenderItems() {
renderTransform = modelTransform.worldTransform(Transform(transform)); renderTransform = modelTransform.worldTransform(Transform(transform));
} }
} else { } else {
if (meshState.clusterMatrices.size() <= 2) { if (meshState.clusterMatrices.size() == 1 || meshState.clusterMatrices.size() == 2) {
renderTransform = modelTransform.worldTransform(Transform(meshState.clusterMatrices[0])); renderTransform = modelTransform.worldTransform(Transform(meshState.clusterMatrices[0]));
} }
} }