Fixed flipping.

This commit is contained in:
NathanSweet 2014-09-02 17:17:45 +02:00
parent ecab41ab8b
commit 337b55005d
2 changed files with 5 additions and 6 deletions

View File

@ -47,7 +47,6 @@ struct spBone {
float x, y;
float rotation, rotationIK;
float scaleX, scaleY;
int/*bool*/flipX, flipY;
float const m00, m01, worldX; /* a b x */
float const m10, m11, worldY; /* c d y */

View File

@ -65,8 +65,8 @@ void spBone_updateWorldTransform (spBone* self) {
CONST_CAST(float, self->worldRotation) =
self->data->inheritRotation ? self->parent->worldRotation + self->rotationIK : self->rotationIK;
} else {
CONST_CAST(float, self->worldX) = self->flipX ? -self->x : self->x;
CONST_CAST(float, self->worldY) = self->flipY != yDown ? -self->y : self->y;
CONST_CAST(float, self->worldX) = self->skeleton->flipX ? -self->x : self->x;
CONST_CAST(float, self->worldY) = self->skeleton->flipY != yDown ? -self->y : self->y;
CONST_CAST(float, self->worldScaleX) = self->scaleX;
CONST_CAST(float, self->worldScaleY) = self->scaleY;
CONST_CAST(float, self->worldRotation) = self->rotationIK;
@ -74,14 +74,14 @@ void spBone_updateWorldTransform (spBone* self) {
radians = self->worldRotation * DEG_RAD;
cosine = COS(radians);
sine = SIN(radians);
if (self->flipX) {
if (self->skeleton->flipX) {
CONST_CAST(float, self->m00) = -cosine * self->worldScaleX;
CONST_CAST(float, self->m01) = sine * self->worldScaleY;
} else {
CONST_CAST(float, self->m00) = cosine * self->worldScaleX;
CONST_CAST(float, self->m01) = -sine * self->worldScaleY;
}
if (self->flipY != yDown) {
if (self->skeleton->flipY != yDown) {
CONST_CAST(float, self->m10) = -sine * self->worldScaleX;
CONST_CAST(float, self->m11) = -cosine * self->worldScaleY;
} else {
@ -103,7 +103,7 @@ void spBone_worldToLocal (spBone* self, float worldX, float worldY, float* local
float invDet;
float dx = worldX - self->worldX, dy = worldY - self->worldY;
float m00 = self->m00, m11 = self->m11;
if (self->flipX != (self->flipY != yDown)) {
if (self->skeleton->flipX != (self->skeleton->flipY != yDown)) {
m00 *= -1;
m11 *= -1;
}