History

3D Keyboard

Dante Ruiz committed 8 years ago

Commit 501746b1 parent b97fd6e131 files · +3681 −-43Browse files

Showing the changes to interface/src/raypick/PointerScriptingInterface.cpp (1 of 131 files). Show all

Unified · Split

interface/src/raypick/PointerScriptingInterface.cpp+29−1
@@ -16,6 +16,11 @@ · 15 unmodified lines
16#include "LaserPointer.h"16#include "LaserPointer.h"
17#include "StylusPointer.h"17#include "StylusPointer.h"
18#include "ParabolaPointer.h"18#include "ParabolaPointer.h"
19#include "StylusPick.h"
20
21static const glm::quat X_ROT_NEG_90{ 0.70710678f, -0.70710678f, 0.0f, 0.0f };
22static const glm::vec3 DEFAULT_POSITION_OFFSET{0.0f, 0.0f, -StylusPick::WEB_STYLUS_LENGTH / 2.0f};
23static const glm::vec3 DEFAULT_MODEL_DIMENSIONS{0.01f, 0.01f, StylusPick::WEB_STYLUS_LENGTH};
19 24
20void PointerScriptingInterface::setIgnoreItems(unsigned int uid, const QScriptValue& ignoreItems) const {25void PointerScriptingInterface::setIgnoreItems(unsigned int uid, const QScriptValue& ignoreItems) const {
21 DependencyManager::get<PointerManager>()->setIgnoreItems(uid, qVectorQUuidFromScriptValue(ignoreItems));26 DependencyManager::get<PointerManager>()->setIgnoreItems(uid, qVectorQUuidFromScriptValue(ignoreItems));
@@ -50,6 +55,8 @@ unsigned int PointerScriptingInterface::createPointer(const PickQuery::PickType& · 28 unmodified lines
50 * @typedef {object} Pointers.StylusPointerProperties55 * @typedef {object} Pointers.StylusPointerProperties
51 * @property {boolean} [hover=false] If this pointer should generate hover events.56 * @property {boolean} [hover=false] If this pointer should generate hover events.
52 * @property {boolean} [enabled=false]57 * @property {boolean} [enabled=false]
58 * @property {Vec3} [tipOffset] The specified offset of the from the joint index.
59 * @property {object} [model] Data to replace the default model url, positionOffset and rotationOffset.
53 */60 */
54unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) const {61unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) const {
55 QVariantMap propertyMap = properties.toMap();62 QVariantMap propertyMap = properties.toMap();
@@ -64,7 +71,28 @@ unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) · 8 unmodified lines
64 enabled = propertyMap["enabled"].toBool();71 enabled = propertyMap["enabled"].toBool();
65 }72 }
66 73
67 return DependencyManager::get<PointerManager>()->addPointer(std::make_shared<StylusPointer>(properties, StylusPointer::buildStylusOverlay(propertyMap), hover, enabled));74 glm::vec3 modelPositionOffset = DEFAULT_POSITION_OFFSET;
75 glm::quat modelRotationOffset = X_ROT_NEG_90;
76 glm::vec3 modelDimensions = DEFAULT_MODEL_DIMENSIONS;
77
78 if (propertyMap["model"].isValid()) {
79 QVariantMap modelData = propertyMap["model"].toMap();
80
81 if (modelData["positionOffset"].isValid()) {
82 modelPositionOffset = vec3FromVariant(modelData["positionOffset"]);
83 }
84
85 if (modelData["rotationOffset"].isValid()) {
86 modelRotationOffset = quatFromVariant(modelData["rotationOffset"]);
87 }
88
89 if (modelData["dimensions"].isValid()) {
90 modelDimensions = vec3FromVariant(modelData["dimensions"]);
91 }
92 }
93
94 return DependencyManager::get<PointerManager>()->addPointer(std::make_shared<StylusPointer>(properties, StylusPointer::buildStylusOverlay(propertyMap), hover, enabled, modelPositionOffset,
95 modelRotationOffset, modelDimensions));
68}96}
69 97
70/**jsdoc98/**jsdoc