Showing the changes to interface/src/raypick/PickScriptingInterface.cpp (1 of 20 files). Show all
Unified · Split
| @@ -17,6 +17,9 @@ · 16 unmodified lines | ||
| 17 | 17 | #include "JointRayPick.h" |
| 18 | 18 | #include "MouseRayPick.h" |
| 19 | 19 | |
| 20 | +#include <pointers/Pick.h> | |
| 21 | +#include <ScriptEngine.h> | |
| 22 | + | |
| 20 | 23 | QUuid PickScriptingInterface::createPick(const PickQuery::PickType type, const QVariant& properties) { |
| 21 | 24 | switch (type) { |
| 22 | 25 | case PickQuery::PickType::Ray: |
| @@ -105,3 +108,22 @@ void PickScriptingInterface::setIgnoreItems(const QUuid& uid, const QScriptValue · 82 unmodified lines | ||
| 105 | 108 | void PickScriptingInterface::setIncludeItems(const QUuid& uid, const QScriptValue& includeItems) { |
| 106 | 109 | DependencyManager::get<PickManager>()->setIncludeItems(uid, qVectorQUuidFromScriptValue(includeItems)); |
| 107 | 110 | } |
| 111 | + | |
| 112 | +QScriptValue pickTypesToScriptValue(QScriptEngine* engine, const PickQuery::PickType& pickType) { | |
| 113 | + return pickType; | |
| 114 | +} | |
| 115 | + | |
| 116 | +void pickTypesFromScriptValue(const QScriptValue& object, PickQuery::PickType& pickType) { | |
| 117 | + pickType = static_cast<PickQuery::PickType>(object.toUInt16()); | |
| 118 | +} | |
| 119 | + | |
| 120 | +void PickScriptingInterface::registerMetaTypes(QScriptEngine* engine) { | |
| 121 | + QScriptValue pickTypes = engine->newObject(); | |
| 122 | + auto metaEnum = QMetaEnum::fromType<PickQuery::PickType>(); | |
| 123 | + for (int i = 0; i < PickQuery::PickType::NUM_PICK_TYPES; ++i) { | |
| 124 | + pickTypes.setProperty(metaEnum.key(i), metaEnum.value(i)); | |
| 125 | + } | |
| 126 | + engine->globalObject().setProperty("PickType", pickTypes); | |
| 127 | + | |
| 128 | + qScriptRegisterMetaType(engine, pickTypesToScriptValue, pickTypesFromScriptValue); | |
| 129 | +} | |