Merge pull request #3643 from ctrlaltdavid/rift-calibration-countdown

Rift calibration countdown
This commit is contained in:
Clément Brisset 2014-10-22 17:42:35 -07:00
commit 0525c562b0
3 changed files with 15 additions and 12 deletions

View file

@ -66,8 +66,6 @@ glm::vec3 OculusManager::_calibrationPosition;
glm::quat OculusManager::_calibrationOrientation; glm::quat OculusManager::_calibrationOrientation;
quint64 OculusManager::_calibrationStartTime; quint64 OculusManager::_calibrationStartTime;
int OculusManager::_calibrationMessage = NULL; int OculusManager::_calibrationMessage = NULL;
QString OculusManager::CALIBRATION_BILLBOARD_URL = "http://hifi-public.s3.amazonaws.com/images/hold-to-calibrate.svg";
float OculusManager::CALIBRATION_BILLBOARD_SCALE = 2.f;
#endif #endif
@ -191,7 +189,7 @@ void OculusManager::disconnect() {
} }
#ifdef HAVE_LIBOVR #ifdef HAVE_LIBOVR
void OculusManager::positionCalibrationBillboard(BillboardOverlay* billboard) { void OculusManager::positionCalibrationBillboard(Text3DOverlay* billboard) {
glm::quat headOrientation = Application::getInstance()->getAvatar()->getHeadOrientation(); glm::quat headOrientation = Application::getInstance()->getAvatar()->getHeadOrientation();
headOrientation.x = 0; headOrientation.x = 0;
headOrientation.z = 0; headOrientation.z = 0;
@ -204,8 +202,9 @@ void OculusManager::positionCalibrationBillboard(BillboardOverlay* billboard) {
#ifdef HAVE_LIBOVR #ifdef HAVE_LIBOVR
void OculusManager::calibrate(glm::vec3 position, glm::quat orientation) { void OculusManager::calibrate(glm::vec3 position, glm::quat orientation) {
static QString instructionMessage = "Hold still to calibrate";
static QString progressMessage; static QString progressMessage;
static BillboardOverlay* billboard; static Text3DOverlay* billboard;
switch (_calibrationState) { switch (_calibrationState) {
@ -235,9 +234,13 @@ void OculusManager::calibrate(glm::vec3 position, glm::quat orientation) {
if (!_calibrationMessage) { if (!_calibrationMessage) {
qDebug() << "Hold still to calibrate HMD"; qDebug() << "Hold still to calibrate HMD";
billboard = new BillboardOverlay(); billboard = new Text3DOverlay();
billboard->setURL(CALIBRATION_BILLBOARD_URL); billboard->setDimensions(glm::vec2(2.0f, 1.25f));
billboard->setScale(CALIBRATION_BILLBOARD_SCALE); billboard->setTopMargin(0.35f);
billboard->setLeftMargin(0.28f);
billboard->setText(instructionMessage);
billboard->setAlpha(0.5f);
billboard->setLineHeight(0.1f);
billboard->setIsFacingAvatar(false); billboard->setIsFacingAvatar(false);
positionCalibrationBillboard(billboard); positionCalibrationBillboard(billboard);
@ -275,7 +278,7 @@ void OculusManager::calibrate(glm::vec3 position, glm::quat orientation) {
} else { } else {
progressMessage += "."; progressMessage += ".";
} }
//qDebug() << progressMessage; // Progress message ready for 3D text overlays. billboard->setText(instructionMessage + "\n\n" + progressMessage);
} }
} }
} else { } else {

View file

@ -18,7 +18,7 @@
#endif #endif
#include "renderer/ProgramObject.h" #include "renderer/ProgramObject.h"
#include "ui/overlays/BillboardOverlay.h" #include "ui/overlays/Text3DOverlay.h"
const float DEFAULT_OCULUS_UI_ANGULAR_SIZE = 72.0f; const float DEFAULT_OCULUS_UI_ANGULAR_SIZE = 72.0f;
@ -111,7 +111,7 @@ private:
WAITING_FOR_ZERO_HELD, WAITING_FOR_ZERO_HELD,
CALIBRATED CALIBRATED
}; };
static void positionCalibrationBillboard(BillboardOverlay* billboard); static void positionCalibrationBillboard(Text3DOverlay* message);
static float CALIBRATION_DELTA_MINIMUM_LENGTH; static float CALIBRATION_DELTA_MINIMUM_LENGTH;
static float CALIBRATION_DELTA_MINIMUM_ANGLE; static float CALIBRATION_DELTA_MINIMUM_ANGLE;
static float CALIBRATION_ZERO_MAXIMUM_LENGTH; static float CALIBRATION_ZERO_MAXIMUM_LENGTH;
@ -123,8 +123,6 @@ private:
static glm::quat _calibrationOrientation; static glm::quat _calibrationOrientation;
static quint64 _calibrationStartTime; static quint64 _calibrationStartTime;
static int _calibrationMessage; static int _calibrationMessage;
static QString CALIBRATION_BILLBOARD_URL;
static float CALIBRATION_BILLBOARD_SCALE;
#endif #endif

View file

@ -32,6 +32,7 @@ public:
float getTopMargin() const { return _topMargin; } float getTopMargin() const { return _topMargin; }
float getRightMargin() const { return _rightMargin; } float getRightMargin() const { return _rightMargin; }
float getBottomMargin() const { return _bottomMargin; } float getBottomMargin() const { return _bottomMargin; }
bool getIsFacingAvatar() const { return _isFacingAvatar; }
xColor getBackgroundColor(); xColor getBackgroundColor();
// setters // setters
@ -41,6 +42,7 @@ public:
void setTopMargin(float margin) { _topMargin = margin; } void setTopMargin(float margin) { _topMargin = margin; }
void setRightMargin(float margin) { _rightMargin = margin; } void setRightMargin(float margin) { _rightMargin = margin; }
void setBottomMargin(float margin) { _bottomMargin = margin; } void setBottomMargin(float margin) { _bottomMargin = margin; }
void setIsFacingAvatar(bool isFacingAvatar) { _isFacingAvatar = isFacingAvatar; }
virtual void setProperties(const QScriptValue& properties); virtual void setProperties(const QScriptValue& properties);