Fixes for reading mix X/Y.

This commit is contained in:
Nathan Sweet 2021-06-02 20:29:52 -04:00
parent fe9baaf849
commit 7aa940a961
6 changed files with 19 additions and 18 deletions

View File

@ -202,7 +202,7 @@ package spine {
if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) pathData.spacing *= scale; if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) pathData.spacing *= scale;
pathData.mixRotate = getNumber(constraintMap, "mixRotate", 1); pathData.mixRotate = getNumber(constraintMap, "mixRotate", 1);
pathData.mixX = getNumber(constraintMap, "mixX", 1); pathData.mixX = getNumber(constraintMap, "mixX", 1);
pathData.mixY = getNumber(constraintMap, "mixY", 1); pathData.mixY = getNumber(constraintMap, "mixY", pathData.mixX);
skeletonData.pathConstraints.push(pathData); skeletonData.pathConstraints.push(pathData);
} }

View File

@ -1087,7 +1087,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
if (data->spacingMode == SP_SPACING_MODE_LENGTH || data->spacingMode == SP_SPACING_MODE_FIXED) data->spacing *= self->scale; if (data->spacingMode == SP_SPACING_MODE_LENGTH || data->spacingMode == SP_SPACING_MODE_FIXED) data->spacing *= self->scale;
data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1); data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1);
data->mixX = Json_getFloat(constraintMap, "mixX", 1); data->mixX = Json_getFloat(constraintMap, "mixX", 1);
data->mixY = Json_getFloat(constraintMap, "mixY", 1); data->mixY = Json_getFloat(constraintMap, "mixY", data->mixX);
skeletonData->pathConstraints[i] = data; skeletonData->pathConstraints[i] = data;
} }

View File

@ -418,7 +418,7 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
if (data->_spacingMode == SpacingMode_Length || data->_spacingMode == SpacingMode_Fixed) data->_spacing *= _scale; if (data->_spacingMode == SpacingMode_Length || data->_spacingMode == SpacingMode_Fixed) data->_spacing *= _scale;
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1); data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
data->_mixX = Json::getFloat(constraintMap, "mixX", 1); data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
data->_mixY = Json::getFloat(constraintMap, "mixY", 1); data->_mixY = Json::getFloat(constraintMap, "mixY", data->_mixX);
skeletonData->_pathConstraints[i] = data; skeletonData->_pathConstraints[i] = data;
} }

View File

@ -271,8 +271,7 @@ namespace Spine {
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale; if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
data.mixRotate = GetFloat(constraintMap, "mixRotate", 1); data.mixRotate = GetFloat(constraintMap, "mixRotate", 1);
data.mixX = GetFloat(constraintMap, "mixX", 1); data.mixX = GetFloat(constraintMap, "mixX", 1);
data.mixY = GetFloat(constraintMap, "mixY", 1); data.mixY = GetFloat(constraintMap, "mixY", data.mixX);
skeletonData.pathConstraints.Add(data); skeletonData.pathConstraints.Add(data);
} }

View File

