History

laserpointers generate pointerevents

SamGondelman committed 9 years ago

Commit cf34fe31 parent befe58320 files · +376 −57Browse files

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

Unified · Split

interface/src/raypick/PickScriptingInterface.cpp+22−0
@@ -17,6 +17,9 @@ · 16 unmodified lines
1717 #include "JointRayPick.h"
1818 #include "MouseRayPick.h"
1919
20+#include <pointers/Pick.h>
21+#include <ScriptEngine.h>
22+
2023 QUuid PickScriptingInterface::createPick(const PickQuery::PickType type, const QVariant& properties) {
2124 switch (type) {
2225 case PickQuery::PickType::Ray:
@@ -105,3 +108,22 @@ void PickScriptingInterface::setIgnoreItems(const QUuid& uid, const QScriptValue · 82 unmodified lines
105108 void PickScriptingInterface::setIncludeItems(const QUuid& uid, const QScriptValue& includeItems) {
106109 DependencyManager::get<PickManager>()->setIncludeItems(uid, qVectorQUuidFromScriptValue(includeItems));
107110 }
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+}