History

expose setting HMD sensorToWorld from JS script

Andrew Meadows committed 10 years ago

Commit 97623f41 parent 0f248c42 files · +22 −2Browse files

Showing the changes to interface/src/scripting/HMDScriptingInterface.cpp (1 of 2 files). Show all

Unified · Split

interface/src/scripting/HMDScriptingInterface.cpp+15−0
@@ -90,6 +90,16 @@ glm::vec3 HMDScriptingInterface::getPosition() const { · 89 unmodified lines
90 return glm::vec3();90 return glm::vec3();
91}91}
92 92
93void HMDScriptingInterface::setPosition(const glm::vec3& position) {
94 MyAvatar* myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
95 glm::mat4 hmdToSensor = myAvatar->getHMDSensorMatrix();
96 glm::mat4 sensorToWorld = myAvatar->getSensorToWorldMatrix();
97 glm::mat4 hmdToWorld = sensorToWorld * hmdToSensor;
98 setTranslation(hmdToWorld, position);
99 sensorToWorld = hmdToWorld * glm::inverse(hmdToSensor);
100 myAvatar->setSensorToWorldMatrix(sensorToWorld);
101}
102
93glm::quat HMDScriptingInterface::getOrientation() const {103glm::quat HMDScriptingInterface::getOrientation() const {
94 if (qApp->getActiveDisplayPlugin()->isHmd()) {104 if (qApp->getActiveDisplayPlugin()->isHmd()) {
95 return glm::normalize(glm::quat_cast(getWorldHMDMatrix()));105 return glm::normalize(glm::quat_cast(getWorldHMDMatrix()));
@@ -139,3 +149,8 @@ bool HMDScriptingInterface::isKeyboardVisible() { · 43 unmodified lines
139void HMDScriptingInterface::centerUI() {149void HMDScriptingInterface::centerUI() {
140 QMetaObject::invokeMethod(qApp, "centerUI", Qt::QueuedConnection);150 QMetaObject::invokeMethod(qApp, "centerUI", Qt::QueuedConnection);
141}151}
152
153void HMDScriptingInterface::snapToAvatar() {
154 MyAvatar* myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
155 myAvatar->updateSensorToWorldMatrix();
156}