@ -773,9 +773,10 @@ public class SkeletonJson extends SkeletonLoader {
TransformConstraintTimeline timeline = new TransformConstraintTimeline(timelineMap.size, timelineMap.size << 2, TransformConstraintTimeline timeline = new TransformConstraintTimeline(timelineMap.size, timelineMap.size << 2,
skeletonData.getTransformConstraints().indexOf(constraint, true)); skeletonData.getTransformConstraints().indexOf(constraint, true));
float time = keyMap.getFloat("time", 0); float time = keyMap.getFloat("time", 0);
float mixRotate = keyMap.getFloat("mixRotate", 1), mixShearY = keyMap.getFloat("mixShearY", 1); float mixRotate = keyMap.getFloat("mixRotate", 1);
float mixX = keyMap.getFloat("mixX", 1), mixY = keyMap.getFloat("mixY", mixX); float mixX = keyMap.getFloat("mixX", 1), mixY = keyMap.getFloat("mixY", mixX);
float mixScaleX = keyMap.getFloat("mixScaleX", 1), mixScaleY = keyMap.getFloat("mixScaleY", mixScaleX); float mixScaleX = keyMap.getFloat("mixScaleX", 1), mixScaleY = keyMap.getFloat("mixScaleY", mixScaleX);
float mixShearY = keyMap.getFloat("mixShearY", 1);
for (int frame = 0, bezier = 0;; frame++) { for (int frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
JsonValue nextMap = keyMap.next; JsonValue nextMap = keyMap.next;
@ -784,9 +785,10 @@ public class SkeletonJson extends SkeletonLoader {
break; break;
} }
float time2 = nextMap.getFloat("time", 0); float time2 = nextMap.getFloat("time", 0);
float mixRotate2 = nextMap.getFloat("mixRotate", 1), mixShearY2 = nextMap.getFloat("mixShearY", 1); float mixRotate2 = nextMap.getFloat("mixRotate", 1);
float mixX2 = nextMap.getFloat("mixX", 1), mixY2 = nextMap.getFloat("mixY", mixX2); float mixX2 = nextMap.getFloat("mixX", 1), mixY2 = nextMap.getFloat("mixY", mixX2);
float mixScaleX2 = nextMap.getFloat("mixScaleX", 1), mixScaleY2 = nextMap.getFloat("mixScaleY", mixScaleX2); float mixScaleX2 = nextMap.getFloat("mixScaleX", 1), mixScaleY2 = nextMap.getFloat("mixScaleY", mixScaleX2);
float mixShearY2 = nextMap.getFloat("mixShearY", 1);
JsonValue curve = keyMap.get("curve"); JsonValue curve = keyMap.get("curve");
if (curve != null) { if (curve != null) {
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);

View File

@ -216,7 +216,7 @@ module spine {
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale; if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
data.mixRotate = getValue(constraintMap, "mixRotate", 1); data.mixRotate = getValue(constraintMap, "mixRotate", 1);
data.mixX = getValue(constraintMap, "mixX", 1); data.mixX = getValue(constraintMap, "mixX", 1);
data.mixY = getValue(constraintMap, "mixY", 1); data.mixY = getValue(constraintMap, "mixY", data.mixX);
skeletonData.pathConstraints.push(data); skeletonData.pathConstraints.push(data);
} }
@ -697,11 +697,11 @@ module spine {
let time = getValue(keyMap, "time", 0); let time = getValue(keyMap, "time", 0);
let mixRotate = getValue(keyMap, "mixRotate", 1); let mixRotate = getValue(keyMap, "mixRotate", 1);
let mixShearY = getValue(keyMap, "mixShearY", 1);
let mixX = getValue(keyMap, "mixX", 1); let mixX = getValue(keyMap, "mixX", 1);
let mixY = getValue(keyMap, "mixY", mixX); let mixY = getValue(keyMap, "mixY", mixX);
let mixScaleX = getValue(keyMap, "mixScaleX", 1); let mixScaleX = getValue(keyMap, "mixScaleX", 1);
let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX); let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX);
let mixShearY = getValue(keyMap, "mixShearY", 1);
for (let frame = 0, bezier = 0;; frame++) { for (let frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
@ -710,11 +710,11 @@ module spine {
let time2 = getValue(nextMap, "time", 0); let time2 = getValue(nextMap, "time", 0);
let mixRotate2 = getValue(nextMap, "mixRotate", 1); let mixRotate2 = getValue(nextMap, "mixRotate", 1);
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
let mixX2 = getValue(nextMap, "mixX", 1); let mixX2 = getValue(nextMap, "mixX", 1);
let mixY2 = getValue(nextMap, "mixY", mixX2); let mixY2 = getValue(nextMap, "mixY", mixX2);
let mixScaleX2 = getValue(nextMap, "mixScaleX", 1); let mixScaleX2 = getValue(nextMap, "mixScaleX", 1);
let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2); let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2);
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
let curve = keyMap.curve; let curve = keyMap.curve;
if (curve) { if (curve) {
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);