History

integrated stylus into pointer system, need to update controller module

SamGondelman committed 9 years ago

Commit 5a78c9e1 parent f970eb221 files · +636 −773Browse files

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

Unified · Split

interface/src/raypick/PickScriptingInterface.cpp+27−0
@@ -16,6 +16,7 @@ · 15 unmodified lines
1616 #include "StaticRayPick.h"
1717 #include "JointRayPick.h"
1818 #include "MouseRayPick.h"
19+#include "StylusPick.h"
1920
2021 #include <pointers/Pick.h>
2122 #include <ScriptEngine.h>
@@ -24,6 +25,8 @@ unsigned int PickScriptingInterface::createPick(const PickQuery::PickType type, · 2 unmodified lines
2425 switch (type) {
2526 case PickQuery::PickType::Ray:
2627 return createRayPick(properties);
28+ case PickQuery::PickType::Stylus:
29+ return createStylusPick(properties);
2730 default:
2831 return PickManager::INVALID_PICK_ID;
2932 }
@@ -81,6 +84,30 @@ unsigned int PickScriptingInterface::createRayPick(const QVariant& properties) { · 51 unmodified lines
8184 return PickManager::INVALID_PICK_ID;
8285 }
8386
87+unsigned int PickScriptingInterface::createStylusPick(const QVariant& properties) {
88+ QVariantMap propMap = properties.toMap();
89+
90+ bilateral::Side side = bilateral::Side::Invalid;
91+ {
92+ QVariant handVar = propMap["hand"];
93+ if (handVar.isValid()) {
94+ side = bilateral::side(handVar.toInt());
95+ }
96+ }
97+
98+ bool enabled = false;
99+ if (propMap["enabled"].isValid()) {
100+ enabled = propMap["enabled"].toBool();
101+ }
102+
103+ PickFilter filter = PickFilter();
104+ if (propMap["filter"].isValid()) {
105+ filter = PickFilter(propMap["filter"].toUInt());
106+ }
107+
108+ return DependencyManager::get<PickManager>()->addPick(PickQuery::Stylus, std::make_shared<StylusPick>(filter, side, enabled));
109+}
110+
84111 void PickScriptingInterface::enablePick(unsigned int uid) {
85112 DependencyManager::get<PickManager>()->enablePick(uid);
86113 }