Showing the changes to interface/src/raypick/PickScriptingInterface.cpp (1 of 21 files). Show all
Unified · Split
| @@ -16,6 +16,7 @@ · 15 unmodified lines | ||
| 16 | 16 | #include "StaticRayPick.h" |
| 17 | 17 | #include "JointRayPick.h" |
| 18 | 18 | #include "MouseRayPick.h" |
| 19 | +#include "StylusPick.h" | |
| 19 | 20 | |
| 20 | 21 | #include <pointers/Pick.h> |
| 21 | 22 | #include <ScriptEngine.h> |
| @@ -24,6 +25,8 @@ unsigned int PickScriptingInterface::createPick(const PickQuery::PickType type, · 2 unmodified lines | ||
| 24 | 25 | switch (type) { |
| 25 | 26 | case PickQuery::PickType::Ray: |
| 26 | 27 | return createRayPick(properties); |
| 28 | + case PickQuery::PickType::Stylus: | |
| 29 | + return createStylusPick(properties); | |
| 27 | 30 | default: |
| 28 | 31 | return PickManager::INVALID_PICK_ID; |
| 29 | 32 | } |
| @@ -81,6 +84,30 @@ unsigned int PickScriptingInterface::createRayPick(const QVariant& properties) { · 51 unmodified lines | ||
| 81 | 84 | return PickManager::INVALID_PICK_ID; |
| 82 | 85 | } |
| 83 | 86 | |
| 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 | + | |
| 84 | 111 | void PickScriptingInterface::enablePick(unsigned int uid) { |
| 85 | 112 | DependencyManager::get<PickManager>()->enablePick(uid); |
| 86 | 113 | } |