void keyboard(unsigned char k, int, int)
{
    switch(k)
    {
    case 27:
        cleanup();
        osgExit();

        exit(0);
        break;

    case 'q':
        toggleAnim(0, false);
        break;
    case 'w':
        toggleAnim(0, true);
        break;
    case 'e':
        resetAnim(0);
        break;
    case 'r':
        toggleAnimEnable(0);
        break;
    case 't':
        increaseTimeScale(0);
        break;
    case 'y':
        decreaseTimeScale(0);
        break;
    case 'u':
        toggleAnimDirection(0);
        break;

    case 'a':
        toggleAnim(1, false);
        break;
    case 's':
        toggleAnim(1, true);
        break;
    case 'd':
        resetAnim(1);
        break;
    case 'f':
        toggleAnimEnable(1);
        break;
    case 'g':
        increaseTimeScale(1);
        break;
    case 'h':
        decreaseTimeScale(1);
        break;
    case 'j':
        toggleAnimDirection(1);
        break;
    }
}
Пример #2
0
void Skeleton::loadSkeleton(Common::SeekableReadStream *data) {
    _numJoints = data->readUint32LE();
    _joints = new Joint[_numJoints];

    char inString[32];

    for (int i = 0; i < _numJoints; i++) {
        data->read(inString, 32);
        _joints[i]._name = inString;
        data->read(inString, 32);
        _joints[i]._parent = inString;

        _joints[i]._trans.readFromStream(data);
        _joints[i]._quat.readFromStream(data);

        _joints[i]._parentIndex = findJointIndex(_joints[i]._parent, i);
    }
    initBones();
    resetAnim();
}