コード例 #1
0
ファイル: MultitouchPlugin.cpp プロジェクト: nixz/covise
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());
        }
    }
}
コード例 #2
0
int Recognizer::endGesture()
{
	int gesture = -1;

	if (d->positions.size() > 1)
	{
		gesture = recognizeGesture();
	}

	d->positions.clear();

	return gesture;
}
コード例 #3
0
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;
}