//---------------------------------------------------------------------------- // Callback method called when system is idle. void Window::idleCallback() { Matrix4 transform; Matrix4 temp; Matrix4 reverseTemp; temp = leftArmRotation.get(); reverseTemp = temp; if (walk) { if (forw) { temp.makeRotateX(degree); reverseTemp.makeRotateX(-degree); degree++; if (degree == 20) forw = !forw; } else { temp.makeRotateX(degree); reverseTemp.makeRotateX(-degree); std::cout << "ASD" << std::endl; degree--; if (degree == -20) forw = !forw; } } else { degree = 0; temp.identity(); reverseTemp.identity(); } transform.makeTranslate(0, -1.5, 0); temp = temp * transform; reverseTemp = reverseTemp * transform; transform.makeTranslate(0, 1.5, 0); temp = transform * temp; reverseTemp = transform * reverseTemp; leftArmRotation.set(temp); rightLegRotation.set(temp); rightArmRotation.set(reverseTemp); leftLegRotation.set(reverseTemp); displayCallback(); // call display routine to show the object }