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
1616 #include "LaserPointer.h"
1717 #include "StylusPointer.h"
1818 #include "ParabolaPointer.h"
19+#include "StylusPick.h"
20+
21+static const glm::quat X_ROT_NEG_90{ 0.70710678f, -0.70710678f, 0.0f, 0.0f };
22+static const glm::vec3 DEFAULT_POSITION_OFFSET{0.0f, 0.0f, -StylusPick::WEB_STYLUS_LENGTH / 2.0f};
23+static const glm::vec3 DEFAULT_MODEL_DIMENSIONS{0.01f, 0.01f, StylusPick::WEB_STYLUS_LENGTH};
1924
2025 void PointerScriptingInterface::setIgnoreItems(unsigned int uid, const QScriptValue& ignoreItems) const {
2126 DependencyManager::get<PointerManager>()->setIgnoreItems(uid, qVectorQUuidFromScriptValue(ignoreItems));
@@ -50,6 +55,8 @@ unsigned int PointerScriptingInterface::createPointer(const PickQuery::PickType& · 28 unmodified lines
5055 * @typedef {object} Pointers.StylusPointerProperties
5156 * @property {boolean} [hover=false] If this pointer should generate hover events.
5257 * @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.
5360 */
5461 unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) const {
5562 QVariantMap propertyMap = properties.toMap();
@@ -64,7 +71,28 @@ unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) · 8 unmodified lines
6471 enabled = propertyMap["enabled"].toBool();
6572 }
6673
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));
6896 }
6997
7098 /**jsdoc