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