void MultitouchPlugin::preFrame() { // navModes: NavNone = 0, XForm, Scale, Fly, Glide/Drive, Walk _navMode = coVRNavigationManager::instance()->getMode(); if (_mode == NONE || _navMode == 0) return; else { if (_mode == TBD) { recognizeGesture(); } else if (_mode == ROTATEXY) { _navigation->rotateXY(getContactCenter()); } else if (_mode == MOVEXY) { _navigation->moveXY(getContactCenter()); } else if (_mode == C_MOVEXY) { _navigation->continuousMoveXY(getContactCenter()); } else if (_mode == WALKXY) { _navigation->walkXY(getContactCenter()); } else if (_mode == SCALEXYZ) { _navigation->scaleXYZ(getContacts()); } else if (_mode == C_SCALEXYZ) { _navigation->continuousScaleXYZ(getContacts()); } else if (_mode == ROTATEZ) { _navigation->rotateZ(getContacts()); } else if (_mode == MOVEZ) { _navigation->moveZ(getContactCenter()); } else if (_mode == C_MOVEZ) { _navigation->continuousMoveZ(getContactCenter()); } else if (_mode == WALKZ) { _navigation->walkZ(getContactCenter()); } else if (_mode == FLY) { _navigation->fly(getContactCenter()); } } }
int Recognizer::endGesture() { int gesture = -1; if (d->positions.size() > 1) { gesture = recognizeGesture(); } d->positions.clear(); return gesture; }
int Recognizer::endGesture(int x, int y) { if (x != d->positions.back().x || y != d->positions.back().y) { d->positions.push_back(Position(x, y)); } int gesture = -1; if (d->positions.size() > 1) { gesture = recognizeGesture(); } d->positions.clear(); return gesture; }