History

Improve pick/pointer debugging. Use unsigned int in Graphics api for compatibility

sabrina-shanman committed 7 years ago

Commit f7c324c1 parent 3108b6935 files · +406 −89Browse files

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

Unified · Split

interface/src/raypick/PointerScriptingInterface.cpp+49−20
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313 #include <shared/QtHelpers.h>
1414
1515 #include "Application.h"
16+#include "PickManager.h"
1617 #include "LaserPointer.h"
1718 #include "StylusPointer.h"
1819 #include "ParabolaPointer.h"
@@ -38,16 +39,46 @@ unsigned int PointerScriptingInterface::createPointer(const PickQuery::PickType& · 19 unmodified lines
3839 return result;
3940 }
4041
42+ QVariantMap propertyMap = properties.toMap();
43+
44+ std::shared_ptr<Pointer> pointer;
4145 switch (type) {
4246 case PickQuery::PickType::Ray:
43− return createLaserPointer(properties);
47+ pointer = buildLaserPointer(propertyMap);
48+ break;
4449 case PickQuery::PickType::Stylus:
45− return createStylus(properties);
50+ pointer = buildStylus(propertyMap);
51+ break;
4652 case PickQuery::PickType::Parabola:
47− return createParabolaPointer(properties);
53+ pointer = buildParabolaPointer(propertyMap);
54+ break;
4855 default:
49− return PointerEvent::INVALID_POINTER_ID;
56+ break;
5057 }
58+
59+ if (!pointer) {
60+ return PointerEvent::INVALID_POINTER_ID;
61+ }
62+
63+ propertyMap["type"] = (int)type;
64+
65+ return DependencyManager::get<PointerManager>()->addPointer(pointer);
66+}
67+
68+bool PointerScriptingInterface::isPointerEnabled(unsigned int uid) const {
69+ return DependencyManager::get<PointerManager>()->isPointerEnabled(uid);
70+}
71+
72+QVector<unsigned int> PointerScriptingInterface::getCreatedPointers() const {
73+ return DependencyManager::get<PointerManager>()->getCreatedPointers();
74+}
75+
76+QVariantMap PointerScriptingInterface::getPointerProperties(unsigned int uid) const {
77+ return DependencyManager::get<PointerManager>()->getPointerProperties(uid);
78+}
79+
80+QVariantMap PointerScriptingInterface::getPointerScriptParameters(unsigned int uid) const {
81+ return DependencyManager::get<PointerManager>()->getPointerScriptParameters(uid);
5182 }
5283
5384 /**jsdoc
@@ -56,6 +87,7 @@ unsigned int PointerScriptingInterface::createPointer(const PickQuery::PickType& · 2 unmodified lines
5687 * @property {Pointers.StylusPointerModel} [model] - Override some or all of the default stylus model properties.
5788 * @property {boolean} [hover=false] - <code>true</code> if the pointer generates {@link Entities} hover events,
5889 * <code>false</code> if it doesn't.
90+ * @property {number} [pickID] - Returned from {@link Pointers.getPointerProperties}. The ID of the pick created alongside this pointer.
5991 * @see {@link Picks.StylusPickProperties} for additional properties from the underlying stylus pick.
6092 */
6193 /**jsdoc
@@ -67,7 +99,7 @@ unsigned int PointerScriptingInterface::createPointer(const PickQuery::PickType& · 5 unmodified lines
6799 * offset.
68100 * @property {Quat} [rotationOffset] - The rotation offset of the model from the hand, to override the default rotation offset.
69101 */
70−unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) const {
102+std::shared_ptr<Pointer> PointerScriptingInterface::buildStylus(const QVariant& properties) {
71103 QVariantMap propertyMap = properties.toMap();
72104
73105 bool hover = false;
@@ -100,8 +132,7 @@ unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) · 26 unmodified lines
100132 }
101133 }
102134
103− return DependencyManager::get<PointerManager>()->addPointer(std::make_shared<StylusPointer>(properties, StylusPointer::buildStylus(propertyMap), hover, enabled, modelPositionOffset,
104− modelRotationOffset, modelDimensions));
135+ return std::make_shared<StylusPointer>(properties, StylusPointer::buildStylus(propertyMap), hover, enabled, modelPositionOffset, modelRotationOffset, modelDimensions);
105136 }
106137
107138 /**jsdoc
@@ -174,9 +205,10 @@ unsigned int PointerScriptingInterface::createStylus(const QVariant& properties) · 66 unmodified lines
174205 * <code>false</code> if it doesn't.
175206 * @property {Pointers.Trigger[]} [triggers=[]] - A list of ways that a {@link Controller} action or function should trigger
176207 * events on the entity or overlay currently intersected.
208+ * @property {number} [pickID] - Returned from {@link Pointers.getPointerProperties}. The ID of the pick created alongside this pointer.
177209 * @see {@link Picks.RayPickProperties} for additional properties from the underlying ray pick.
178210 */
179−unsigned int PointerScriptingInterface::createLaserPointer(const QVariant& properties) const {
211+std::shared_ptr<Pointer> PointerScriptingInterface::buildLaserPointer(const QVariant& properties) {
180212 QVariantMap propertyMap = properties.toMap();
181213
182214 #if defined (Q_OS_ANDROID)
@@ -185,7 +217,7 @@ unsigned int PointerScriptingInterface::createLaserPointer(const QVariant& prope · 2 unmodified lines
185217 QString jointName = propertyMap["joint"].toString();
186218 const QString MOUSE_JOINT = "Mouse";
187219 if (jointName == MOUSE_JOINT) {
188− return PointerEvent::INVALID_POINTER_ID;
220+ return nullptr;
189221 }
190222 }
191223 #endif
@@ -283,9 +315,9 @@ unsigned int PointerScriptingInterface::createLaserPointer(const QVariant& prope · 91 unmodified lines
283315 }
284316 }
285317
286− return DependencyManager::get<PointerManager>()->addPointer(std::make_shared<LaserPointer>(properties, renderStates, defaultRenderStates, hover, triggers,
287− faceAvatar, followNormal, followNormalStrength, centerEndY, lockEnd,
288− distanceScaleEnd, scaleWithParent, enabled));
318+ return std::make_shared<LaserPointer>(properties, renderStates, defaultRenderStates, hover, triggers,
319+ faceAvatar, followNormal, followNormalStrength, centerEndY, lockEnd,
320+ distanceScaleEnd, scaleWithParent, enabled);
289321 }
290322
291323 /**jsdoc
@@ -365,9 +397,10 @@ unsigned int PointerScriptingInterface::createLaserPointer(const QVariant& prope · 73 unmodified lines
365397 * <code>false</code> if it doesn't.
366398 * @property {Pointers.Trigger[]} [triggers=[]] - A list of ways that a {@link Controller} action or function should trigger
367399 * events on the entity or overlay currently intersected.
400+ * @property {number} [pickID] - Returned from {@link Pointers.getPointerProperties}. The ID of the pick created alongside this pointer.
368401 * @see {@link Picks.ParabolaPickProperties} for additional properties from the underlying parabola pick.
369402 */
370−unsigned int PointerScriptingInterface::createParabolaPointer(const QVariant& properties) const {
403+std::shared_ptr<Pointer> PointerScriptingInterface::buildParabolaPointer(const QVariant& properties) {
371404 QVariantMap propertyMap = properties.toMap();
372405
373406 bool faceAvatar = false;
@@ -463,9 +496,9 @@ unsigned int PointerScriptingInterface::createParabolaPointer(const QVariant& pr · 89 unmodified lines
463496 }
464497 }
465498
466− return DependencyManager::get<PointerManager>()->addPointer(std::make_shared<ParabolaPointer>(properties, renderStates, defaultRenderStates, hover, triggers,
467− faceAvatar, followNormal, followNormalStrength, centerEndY, lockEnd, distanceScaleEnd,
468− scaleWithParent, enabled));
499+ return std::make_shared<ParabolaPointer>(properties, renderStates, defaultRenderStates, hover, triggers,
500+ faceAvatar, followNormal, followNormalStrength, centerEndY, lockEnd, distanceScaleEnd,
501+ scaleWithParent, enabled);
469502 }
470503
471504 void PointerScriptingInterface::editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const {
@@ -497,7 +530,3 @@ QVariantMap PointerScriptingInterface::getPrevPickResult(unsigned int uid) const · 25 unmodified lines
497530 }
498531 return result;
499532 }
500−
501−QVariantMap PointerScriptingInterface::getPointerProperties(unsigned int uid) const {
502− return DependencyManager::get<PointerManager>()->getPointerProperties(uid);
503−}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t