Beispiel #1
0
void HMC5883LClass::initialise()
{
    checkCommunication_();
    setConfigA_(0b00011000); //No averaging, 75Hz update rate, no bias
    setConfigB_(0b00100000); //+-1.3 gauss range, 1090 LSB/gauss
    setMode_(0); //Continuous measurement mode
}
Beispiel #2
0
		void InteractionModeManager::keyPressEvent(QKeyEvent* evt)
		{
			for(std::list<InteractionMode*>::iterator it = modes_.begin(); it != modes_.end(); ++it)
			{
				if(evt->key() == (*it)->getKey())
				{
					setMode_(*it);
					return;
				}
			}

			if(handleStereoKeyPress_(evt))
			{
				return;
			}

			//Let the current mode process the key event
			current_mode_->keyPressEvent(evt);
		}
Beispiel #3
0
		bool InteractionModeManager::handleStereoKeyPress_(QKeyEvent* evt)
		{
			// TODO make keys configurable in shortcutRegistry 
			if ((stereo_mode_ == Renderer::NO_STEREO) &&
					(evt->key() == Qt::Key_Escape))
			{
				setMode_(last_mode_);
				return true;
			}

			if (stereo_mode_ == Renderer::NO_STEREO)
			{
				evt->ignore();
				return false;
			}

			// TODO make keys configurable in shortcutRegistry 
			if ((evt->key() == Qt::Key_Y && evt->modifiers() == Qt::AltModifier) ||
					evt->key() == Qt::Key_Escape)
			{
				scene_->exitStereo();
				return true;
			}

			// TODO make keys configurable in shortcutRegistry 
			// setting of eye and focal distance
			if (evt->key() != Qt::Key_Left  &&
					evt->key() != Qt::Key_Right &&
					evt->key() != Qt::Key_Up    &&
					evt->key() != Qt::Key_Down)
			{
				evt->ignore();
				return false;
			}

			// TODO make keys configurable in shortcutRegistry 
			// setting of eye distance
			if (evt->key() == Qt::Key_Left ||
					evt->key() == Qt::Key_Right)
			{
				float new_distance = scene_->getStage()->getEyeDistance();

				// TODO make keys configurable in shortcutRegistry 
				float modifier = 1;
				if (evt->key() == Qt::Key_Left)
				{
					modifier = -0.1;
				}
				else
				{
					modifier = +0.1;
				}

				// TODO make keys configurable in shortcutRegistry 
				if (evt->modifiers() == Qt::ShiftModifier)
				{
					modifier *= 10;
				}

				new_distance += modifier;

				// prevent strange values
				if (new_distance < 0)
				{
					new_distance = 0;
				}

				if (new_distance > 4)
				{
					new_distance = 4;
				}

				scene_->getStage()->setEyeDistance(new_distance);
			}
			// setting of focal distance
			else
			{
				float new_focal_distance = scene_->getStage()->getFocalDistance();

				// TODO make keys configurable in shortcutRegistry 
				float modifier = 1;
				if (evt->key() == Qt::Key_Down)
				{
					modifier = -1;
				}
				else
				{
					modifier = +1;
				}

				// TODO make keys configurable in shortcutRegistry 
				if (evt->modifiers() == Qt::ShiftModifier)
				{
					modifier *= 10;
				}

				new_focal_distance += modifier;

				// prevent strange values
				if (new_focal_distance < 7)
				{
					new_focal_distance = 7;
				}

				if (new_focal_distance > 1000)
				{
					new_focal_distance = 1000;
				}

				scene_->getStage()->setFocalDistance(new_focal_distance);
			}

			//TODO: readd this
			//stage_settings_->updateFromStage();
			scene_->updateGL();

			return true;
		}
Beispiel #4
0
		void InteractionModeManager::switchToLastMode()
		{
			setMode_(last_mode_);
		}