diff --git a/interface/src/raypick/LaserPointerScriptingInterface.h b/interface/src/raypick/LaserPointerScriptingInterface.h index c2e6c8f113..5aaacd7960 100644 --- a/interface/src/raypick/LaserPointerScriptingInterface.h +++ b/interface/src/raypick/LaserPointerScriptingInterface.h @@ -20,24 +20,122 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY +/**jsdoc + * Synonym for {@link Pointers} as used for laser pointers. + * + * @namespace LaserPointers + * + * @hifi-interface + * @hifi-client-entity + */ public: + + /**jsdoc + * @function LaserPointers.createLaserPointer + * @param {Pointers.LaserPointerProperties} properties + * @returns {number} + */ Q_INVOKABLE unsigned int createLaserPointer(const QVariant& properties) const; + + /**jsdoc + * @function LaserPointers.enableLaserPointer + * @param {number} id + */ Q_INVOKABLE void enableLaserPointer(unsigned int uid) const { DependencyManager::get()->enablePointer(uid); } + + /**jsdoc + * @function LaserPointers.disableLaserPointer + * @param {number} id + */ Q_INVOKABLE void disableLaserPointer(unsigned int uid) const { DependencyManager::get()->disablePointer(uid); } + + /**jsdoc + * @function LaserPointers.removeLaserPointer + * @param {number} id + */ Q_INVOKABLE void removeLaserPointer(unsigned int uid) const { DependencyManager::get()->removePointer(uid); } + + /**jsdoc + * @function LaserPointers.editRenderState + * @param {number} id + * @param {string} renderState + * @param {Pointers.RayPointerRenderState} properties + */ Q_INVOKABLE void editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const; + + /**jsdoc + * @function LaserPointers.setRenderState + * @param {string} renderState + * @param {number} id + */ Q_INVOKABLE void setRenderState(unsigned int uid, const QString& renderState) const { DependencyManager::get()->setRenderState(uid, renderState.toStdString()); } + + /**jsdoc + * @function LaserPointers.getPrevRayPickResult + * @param {number} id + * @returns {RayPickResult} + */ Q_INVOKABLE QVariantMap getPrevRayPickResult(unsigned int uid) const; + + /**jsdoc + * @function LaserPointers.setPrecisionPicking + * @param {number} id + * @param {boolean} precisionPicking + */ Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking) const { DependencyManager::get()->setPrecisionPicking(uid, precisionPicking); } + + /**jsdoc + * @function LaserPointers.setLaserLength + * @param {number} id + * @param {number} laserLength + */ Q_INVOKABLE void setLaserLength(unsigned int uid, float laserLength) const { DependencyManager::get()->setLength(uid, laserLength); } + + /**jsdoc + * @function LaserPointers.setIgnoreItems + * @param {number} id + * @param {Uuid[]} ignoreItems + */ Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreEntities) const; + + /**jsdoc + * @function LaserPointers.setIncludeItems + * @param {number} id + * @param {Uuid[]} includeItems + */ Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeEntities) const; + + /**jsdoc + * @function LaserPointers.setLockEndUUID + * @param {number} id + * @param {Uuid} itemID + * @param {boolean} isOverlay + * @param {Mat4} [offsetMat] + */ Q_INVOKABLE void setLockEndUUID(unsigned int uid, const QUuid& objectID, bool isOverlay, const glm::mat4& offsetMat = glm::mat4()) const { DependencyManager::get()->setLockEndUUID(uid, objectID, isOverlay, offsetMat); } + + /**jsdoc + * @function LaserPointers.isLeftHand + * @param {number} id + * @returns {boolean} + */ Q_INVOKABLE bool isLeftHand(unsigned int uid) { return DependencyManager::get()->isLeftHand(uid); } + + /**jsdoc + * @function LaserPointers.isRightHand + * @param {number} id + * @returns {boolean} + */ Q_INVOKABLE bool isRightHand(unsigned int uid) { return DependencyManager::get()->isRightHand(uid); } + + /**jsdoc + * @function LaserPointers.isMouse + * @param {number} id + * @returns {boolean} + */ Q_INVOKABLE bool isMouse(unsigned int uid) { return DependencyManager::get()->isMouse(uid); } }; diff --git a/interface/src/raypick/PointerScriptingInterface.h b/interface/src/raypick/PointerScriptingInterface.h index 6ff98c8a84..49eb40504d 100644 --- a/interface/src/raypick/PointerScriptingInterface.h +++ b/interface/src/raypick/PointerScriptingInterface.h @@ -16,7 +16,7 @@ /**jsdoc * The Pointers API lets you create and manage objects for repeatedly calculating intersections in different ways, as well as the visual representation of those objects. - * Pointers can also be configured to automatically generate PointerEvents. + * Pointers can also be configured to automatically generate {@link PointerEvent}s on {@link Entities} and {@link Overlays}. * * @namespace Pointers *