diff --git a/interface/src/raypick/RayPickScriptingInterface.h b/interface/src/raypick/RayPickScriptingInterface.h
index 3795f191b3..ce692e2003 100644
--- a/interface/src/raypick/RayPickScriptingInterface.h
+++ b/interface/src/raypick/RayPickScriptingInterface.h
@@ -18,6 +18,30 @@
#include "PickScriptingInterface.h"
+/**jsdoc
+ * Synonym for {@link Picks} as used for ray picks.
+ *
+ * @namespace RayPick
+ *
+ * @hifi-interface
+ * @hifi-client-entity
+ *
+ * @property {number} PICK_NOTHING Read-only.
+ * @property {number} PICK_ENTITIES Read-only.
+ * @property {number} PICK_OVERLAYS Read-only.
+ * @property {number} PICK_AVATARS Read-only.
+ * @property {number} PICK_HUD Read-only.
+ * @property {number} PICK_COARSE Read-only.
+ * @property {number} PICK_INCLUDE_INVISIBLE Read-only.
+ * @property {number} PICK_INCLUDE_NONCOLLIDABLE Read-only.
+ * @property {number} PICK_ALL_INTERSECTIONS Read-only.
+ * @property {number} INTERSECTED_NONE Read-only.
+ * @property {number} INTERSECTED_ENTITY Read-only.
+ * @property {number} INTERSECTED_OVERLAY Read-only.
+ * @property {number} INTERSECTED_AVATAR Read-only.
+ * @property {number} INTERSECTED_HUD Read-only.
+ */
+
class RayPickScriptingInterface : public QObject, public Dependency {
Q_OBJECT
Q_PROPERTY(unsigned int PICK_NOTHING READ PICK_NOTHING CONSTANT)
@@ -37,34 +61,167 @@ class RayPickScriptingInterface : public QObject, public Dependency {
SINGLETON_DEPENDENCY
public:
+
+ /**jsdoc
+ * @function RayPick.createRayPick
+ * @param {Picks.RayPickProperties}
+ * @returns {number}
+ */
Q_INVOKABLE unsigned int createRayPick(const QVariant& properties);
+
+ /**jsdoc
+ * @function RayPick.enableRayPick
+ * @param {number} id
+ */
Q_INVOKABLE void enableRayPick(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.disableRayPick
+ * @param {number} id
+ */
Q_INVOKABLE void disableRayPick(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.removeRayPick
+ * @param {number} id
+ */
Q_INVOKABLE void removeRayPick(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.getPrevRayPickResult
+ * @param {number} id
+ * @returns {Picks.RayPickResult}
+ */
Q_INVOKABLE QVariantMap getPrevRayPickResult(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.setPrecisionPicking
+ * @param {number} id
+ * @param {boolean} precisionPicking
+ */
Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking);
+
+ /**jsdoc
+ * @function RayPick.setIgnoreItems
+ * @param {number} id
+ * @param {Uuid[]) ignoreEntities
+ */
Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreEntities);
+
+ /**jsdoc
+ * @function RayPick.setIncludeItems
+ * @param {number} id
+ * @param {Uuid[]) includeEntities
+ */
Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeEntities);
+
+ /**jsdoc
+ * @function RayPick.isLeftHand
+ * @param {number} id
+ * @returns {boolean}
+ */
Q_INVOKABLE bool isLeftHand(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.isRightHand
+ * @param {number} id
+ * @returns {boolean}
+ */
Q_INVOKABLE bool isRightHand(unsigned int uid);
+
+ /**jsdoc
+ * @function RayPick.isMouse
+ * @param {number} id
+ * @returns {boolean}
+ */
Q_INVOKABLE bool isMouse(unsigned int uid);
public slots:
+
+ /**jsdoc
+ * @function RayPick.PICK_NOTHING
+ * @returns {number}
+ */
static unsigned int PICK_NOTHING() { return PickScriptingInterface::PICK_NOTHING(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_ENTITIES
+ * @returns {number}
+ */
static unsigned int PICK_ENTITIES() { return PickScriptingInterface::PICK_ENTITIES(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_OVERLAYS
+ * @returns {number}
+ */
static unsigned int PICK_OVERLAYS() { return PickScriptingInterface::PICK_OVERLAYS(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_AVATARS
+ * @returns {number}
+ */
static unsigned int PICK_AVATARS() { return PickScriptingInterface::PICK_AVATARS(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_HUD
+ * @returns {number}
+ */
static unsigned int PICK_HUD() { return PickScriptingInterface::PICK_HUD(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_COARSE
+ * @returns {number}
+ */
static unsigned int PICK_COARSE() { return PickScriptingInterface::PICK_COARSE(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_INCLUDE_INVISIBLE
+ * @returns {number}
+ */
static unsigned int PICK_INCLUDE_INVISIBLE() { return PickScriptingInterface::PICK_INCLUDE_INVISIBLE(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_INCLUDE_NONCOLLIDABLE
+ * @returns {number}
+ */
static unsigned int PICK_INCLUDE_NONCOLLIDABLE() { return PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE(); }
+
+ /**jsdoc
+ * @function RayPick.PICK_ALL_INTERSECTIONS
+ * @returns {number}
+ */
static unsigned int PICK_ALL_INTERSECTIONS() { return PickScriptingInterface::PICK_ALL_INTERSECTIONS(); }
+
+ /**jsdoc
+ * @function RayPick.INTERSECTED_NONE
+ * @returns {number}
+ */
static unsigned int INTERSECTED_NONE() { return PickScriptingInterface::INTERSECTED_NONE(); }
+
+ /**jsdoc
+ * @function RayPick.INTERSECTED_ENTITY
+ * @returns {number}
+ */
static unsigned int INTERSECTED_ENTITY() { return PickScriptingInterface::INTERSECTED_ENTITY(); }
+
+ /**jsdoc
+ * @function RayPick.INTERSECTED_OVERLAY
+ * @returns {number}
+ */
static unsigned int INTERSECTED_OVERLAY() { return PickScriptingInterface::INTERSECTED_OVERLAY(); }
+
+ /**jsdoc
+ * @function RayPick.INTERSECTED_AVATAR
+ * @returns {number}
+ */
static unsigned int INTERSECTED_AVATAR() { return PickScriptingInterface::INTERSECTED_AVATAR(); }
+
+ /**jsdoc
+ * @function RayPick.INTERSECTED_HUD
+ * @returns {number}
+ */
static unsigned int INTERSECTED_HUD() { return PickScriptingInterface::INTERSECTED_HUD(); }
};