void AmjuGLOpenGLES2::Scale(float x, float y, float z) { AMJU_CALL_STACK; GLKMatrix4 mat = GLKMatrix4MakeScale(x, y, z); s_matrices[s_matrixMode] = GLKMatrix4Multiply(s_matrices[s_matrixMode], mat); }
GLKMatrix4 Transform_GetMV(const Transform *slf){ GLKMatrix4 tMat = GLKMatrix4MakeTranslation(slf->position.x, slf->position.y, slf->position.z); GLKMatrix4 rMat = GLKMatrix4MakeWithQuaternion(slf->orientation); GLKMatrix4 sMat = GLKMatrix4MakeScale(slf->scale.x, slf->scale.y, slf->scale.z); GLKMatrix4 mv = GLKMatrix4Multiply(tMat, GLKMatrix4Multiply(rMat, sMat)); // mv = GLKMatrix4Translate(mv, slf->position.x, slf->position.y, slf->position.z); // mv = GLKMatrix4Multiply(mv, rMat); // mv = GLKMatrix4RotateWithVector3(mv, GLKQuaternionAngle(slf->orientation), GLKQuaternionAxis(slf->orientation)); // // mv = GLKMatrix4Rotate(mv, slf->rotation.w, slf->rotation.x, slf->rotation.y, slf->rotation.z); // mv = GLKMatrix4Scale(mv, slf->scale.x, slf->scale.y, slf->scale.z); if (slf->parent) { mv = GLKMatrix4Multiply(Transform_GetMV(slf->parent), mv); } return mv; }