Convert all "/**jsdoc" occurrences to "/*@jsdoc"

This commit is contained in:
David Rowe 2021-05-12 10:54:45 +12:00
parent 2130dea965
commit 4d11d1d515
220 changed files with 2319 additions and 2319 deletions
assignment-client/src
interface/src
libraries

View file

@ -17,7 +17,7 @@
#include "Agent.h"
/**jsdoc
/*@jsdoc
* The <code>Agent</code> API enables an assignment client to emulate an avatar. Setting <code>isAvatar = true</code> connects
* the assignment client to the avatar and audio mixers, and enables the {@link Avatar} API to be used.
*
@ -62,7 +62,7 @@ public:
QUuid getSessionUUID() const { return _agent->getSessionUUID(); }
public slots:
/**jsdoc
/*@jsdoc
* Sets whether the script should emulate an avatar.
* @function Agent.setIsAvatar
* @param {boolean} isAvatar - <code>true</code> if the script emulates an avatar, otherwise <code>false</code>.
@ -75,7 +75,7 @@ public slots:
*/
void setIsAvatar(bool isAvatar) const { _agent->setIsAvatar(isAvatar); }
/**jsdoc
/*@jsdoc
* Checks whether the script is emulating an avatar.
* @function Agent.isAvatar
* @returns {boolean} <code>true</code> if the script is emulating an avatar, otherwise <code>false</code>.
@ -87,7 +87,7 @@ public slots:
*/
bool isAvatar() const { return _agent->isAvatar(); }
/**jsdoc
/*@jsdoc
* Plays a sound from the position and with the orientation of the emulated avatar's head. No sound is played unless
* <code>isAvatar == true</code>.
* @function Agent.playAvatarSound

View file

@ -18,7 +18,7 @@
#include <ScriptEngine.h>
#include <EntityItem.h>
/**jsdoc
/*@jsdoc
* The <code>Avatar</code> API is used to manipulate scriptable avatars on the domain. This API is a subset of the
* {@link MyAvatar} API. To enable this API, set {@link Agent|Agent.isAvatar} to <code>true</code>.
*
@ -110,7 +110,7 @@ public:
ScriptableAvatar();
/**jsdoc
/*@jsdoc
* Starts playing an animation on the avatar.
* @function Avatar.startAnimation
* @param {string} url - The animation file's URL. Animation files need to be in glTF or FBX format but only need to
@ -130,13 +130,13 @@ public:
bool hold = false, float firstFrame = 0.0f, float lastFrame = FLT_MAX,
const QStringList& maskedJoints = QStringList());
/**jsdoc
/*@jsdoc
* Stops playing the current animation.
* @function Avatar.stopAnimation
*/
Q_INVOKABLE void stopAnimation();
/**jsdoc
/*@jsdoc
* Gets the details of the current avatar animation that is being or was recently played.
* @function Avatar.getAnimationDetails
* @returns {Avatar.AnimationDetails} The current or recent avatar animation.
@ -146,30 +146,30 @@ public:
*/
Q_INVOKABLE AnimationDetails getAnimationDetails();
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
Q_INVOKABLE virtual QStringList getJointNames() const override;
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
/// Returns the index of the joint with the specified name, or -1 if not found/unknown.
Q_INVOKABLE virtual int getJointIndex(const QString& name) const override;
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL) override;
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
int sendAvatarDataPacket(bool sendAll = false) override;
virtual QByteArray toByteArrayStateful(AvatarDataDetail dataDetail, bool dropFaceTracking = false) override;
/**jsdoc
/*@jsdoc
* Gets details of all avatar entities.
* <p><strong>Warning:</strong> Potentially an expensive call. Do not use if possible.</p>
* @function Avatar.getAvatarEntityData
@ -184,7 +184,7 @@ public:
AvatarEntityMap getAvatarEntityDataInternal(bool allProperties) const;
/**jsdoc
/*@jsdoc
* Sets all avatar entities from an object.
* <p><strong>Warning:</strong> Potentially an expensive call. Do not use if possible.</p>
* @function Avatar.setAvatarEntityData
@ -192,20 +192,20 @@ public:
*/
Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override;
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) override;
public slots:
/**jsdoc
/*@jsdoc
* @function Avatar.update
* @param {number} deltaTime - Delta time.
* @deprecated This function is deprecated and will be removed.
*/
void update(float deltatime);
/**jsdoc
/*@jsdoc
* @function Avatar.setJointMappingsFromNetworkReply
* @deprecated This function is deprecated and will be removed.
*/

View file

@ -23,7 +23,7 @@
class EntitySimulation;
/**jsdoc
/*@jsdoc
* The <code>EntityViewer</code> API provides a headless viewer for assignment client scripts, so that they can "see" entities
* in order for them to be available in the {@link Entities} API.
*

View file

@ -27,7 +27,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Updates the entities currently in view.
* @function EntityViewer.queryOctree
*/
@ -36,28 +36,28 @@ public slots:
// setters for camera attributes
/**jsdoc
/*@jsdoc
* Sets the position of the view frustum.
* @function EntityViewer.setPosition
* @param {Vec3} position - The position of the view frustum.
*/
void setPosition(const glm::vec3& position) { _hasViewFrustum = true; _viewFrustum.setPosition(position); }
/**jsdoc
/*@jsdoc
* Sets the orientation of the view frustum.
* @function EntityViewer.setOrientation
* @param {Quat} orientation - The orientation of the view frustum.
*/
void setOrientation(const glm::quat& orientation) { _hasViewFrustum = true; _viewFrustum.setOrientation(orientation); }
/**jsdoc
/*@jsdoc
* Sets the radius of the center "keyhole" in the view frustum.
* @function EntityViewer.setCenterRadius
* @param {number} radius - The radius of the center "keyhole" in the view frustum.
*/
void setCenterRadius(float radius) { _hasViewFrustum = true; _viewFrustum.setCenterRadius(radius); }
/**jsdoc
/*@jsdoc
* Sets the radius of the center "keyhole" in the view frustum.
* @function EntityViewer.setKeyholeRadius
* @param {number} radius - The radius of the center "keyhole" in the view frustum.
@ -69,21 +69,21 @@ public slots:
// setters for LOD and PPS
/**jsdoc
/*@jsdoc
* @function EntityViewer.setVoxelSizeScale
* @param {number} sizeScale - The voxel size scale.
* @deprecated This function is deprecated and will be removed.
*/
void setVoxelSizeScale(float sizeScale) { _octreeQuery.setOctreeSizeScale(sizeScale) ; }
/**jsdoc
/*@jsdoc
* @function EntityViewer.setBoundaryLevelAdjust
* @param {number} boundaryLevelAdjust - The boundary level adjust factor.
* @deprecated This function is deprecated and will be removed.
*/
void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _octreeQuery.setBoundaryLevelAdjust(boundaryLevelAdjust); }
/**jsdoc
/*@jsdoc
* Sets the maximum number of entity packets to receive from the domain server per second.
* @function EntityViewer.setMaxPacketsPerSecond
* @param {number} maxPacketsPerSecond - The maximum number of entity packets to receive per second.
@ -92,14 +92,14 @@ public slots:
// getters for camera attributes
/**jsdoc
/*@jsdoc
* Gets the position of the view frustum.
* @function EntityViewer.getPosition
* @returns {Vec3} The position of the view frustum.
*/
const glm::vec3& getPosition() const { return _viewFrustum.getPosition(); }
/**jsdoc
/*@jsdoc
* Gets the orientation of the view frustum.
* @function EntityViewer.getOrientation
* @returns {Quat} The orientation of the view frustum.
@ -109,21 +109,21 @@ public slots:
// getters for LOD and PPS
/**jsdoc
/*@jsdoc
* @function EntityViewer.getVoxelSizeScale
* @returns {number} The voxel size scale.
* @deprecated This function is deprecated and will be removed.
*/
float getVoxelSizeScale() const { return _octreeQuery.getOctreeSizeScale(); }
/**jsdoc
/*@jsdoc
* @function EntityViewer.getBoundaryLevelAdjust
* @returns {number} The boundary level adjust factor.
* @deprecated This function is deprecated and will be removed.
*/
int getBoundaryLevelAdjust() const { return _octreeQuery.getBoundaryLevelAdjust(); }
/**jsdoc
/*@jsdoc
* Gets the maximum number of entity packets to receive from the domain server per second.
* @function EntityViewer.getMaxPacketsPerSecond
* @returns {number} The maximum number of entity packets to receive per second.
@ -131,7 +131,7 @@ public slots:
int getMaxPacketsPerSecond() const { return _octreeQuery.getMaxQueryPacketsPerSecond(); }
/**jsdoc
/*@jsdoc
* Gets the number of nodes in the octree.
* @function EntityViewer.getOctreeElementsCount
* @returns {number} The number of nodes in the octree.

View file

@ -16,7 +16,7 @@
#include <QObject>
/**jsdoc
/*@jsdoc
* The <code>About</code> API provides information about the version of Interface that is currently running. It also has the
* functionality to open a web page in an Interface browser window.
*
@ -41,7 +41,7 @@
* print("Qt version: " + About.qtVersion);
*/
/**jsdoc
/*@jsdoc
* The <code>HifiAbout</code> API provides information about the version of Interface that is currently running. It also
* has the functionality to open a web page in an Interface browser window.
*
@ -82,7 +82,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Display a web page in an Interface browser window or the tablet.
* @function About.openUrl
* @param {string} url - The URL of the web page you want to view in Interface.

View file

@ -657,7 +657,7 @@ private:
}
};
/**jsdoc
/*@jsdoc
* <p>The <code>Controller.Hardware.Application</code> object has properties representing Interface's state. The property
* values are integer IDs, uniquely identifying each output. <em>Read-only.</em></p>
* <p>These states can be mapped to actions or functions or <code>Controller.Standard</code> items in a {@link RouteObject}

View file

@ -180,7 +180,7 @@ void AvatarBookmarks::updateAvatarEntities(const QVariantList &avatarEntities) {
}
}
/**jsdoc
/*@jsdoc
* Details of an avatar bookmark.
* @typedef {object} AvatarBookmarks.BookmarkData
* @property {number} version - The version of the bookmark data format.

View file

@ -16,7 +16,7 @@
#include <DependencyManager.h>
#include "Bookmarks.h"
/**jsdoc
/*@jsdoc
* The <code>AvatarBookmarks</code> API provides facilities for working with avatar bookmarks ("favorites" in the Avatar app).
* An avatar bookmark associates a name with an avatar model, scale, and avatar entities (wearables).
*
@ -36,7 +36,7 @@ public:
AvatarBookmarks();
void setupMenus(Menu* menubar, MenuWrapper* menu) override {};
/**jsdoc
/*@jsdoc
* Gets the details of an avatar bookmark.
* @function AvatarBookmarks.getBookmark
* @param {string} bookmarkName - The name of the avatar bookmark (case sensitive).
@ -45,7 +45,7 @@ public:
Q_INVOKABLE QVariantMap getBookmark(const QString& bookmarkName);
public slots:
/**jsdoc
/*@jsdoc
* Adds a new (or updates an existing) avatar bookmark with your current avatar model, scale, and avatar entities.
* @function AvatarBookmarks.addBookmark
* @param {string} bookmarkName - The name of the avatar bookmark (case sensitive).
@ -57,7 +57,7 @@ public slots:
*/
void addBookmark(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Updates an existing bookmark with your current avatar model, scale, and wearables. No action is taken if the bookmark
* doesn't exist.
* @function AvatarBookmarks.saveBookmark
@ -65,7 +65,7 @@ public slots:
*/
void saveBookmark(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Loads an avatar bookmark, setting your avatar model, scale, and avatar entities (or attachments if an old bookmark) to
* those in the bookmark.
* @function AvatarBookmarks.loadBookmark
@ -73,14 +73,14 @@ public slots:
*/
void loadBookmark(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Deletes an avatar bookmark.
* @function AvatarBookmarks.removeBookmark
* @param {string} bookmarkName - The name of the avatar bookmark to delete (case sensitive).
*/
void removeBookmark(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Updates the avatar entities and their properties. Current avatar entities not included in the list provided are deleted.
* @function AvatarBookmarks.updateAvatarEntities
* @param {MyAvatar.AvatarEntityData[]} avatarEntities - The avatar entity IDs and properties.
@ -88,7 +88,7 @@ public slots:
*/
void updateAvatarEntities(const QVariantList& avatarEntities);
/**jsdoc
/*@jsdoc
* Gets the details of all avatar bookmarks.
* @function AvatarBookmarks.getBookmarks
* @returns {Object<string,AvatarBookmarks.BookmarkData>} The current avatar bookmarks in an object where the keys are the
@ -103,7 +103,7 @@ public slots:
QVariantMap getBookmarks() { return _bookmarks; }
signals:
/**jsdoc
/*@jsdoc
* Triggered when an avatar bookmark is loaded, setting your avatar model, scale, and avatar entities (or attachments if an
* old bookmark) to those in the bookmark.
* @function AvatarBookmarks.bookmarkLoaded
@ -112,7 +112,7 @@ signals:
*/
void bookmarkLoaded(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Triggered when an avatar bookmark is deleted.
* @function AvatarBookmarks.bookmarkDeleted
* @param {string} bookmarkName - The name of the avatar bookmark deleted.
@ -124,7 +124,7 @@ signals:
*/
void bookmarkDeleted(const QString& bookmarkName);
/**jsdoc
/*@jsdoc
* Triggered when a new avatar bookmark is added or an existing avatar bookmark is updated, using
* {@link AvatarBookmarks.addBookmark|addBookmark}.
* @function AvatarBookmarks.bookmarkAdded
@ -139,7 +139,7 @@ protected:
QVariantMap getAvatarDataToBookmark();
protected slots:
/**jsdoc
/*@jsdoc
* Performs no action.
* @function AvatarBookmarks.deleteBookmark
* @deprecated This function is deprecated and will be removed.

View file

@ -51,7 +51,7 @@ protected:
bool _isMenuSorted;
protected slots:
/**jsdoc
/*@jsdoc
* Prompts the user to delete a bookmark. The user can select the bookmark to delete in the dialog that is opened.
* @function LocationBookmarks.deleteBookmark
*/

View file

@ -18,7 +18,7 @@
class FancyCamera : public Camera {
Q_OBJECT
/**jsdoc
/*@jsdoc
* The <code>Camera</code> API provides access to the "camera" that defines your view in desktop and HMD display modes.
* The Vircadia camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
*
@ -51,7 +51,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Gets the ID of the entity that the camera is set to follow (i.e., use the position and orientation from) when it's in
* entity mode. You can also get the entity ID using the {@link Camera|Camera.cameraEntity} property.
* @function Camera.getCameraEntity
@ -60,7 +60,7 @@ public slots:
*/
QUuid getCameraEntity() const;
/**jsdoc
/*@jsdoc
* Sets the entity that the camera should follow (i.e., use the position and orientation from) when it's in entity mode.
* You can also set the entity using the {@link Camera|Camera.cameraEntity} property.
* @function Camera.setCameraEntity

View file

@ -24,7 +24,7 @@
#include <render/Args.h>
/**jsdoc
/*@jsdoc
* <p>The world detail quality rendered.</p>
* <table>
* <thead>
@ -68,7 +68,7 @@ const float LOD_OFFSET_FPS = 5.0f; // offset of FPS to add for computing the tar
class AABox;
/**jsdoc
/*@jsdoc
* The <code>LODManager</code> API manages the Level of Detail displayed in Interface. If the LOD is being automatically
* adjusted, the LOD is decreased if the measured frame rate is lower than the target FPS, and increased if the measured frame
* rate is greater than the target FPS.
@ -165,14 +165,14 @@ class LODManager : public QObject, public Dependency {
public:
/**jsdoc
/*@jsdoc
* Sets whether the LOD should be automatically adjusted.
* @function LODManager.setAutomaticLODAdjust
* @param {boolean} value - <code>true</code> to automatically adjust the LOD, <code>false</code> to manually adjust it.
*/
Q_INVOKABLE void setAutomaticLODAdjust(bool value);
/**jsdoc
/*@jsdoc
* Gets whether the LOD is being automatically adjusted.
* @function LODManager.getAutomaticLODAdjust
* @returns {boolean} <code>true</code> if the LOD is being automatically adjusted, <code>false</code> if it is being
@ -180,14 +180,14 @@ public:
*/
Q_INVOKABLE bool getAutomaticLODAdjust() const { return _automaticLODAdjust; }
/**jsdoc
/*@jsdoc
* Sets the target desktop LOD FPS.
* @function LODManager.setDesktopLODTargetFPS
* @param {number} value - The target desktop LOD FPS, in Hz.
*/
Q_INVOKABLE void setDesktopLODTargetFPS(float value);
/**jsdoc
/*@jsdoc
* Gets the target desktop LOD FPS.
* @function LODManager.getDesktopLODTargetFPS
* @returns {number} The target desktop LOD FPS, in Hz.
@ -195,7 +195,7 @@ public:
Q_INVOKABLE float getDesktopLODTargetFPS() const;
/**jsdoc
/*@jsdoc
* Sets the target HMD LOD FPS.
* @function LODManager.setHMDLODTargetFPS
* @param {number} value - The target HMD LOD FPS, in Hz.
@ -203,7 +203,7 @@ public:
Q_INVOKABLE void setHMDLODTargetFPS(float value);
/**jsdoc
/*@jsdoc
* Gets the target HMD LOD FPS.
* The target FPS in HMD mode. The LOD is adjusted to ...
* @function LODManager.getHMDLODTargetFPS
@ -214,7 +214,7 @@ public:
// User Tweakable LOD Items
/**jsdoc
/*@jsdoc
* Gets a text description of the current level of detail rendered.
* @function LODManager.getLODFeedbackText
* @returns {string} A text description of the current level of detail rendered.
@ -223,35 +223,35 @@ public:
*/
Q_INVOKABLE QString getLODFeedbackText();
/**jsdoc
/*@jsdoc
* @function LODManager.setOctreeSizeScale
* @param {number} sizeScale - The octree size scale.
* @deprecated This function is deprecated and will be removed. Use the <code>lodAngleDeg</code> property instead.
*/
Q_INVOKABLE void setOctreeSizeScale(float sizeScale);
/**jsdoc
/*@jsdoc
* @function LODManager.getOctreeSizeScale
* @returns {number} The octree size scale.
* @deprecated This function is deprecated and will be removed. Use the <code>lodAngleDeg</code> property instead.
*/
Q_INVOKABLE float getOctreeSizeScale() const;
/**jsdoc
/*@jsdoc
* @function LODManager.setBoundaryLevelAdjust
* @param {number} boundaryLevelAdjust - The boundary level adjust factor.
* @deprecated This function is deprecated and will be removed.
*/
Q_INVOKABLE void setBoundaryLevelAdjust(int boundaryLevelAdjust);
/**jsdoc
/*@jsdoc
* @function LODManager.getBoundaryLevelAdjust
* @returns {number} The boundary level adjust factor.
* @deprecated This function is deprecated and will be removed.
*/
Q_INVOKABLE int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; }
/**jsdoc
/*@jsdoc
* The target LOD FPS per the current desktop or HMD display mode, capped by the target refresh rate.
* @function LODManager.getLODTargetFPS
* @returns {number} The target LOD FPS, in Hz.
@ -309,7 +309,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* <em>Not triggered.</em>
* @function LODManager.LODIncreased
* @returns {Signal}
@ -317,7 +317,7 @@ signals:
*/
void LODIncreased();
/**jsdoc
/*@jsdoc
* <em>Not triggered.</em>
* @function LODManager.LODDecreased
* @returns {Signal}
@ -325,14 +325,14 @@ signals:
*/
void LODDecreased();
/**jsdoc
/*@jsdoc
* Triggered when whether or not the LOD is being automatically adjusted changes.
* @function LODManager.autoLODChanged
* @returns {Signal}
*/
void autoLODChanged();
/**jsdoc
/*@jsdoc
* Triggered when the <code>lodQualityLevel</code> property value changes.
* @function LODManager.lodQualityLevelChanged
* @returns {Signal}
@ -340,7 +340,7 @@ signals:
*/
void lodQualityLevelChanged();
/**jsdoc
/*@jsdoc
* Triggered when the world detail quality changes.
* @function LODManager.worldDetailQualityChanged
* @returns {Signal}

View file

@ -16,7 +16,7 @@
#include "Bookmarks.h"
/**jsdoc
/*@jsdoc
* The <code>LocationBookmarks</code> API provides facilities for working with location bookmarks. A location bookmark
* associates a name with a metaverse address.
*
@ -37,7 +37,7 @@ public:
void setupMenus(Menu* menubar, MenuWrapper* menu) override;
static const QString HOME_BOOKMARK;
/**jsdoc
/*@jsdoc
* Gets the metaverse address associated with a bookmark.
* @function LocationBookmarks.getAddress
* @param {string} bookmarkName - Name of the bookmark to get the metaverse address for (case sensitive).
@ -49,21 +49,21 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Prompts the user to bookmark their current location. The user can specify the name of the bookmark in the dialog that is
* opened.
* @function LocationBookmarks.addBookmark
*/
void addBookmark();
/**jsdoc
/*@jsdoc
* Sets the metaverse address associated with the "Home" bookmark.
* @function LocationBookmarks.setHomeLocationToAddress
* @param {string} address - The metaverse address to set the "Home" bookmark to.
*/
void setHomeLocationToAddress(const QVariant& address);
/**jsdoc
/*@jsdoc
* Gets the metaverse address associated with the "Home" bookmark.
* @function LocationBookmarks.getHomeLocationAddress
* @returns {string} The metaverse address for the "Home" bookmark.

View file

@ -17,7 +17,7 @@
static const int VR_TARGET_RATE = 90;
/**jsdoc
/*@jsdoc
* <p>Refresh rate profile.</p>
* <table>
* <thead>
@ -36,7 +36,7 @@ static const int VR_TARGET_RATE = 90;
static const std::array<std::string, RefreshRateManager::RefreshRateProfile::PROFILE_NUM> REFRESH_RATE_PROFILE_TO_STRING =
{ { "Eco", "Interactive", "Realtime" } };
/**jsdoc
/*@jsdoc
* <p>Interface states that affect the refresh rate.</p>
* <table>
* <thead>
@ -56,7 +56,7 @@ static const std::array<std::string, RefreshRateManager::RefreshRateProfile::PRO
static const std::array<std::string, RefreshRateManager::RefreshRateRegime::REGIME_NUM> REFRESH_RATE_REGIME_TO_STRING =
{ { "FocusActive", "FocusInactive", "Unfocus", "Minimized", "StartUp", "ShutDown" } };
/**jsdoc
/*@jsdoc
* <p>User experience (UX) modes.</p>
* <table>
* <thead>

View file

@ -31,7 +31,7 @@ public:
};
static bool isValidRefreshRateProfile(RefreshRateProfile value) { return (value >= RefreshRateProfile::ECO && value <= RefreshRateProfile::REALTIME); }
/**jsdoc
/*@jsdoc
* <p>Interface states that affect the refresh rate.</p>
* <table>
* <thead>
@ -59,7 +59,7 @@ public:
};
static bool isValidRefreshRateRegime(RefreshRateRegime value) { return (value >= RefreshRateRegime::FOCUS_ACTIVE && value <= RefreshRateRegime::SHUTDOWN); }
/**jsdoc
/*@jsdoc
* <p>User experience (UX) modes.</p>
* <table>
* <thead>

View file

@ -22,7 +22,7 @@
#include <DependencyManager.h>
/**jsdoc
/*@jsdoc
* The <code>SpeechRecognizer</code> API provides facilities to recognize voice commands.
* <p>Speech recognition is enabled or disabled via the Developer &gt; Scripting &gt; Enable Speech Control API menu item or
* the {@link SpeechRecognizer.setEnabled} method.</p>
@ -43,21 +43,21 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Enables or disables speech recognition.
* @function SpeechRecognizer.setEnabled
* @param {boolean} enabled - <code>true</code> to enable speech recognition, <code>false</code> to disable.
*/
void setEnabled(bool enabled);
/**jsdoc
/*@jsdoc
* Adds a voice command to the speech recognizer.
* @function SpeechRecognizer.addCommand
* @param {string} command - The voice command to recognize.
*/
void addCommand(const QString& command);
/**jsdoc
/*@jsdoc
* Removes a voice command from the speech recognizer.
* @function SpeechRecognizer.removeCommand
* @param {string} command - The voice command to stop recognizing.
@ -66,7 +66,7 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when a voice command has been recognized.
* @function SpeechRecognizer.commandRecognized
* @param {string} command - The voice command recognized.
@ -115,7 +115,7 @@ signals:
*/
void commandRecognized(const QString& command);
/**jsdoc
/*@jsdoc
* Triggered when speech recognition is enabled or disabled.
* @function SpeechRecognizer.enabledUpdated
* @param {boolean} enabled - <code>true</code> if speech recognition is enabled, <code>false</code> if it is disabled.

View file

@ -25,7 +25,7 @@ class AudioScope : public QObject, public Dependency {
Q_OBJECT
SINGLETON_DEPENDENCY
/**jsdoc
/*@jsdoc
* The <code>AudioScope</code> API provides facilities for an audio scope.
*
* @namespace AudioScope
@ -60,67 +60,67 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Toggle.
* @function AudioScope.toggle
*/
void toggle() { setVisible(!_isEnabled); }
/**jsdoc
/*@jsdoc
* Set visible.
* @function AudioScope.setVisible
* @param {boolean} visible - Visible.
*/
void setVisible(bool visible);
/**jsdoc
/*@jsdoc
* Get visible.
* @function AudioScope.getVisible
* @returns {boolean} Visible.
*/
bool getVisible() const { return _isEnabled; }
/**jsdoc
/*@jsdoc
* Toggle pause.
* @function AudioScope.togglePause
*/
void togglePause() { setPause(!_isPaused); }
/**jsdoc
/*@jsdoc
* Set pause.
* @function AudioScope.setPause
* @param {boolean} pause - Pause.
*/
void setPause(bool paused) { _isPaused = paused; emit pauseChanged(); }
/**jsdoc
/*@jsdoc
* Get pause.
* @function AudioScope.getPause
* @returns {boolean} Pause.
*/
bool getPause() { return _isPaused; }
/**jsdoc
/*@jsdoc
* Toggle trigger.
* @function AudioScope.toggleTrigger
*/
void toggleTrigger() { _autoTrigger = !_autoTrigger; }
/**jsdoc
/*@jsdoc
* Get auto trigger.
* @function AudioScope.getAutoTrigger
* @returns {boolean} Auto trigger.
*/
bool getAutoTrigger() { return _autoTrigger; }
/**jsdoc
/*@jsdoc
* Set auto trigger.
* @function AudioScope.setAutoTrigger
* @param {boolean} autoTrigger - Auto trigger.
*/
void setAutoTrigger(bool autoTrigger) { _isTriggered = false; _autoTrigger = autoTrigger; }
/**jsdoc
/*@jsdoc
* Set trigger values.
* @function AudioScope.setTriggerValues
* @param {number} x - X.
@ -128,102 +128,102 @@ public slots:
*/
void setTriggerValues(int x, int y) { _triggerValues.x = x; _triggerValues.y = y; }
/**jsdoc
/*@jsdoc
* Set triggered.
* @function AudioScope.setTriggered
* @param {boolean} triggered - Triggered.
*/
void setTriggered(bool triggered) { _isTriggered = triggered; }
/**jsdoc
/*@jsdoc
* Get triggered.
* @function AudioScope.getTriggered
* @returns {boolean} Triggered.
*/
bool getTriggered() { return _isTriggered; }
/**jsdoc
/*@jsdoc
* Get frames per second.
* @function AudioScope.getFramesPerSecond
* @returns {number} Frames per second.
*/
float getFramesPerSecond();
/**jsdoc
/*@jsdoc
* Get frames per scope.
* @function AudioScope.getFramesPerScope
* @returns {number} Frames per scope.
*/
int getFramesPerScope() { return _framesPerScope; }
/**jsdoc
/*@jsdoc
* Select five frames audio scope.
* @function AudioScope.selectAudioScopeFiveFrames
*/
void selectAudioScopeFiveFrames();
/**jsdoc
/*@jsdoc
* Select twenty frames audio scope.
* @function AudioScope.selectAudioScopeTwentyFrames
*/
void selectAudioScopeTwentyFrames();
/**jsdoc
/*@jsdoc
* Select fifty frames audio scope.
* @function AudioScope.selectAudioScopeFiftyFrames
*/
void selectAudioScopeFiftyFrames();
/**jsdoc
/*@jsdoc
* Get scope input.
* @function AudioScope.getScopeInput
* @returns {number[]} Scope input.
*/
QVector<int> getScopeInput() { return _scopeInputData; };
/**jsdoc
/*@jsdoc
* Get scope left output.
* @function AudioScope.getScopeOutputLeft
* @returns {number[]} Scope left output.
*/
QVector<int> getScopeOutputLeft() { return _scopeOutputLeftData; };
/**jsdoc
/*@jsdoc
* Get scope right output.
* @function AudioScope.getScopeOutputRight
* @returns {number[]} Scope right output.
*/
QVector<int> getScopeOutputRight() { return _scopeOutputRightData; };
/**jsdoc
/*@jsdoc
* Get trigger input.
* @function AudioScope.getTriggerInput
* @returns {number[]} Trigger input.
*/
QVector<int> getTriggerInput() { return _triggerInputData; };
/**jsdoc
/*@jsdoc
* Get left trigger output.
* @function AudioScope.getTriggerOutputLeft
* @returns {number[]} Left trigger output.
*/
QVector<int> getTriggerOutputLeft() { return _triggerOutputLeftData; };
/**jsdoc
/*@jsdoc
* Get right trigger output.
* @function AudioScope.getTriggerOutputRight
* @returns {number[]} Right trigger output.
*/
QVector<int> getTriggerOutputRight() { return _triggerOutputRightData; };
/**jsdoc
/*@jsdoc
* Set local echo.
* @function AudioScope.setLocalEcho
* @parm {boolean} localEcho - Local echo.
*/
void setLocalEcho(bool localEcho);
/**jsdoc
/*@jsdoc
* Set server echo.
* @function AudioScope.setServerEcho
* @parm {boolean} serverEcho - Server echo.
@ -232,14 +232,14 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when pause changes.
* @function AudioScope.pauseChanged
* @returns {Signal}
*/
void pauseChanged();
/**jsdoc
/*@jsdoc
* Triggered when scope is triggered.
* @function AudioScope.triggered
* @returns {Signal}

View file

@ -15,7 +15,7 @@
#include <EntityItem.h>
#include <ObjectActionTractor.h>
/**jsdoc
/*@jsdoc
* The <code>"far-grab"</code> {@link Entities.ActionType|ActionType} moves and rotates an entity to a target position and
* orientation, optionally relative to another entity. Collisions between the entity and the user's avatar are disabled during
* the far-grab.

View file

@ -444,7 +444,7 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) {
return true;
}
/**jsdoc
/*@jsdoc
* The <code>"hold"</code> {@link Entities.ActionType|ActionType} positions and rotates an entity relative to an avatar's hand.
* Collisions between the entity and the user's avatar are disabled during the hold.
* It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}:

View file

@ -1008,7 +1008,7 @@ void AvatarManager::setAvatarSortCoefficient(const QString& name, const QScriptV
}
}
/**jsdoc
/*@jsdoc
* PAL (People Access List) data for an avatar.
* @typedef {object} AvatarManager.PalData
* @property {Uuid} sessionUUID - The avatar's session ID. <code>""</code> if the avatar is your own.

View file

@ -36,7 +36,7 @@
using SortedAvatar = std::pair<float, std::shared_ptr<Avatar>>;
/**jsdoc
/*@jsdoc
* The <code>AvatarManager</code> API provides information about avatars within the current domain. The avatars available are
* those that Interface has displayed and therefore knows about.
*
@ -69,7 +69,7 @@ class AvatarManager : public AvatarHashMap {
public:
/**jsdoc
/*@jsdoc
* Gets the IDs of all avatars known about in the domain.
* Your own avatar is included in the list as a <code>null</code> value.
* @function AvatarManager.getAvatarIdentifiers
@ -80,7 +80,7 @@ public:
* // A null item is included for your avatar.
*/
/**jsdoc
/*@jsdoc
* Gets the IDs of all avatars known about within a specified distance from a point.
* Your own avatar's ID is included in the list if it is in range.
* @function AvatarManager.getAvatarsInRange
@ -105,7 +105,7 @@ public:
std::shared_ptr<MyAvatar> getMyAvatar() { return _myAvatar; }
glm::vec3 getMyAvatarPosition() const { return _myAvatar->getWorldPosition(); }
/**jsdoc
/*@jsdoc
* @comment Uses the base class's JSDoc.
*/
// Null/Default-constructed QUuids will return MyAvatar
@ -136,7 +136,7 @@ public:
void handleChangedMotionStates(const VectorOfMotionStates& motionStates);
void handleCollisionEvents(const CollisionEvents& collisionEvents);
/**jsdoc
/*@jsdoc
* Gets the amount of avatar mixer data being generated by an avatar other than your own.
* @function AvatarManager.getAvatarDataRate
* @param {Uuid} sessionID - The ID of the avatar whose data rate you're retrieving.
@ -145,7 +145,7 @@ public:
*/
Q_INVOKABLE float getAvatarDataRate(const QUuid& sessionID, const QString& rateName = QString("")) const;
/**jsdoc
/*@jsdoc
* Gets the update rate of avatar mixer data being generated by an avatar other than your own.
* @function AvatarManager.getAvatarUpdateRate
* @param {Uuid} sessionID - The ID of the avatar whose update rate you're retrieving.
@ -154,7 +154,7 @@ public:
*/
Q_INVOKABLE float getAvatarUpdateRate(const QUuid& sessionID, const QString& rateName = QString("")) const;
/**jsdoc
/*@jsdoc
* Gets the simulation rate of an avatar other than your own.
* @function AvatarManager.getAvatarSimulationRate
* @param {Uuid} sessionID - The ID of the avatar whose simulation you're retrieving.
@ -163,7 +163,7 @@ public:
*/
Q_INVOKABLE float getAvatarSimulationRate(const QUuid& sessionID, const QString& rateName = QString("")) const;
/**jsdoc
/*@jsdoc
* Find the first avatar intersected by a {@link PickRay}.
* @function AvatarManager.findRayIntersection
* @param {PickRay} ray - The ray to use for finding avatars.
@ -189,7 +189,7 @@ public:
const QScriptValue& avatarIdsToInclude = QScriptValue(),
const QScriptValue& avatarIdsToDiscard = QScriptValue(),
bool pickAgainstMesh = true);
/**jsdoc
/*@jsdoc
* @function AvatarManager.findRayIntersectionVector
* @param {PickRay} ray - Ray.
* @param {Uuid[]} avatarsToInclude - Avatars to include.
@ -203,7 +203,7 @@ public:
const QVector<EntityItemID>& avatarsToDiscard,
bool pickAgainstMesh);
/**jsdoc
/*@jsdoc
* @function AvatarManager.findParabolaIntersectionVector
* @param {PickParabola} pick - Pick.
* @param {Uuid[]} avatarsToInclude - Avatars to include.
@ -215,7 +215,7 @@ public:
const QVector<EntityItemID>& avatarsToInclude,
const QVector<EntityItemID>& avatarsToDiscard);
/**jsdoc
/*@jsdoc
* @function AvatarManager.getAvatarSortCoefficient
* @param {string} name - Name.
* @returns {number} Value.
@ -224,7 +224,7 @@ public:
// TODO: remove this HACK once we settle on optimal default sort coefficients
Q_INVOKABLE float getAvatarSortCoefficient(const QString& name);
/**jsdoc
/*@jsdoc
* @function AvatarManager.setAvatarSortCoefficient
* @param {string} name - Name
* @param {number} value - Value.
@ -232,7 +232,7 @@ public:
*/
Q_INVOKABLE void setAvatarSortCoefficient(const QString& name, const QScriptValue& value);
/**jsdoc
/*@jsdoc
* Gets PAL (People Access List) data for one or more avatars. Using this method is faster than iterating over each avatar
* and obtaining data about each individually.
* @function AvatarManager.getPalData
@ -255,14 +255,14 @@ public:
void accumulateGrabPositions(std::map<QUuid, GrabLocationAccumulator>& grabAccumulators);
public slots:
/**jsdoc
/*@jsdoc
* @function AvatarManager.updateAvatarRenderStatus
* @param {boolean} shouldRenderAvatars - Should render avatars.
* @deprecated This function is deprecated and will be removed.
*/
void updateAvatarRenderStatus(bool shouldRenderAvatars);
/**jsdoc
/*@jsdoc
* Displays other avatars skeletons debug graphics.
* @function AvatarManager.setEnableDebugDrawOtherSkeletons
* @param {boolean} enabled - <code>true</code> to show the debug graphics, <code>false</code> to hide.

View file

@ -2622,7 +2622,7 @@ void MyAvatar::clearWornAvatarEntities() {
}
}
/**jsdoc
/*@jsdoc
* <p>Information about an avatar entity.</p>
* <table>
* <thead>
@ -4300,7 +4300,7 @@ void MyAvatar::clearScaleRestriction() {
_haveReceivedHeightLimitsFromDomain = false;
}
/**jsdoc
/*@jsdoc
* A teleport target.
* @typedef {object} MyAvatar.GoToProperties
* @property {Vec3} position - The avatar's new position.
@ -4795,7 +4795,7 @@ void MyAvatar::setCollisionWithOtherAvatarsFlags() {
_characterController.setPendingFlagsUpdateCollisionMask();
}
/**jsdoc
/*@jsdoc
* A collision capsule is a cylinder with hemispherical ends. It is often used to approximate the extents of an avatar.
* @typedef {object} MyAvatar.CollisionCapsule
* @property {Vec3} start - The bottom end of the cylinder, excluding the bottom hemisphere.
@ -6608,7 +6608,7 @@ void MyAvatar::addAvatarHandsToFlow(const std::shared_ptr<Avatar>& otherAvatar)
}
}
/**jsdoc
/*@jsdoc
* Physics options to use in the flow simulation of a joint.
* @typedef {object} MyAvatar.FlowPhysicsOptions
* @property {boolean} [active=true] - <code>true</code> to enable flow on the joint, otherwise <code>false</code>.
@ -6619,7 +6619,7 @@ void MyAvatar::addAvatarHandsToFlow(const std::shared_ptr<Avatar>& otherAvatar)
* @property {number} [stiffness=0.0] - The stiffness of each thread.
* @property {number} [delta=0.55] - Delta time for every integration step.
*/
/**jsdoc
/*@jsdoc
* Collision options to use in the flow simulation of a joint.
* @typedef {object} MyAvatar.FlowCollisionsOptions
* @property {string} [type="sphere"] - Currently, only <code>"sphere"</code> is supported.
@ -6694,7 +6694,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys
}
}
/**jsdoc
/*@jsdoc
* Flow options currently used in flow simulation.
* @typedef {object} MyAvatar.FlowData
* @property {boolean} initialized - <code>true</code> if flow has been initialized for the current avatar, <code>false</code>
@ -6708,7 +6708,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys
* @property {Object<ThreadName, number[]>} threads - The threads that have been configured, with the first joint's name as the
* <code>ThreadName</code> and value as an array of the indexes of all the joints in the thread.
*/
/**jsdoc
/*@jsdoc
* A set of physics options currently used in flow simulation.
* @typedef {object} MyAvatar.FlowPhysicsData
* @property {boolean} active - <code>true</code> to enable flow on the joint, otherwise <code>false</code>.
@ -6720,7 +6720,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys
* @property {number} delta - Delta time for every integration step.
* @property {number[]} jointIndices - The indexes of the joints the options are applied to.
*/
/**jsdoc
/*@jsdoc
* A set of collision options currently used in flow simulation.
* @typedef {object} MyAvatar.FlowCollisionsData
* @property {number} radius - Collision sphere radius.

File diff suppressed because it is too large Load diff

View file

@ -55,7 +55,7 @@ public:
void getWalletStatus();
/**jsdoc
/*@jsdoc
* <p>A <code>WalletStatus</code> may have one of the following values:</p>
* <table>
* <thead>

View file

@ -57,7 +57,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v
}
}
/**jsdoc
/*@jsdoc
* An intersection result for a collision pick.
*
* @typedef {object} CollisionPickResult
@ -66,7 +66,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v
* @property {CollisionRegion} collisionRegion - The collision region that was used. Valid even if there was no intersection.
*/
/**jsdoc
/*@jsdoc
* Information about a {@link CollisionPick}'s intersection with an object.
*
* @typedef {object} IntersectingObject
@ -76,7 +76,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v
* @property {CollisionContact[]} collisionContacts - Information on the penetration between the pick and the object.
*/
/**jsdoc
/*@jsdoc
* A pair of points that represents part of an overlap between a {@link CollisionPick} and an object in the physics engine.
* Points which are further apart represent deeper overlap.
*

View file

@ -20,7 +20,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency {
Q_OBJECT
SINGLETON_DEPENDENCY
/**jsdoc
/*@jsdoc
* The <code>LaserPointers</code> API is a subset of the {@link Pointers} API. It lets you create, manage, and visually
* represent objects for repeatedly calculating ray intersections with avatars, entities, and overlays. Ray pointers can also
* be configured to generate events on entities and overlays intersected.
@ -40,7 +40,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency {
*/
public:
/**jsdoc
/*@jsdoc
* Creates a new ray pointer. The pointer can have a wide range of behaviors depending on the properties specified. For
* example, it may be a static ray pointer, a mouse ray pointer, or joint ray pointer.
* <p><strong>Warning:</strong> Pointers created using this method currently always intersect at least visible and
@ -61,7 +61,7 @@ public:
// jsdoc @borrows from Pointers
Q_INVOKABLE void removeLaserPointer(unsigned int uid) const { DependencyManager::get<PointerManager>()->removePointer(uid); }
/**jsdoc
/*@jsdoc
* Edits a render state of a pointer, to change its visual appearance for the state when the pointer is intersecting
* something.
* <p><strong>Note:</strong> You can only edit the properties of the existing parts of the pointer; you cannot change the
@ -75,7 +75,7 @@ public:
*/
Q_INVOKABLE void editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const;
/**jsdoc
/*@jsdoc
* Sets the render state of a pointer, to change its visual appearance and possibly disable or enable it.
* @function LaserPointers.setRenderState
* @param {string} renderState - <p>The name of the render state to set the pointer to. This may be:</p>
@ -87,7 +87,7 @@ public:
*/
Q_INVOKABLE void setRenderState(unsigned int uid, const QString& renderState) const { DependencyManager::get<PointerManager>()->setRenderState(uid, renderState.toStdString()); }
/**jsdoc
/*@jsdoc
* Gets the most recent intersection of a pointer. A pointer continues to be updated ready to return a result, as long as
* it is enabled, regardless of the render state.
* @function LaserPointers.getPrevRayPickResult
@ -99,7 +99,7 @@ public:
// jsdoc @borrows from Pointers
Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking) const { DependencyManager::get<PointerManager>()->setPrecisionPicking(uid, precisionPicking); }
/**jsdoc
/*@jsdoc
* Sets the length of a pointer.
* @function LaserPointers.setLaserLength
* @param {number} id - The ID of the pointer.
@ -107,7 +107,7 @@ public:
*/
Q_INVOKABLE void setLaserLength(unsigned int uid, float laserLength) const { DependencyManager::get<PointerManager>()->setLength(uid, laserLength); }
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pointer should ignore during intersection.
* @function LaserPointers.setIgnoreItems
* @param {number} id - The ID of the pointer.
@ -115,7 +115,7 @@ public:
*/
Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreEntities) const;
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pointer should include during intersection, instead of intersecting with
* everything.
* @function LaserPointers.setIncludeItems
@ -125,7 +125,7 @@ public:
Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeEntities) const;
/**jsdoc
/*@jsdoc
* Locks a pointer onto a specific entity or avatar.
* @function LaserPointers.setLockEndUUID
* @param {number} id - The ID of the pointer.
@ -137,7 +137,7 @@ public:
Q_INVOKABLE void setLockEndUUID(unsigned int uid, const QUuid& objectID, bool isAvatar, const glm::mat4& offsetMat = glm::mat4()) const { DependencyManager::get<PointerManager>()->setLockEndUUID(uid, objectID, isAvatar, offsetMat); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the left hand: a pointer with <code>joint</code> property set to
* <code>"_CONTROLLER_LEFTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"</code>.
* @function LaserPointers.isLeftHand
@ -146,7 +146,7 @@ public:
*/
Q_INVOKABLE bool isLeftHand(unsigned int uid) { return DependencyManager::get<PointerManager>()->isLeftHand(uid); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the right hand: a pointer with <code>joint</code> property set to
* <code>"_CONTROLLER_RIGHTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"</code>.
* @function LaserPointers.isRightHand
@ -155,7 +155,7 @@ public:
*/
Q_INVOKABLE bool isRightHand(unsigned int uid) { return DependencyManager::get<PointerManager>()->isRightHand(uid); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the system mouse: a pointer with <code>joint</code> property set to
* <code>"Mouse"</code>.
* @function LaserPointers.isMouse

View file

@ -42,7 +42,7 @@ public:
float parabolicDistance { FLT_MAX };
bool intersects { false };
/**jsdoc
/*@jsdoc
* An intersection result for a parabola pick.
*
* @typedef {object} ParabolaPickResult

View file

@ -71,7 +71,7 @@ PickFilter getPickFilter(unsigned int filter) {
return PickFilter(filter);
}
/**jsdoc
/*@jsdoc
* The properties of a ray pick.
*
* @typedef {object} Picks.RayPickProperties
@ -157,7 +157,7 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildRayPick(const QVariantMa
return rayPick;
}
/**jsdoc
/*@jsdoc
* The properties of a stylus pick.
*
* @typedef {object} Picks.StylusPickProperties
@ -209,7 +209,7 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildStylusPick(const QVarian
// NOTE: Laser pointer still uses scaleWithAvatar. Until scaleWithAvatar is also deprecated for pointers, scaleWithAvatar
// should not be removed from the pick API.
/**jsdoc
/*@jsdoc
* The properties of a parabola pick.
*
* @typedef {object} Picks.ParabolaPickProperties
@ -320,7 +320,7 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildParabolaPick(const QVari
}
/**jsdoc
/*@jsdoc
* The properties of a collision pick.
*
* @typedef {object} Picks.CollisionPickProperties

View file

@ -15,7 +15,7 @@
#include <Pick.h>
#include <PickFilter.h>
/**jsdoc
/*@jsdoc
* The <code>Picks</code> API lets you create and manage objects for repeatedly calculating intersections.
*
* @namespace Picks
@ -105,7 +105,7 @@ class PickScriptingInterface : public QObject, public Dependency {
public:
void registerMetaTypes(QScriptEngine* engine);
/**jsdoc
/*@jsdoc
* Creates a new pick. Different {@link PickType}s use different properties, and within one PickType the properties you
* choose can lead to a wide range of behaviors. For example, with <code>PickType.Ray</code>, the properties could
* configure a mouse ray pick, an avatar head ray pick, or a joint ray pick.
@ -120,21 +120,21 @@ public:
// TODO: expand Pointers to be able to be fully configurable with PickFilters
Q_INVOKABLE unsigned int createPick(const PickQuery::PickType type, const QVariant& properties);
/**jsdoc
/*@jsdoc
* Enables a pick. Enabled picks update their pick results.
* @function Picks.enablePick
* @param {number} id - The ID of the pick.
*/
Q_INVOKABLE void enablePick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Disables a pick. Disabled picks do not update their pick results.
* @function Picks.disablePick
* @param {number} id - The ID of the pick.
*/
Q_INVOKABLE void disablePick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Get the enabled status of a pick. Enabled picks update their pick results.
* @function Picks.isPickEnabled
* @param {number} id - The ID of the pick.
@ -142,14 +142,14 @@ public:
*/
Q_INVOKABLE bool isPickEnabled(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Removes (deletes) a pick.
* @function Picks.removePick
* @param {number} id - The ID of the pick.
*/
Q_INVOKABLE void removePick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Gets the current properties of the pick.
* @function Picks.getPickProperties
* @param {number} id - The ID of the pick.
@ -158,7 +158,7 @@ public:
*/
Q_INVOKABLE QVariantMap getPickProperties(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Gets the parameters that were passed in to {@link Picks.createPick} to create the pick, if the pick was created through
* a script. Note that these properties do not reflect the current state of the pick.
* See {@link Picks.getPickProperties}.
@ -169,14 +169,14 @@ public:
*/
Q_INVOKABLE QVariantMap getPickScriptParameters(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Gets all picks which currently exist, including disabled picks.
* @function Picks.getPicks
* @returns {number[]} picks - The IDs of the picks.
*/
Q_INVOKABLE QVector<unsigned int> getPicks() const;
/**jsdoc
/*@jsdoc
* Gets the most recent result from a pick. A pick continues to be updated ready to return a result, as long as it is
* enabled.
* <p><strong>Note:</strong> Stylus picks only intersect with objects in their include list, set using
@ -228,7 +228,7 @@ public:
*/
Q_INVOKABLE QVariantMap getPrevPickResult(unsigned int uid);
/**jsdoc
/*@jsdoc
* Sets whether or not a pick should use precision picking, i.e., whether it should pick against precise meshes or coarse
* meshes.
* This has the same effect as using the <code>PICK_PRECISE</code> or <code>PICK_COARSE</code> filter flags.
@ -238,7 +238,7 @@ public:
*/
Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking);
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pick should ignore during intersection.
* <p><strong>Note:</strong> Not used by stylus picks.</p>
* @function Picks.setIgnoreItems
@ -247,7 +247,7 @@ public:
*/
Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreItems);
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pick should include during intersection, instead of intersecting with
* everything.
* <p><strong>Note:</strong> Stylus picks only intersect with items in their include list.</p>
@ -257,7 +257,7 @@ public:
*/
Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeItems);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the left hand: a ray or parabola pick with <code>joint</code> property set to
* <code>"_CONTROLLER_LEFTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"</code>, or a stylus pick with
* <code>hand</code> property set to <code>0</code>.
@ -267,7 +267,7 @@ public:
*/
Q_INVOKABLE bool isLeftHand(unsigned int uid);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the right hand: a ray or parabola pick with <code>joint</code> property set to
* <code>"_CONTROLLER_RIGHTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"</code>, or a stylus pick with
* <code>hand</code> property set to <code>1</code>.
@ -277,7 +277,7 @@ public:
*/
Q_INVOKABLE bool isRightHand(unsigned int uid);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the system mouse: a ray or parabola pick with <code>joint</code> property set to
* <code>"Mouse"</code>.
* @function Picks.isMouse
@ -293,7 +293,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* @function Picks.PICK_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_DOMAIN_ENTITIES |
* Picks.PICK_AVATAR_ENTITIES</code> properties expression instead.
@ -301,7 +301,7 @@ public slots:
*/
static constexpr unsigned int PICK_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_OVERLAYS
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_LOCAL_ENTITIES</code> property
* instead.
@ -310,7 +310,7 @@ public slots:
static constexpr unsigned int PICK_OVERLAYS() { return PickFilter::getBitMask(PickFilter::FlagBit::LOCAL_ENTITIES); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_DOMAIN_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_DOMAIN_ENTITIES</code> property
* instead.
@ -318,7 +318,7 @@ public slots:
*/
static constexpr unsigned int PICK_DOMAIN_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_AVATAR_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_AVATAR_ENTITIES</code> property
* instead.
@ -326,7 +326,7 @@ public slots:
*/
static constexpr unsigned int PICK_AVATAR_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_LOCAL_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_LOCAL_ENTITIES</code> property
* instead.
@ -334,7 +334,7 @@ public slots:
*/
static constexpr unsigned int PICK_LOCAL_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::LOCAL_ENTITIES); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_AVATARS
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_AVATARS</code> property
* instead.
@ -342,7 +342,7 @@ public slots:
*/
static constexpr unsigned int PICK_AVATARS() { return PickFilter::getBitMask(PickFilter::FlagBit::AVATARS); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_HUD
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_HUD</code> property instead.
* @returns {number}
@ -350,7 +350,7 @@ public slots:
static constexpr unsigned int PICK_HUD() { return PickFilter::getBitMask(PickFilter::FlagBit::HUD); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_INCLUDE_VISIBLE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_INCLUDE_VISIBLE</code> property
* instead.
@ -358,7 +358,7 @@ public slots:
*/
static constexpr unsigned int PICK_INCLUDE_VISIBLE() { return PickFilter::getBitMask(PickFilter::FlagBit::VISIBLE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_INCLUDE_INVISIBLE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_INCLUDE_INVISIBLE</code> property
* instead.
@ -367,7 +367,7 @@ public slots:
static constexpr unsigned int PICK_INCLUDE_INVISIBLE() { return PickFilter::getBitMask(PickFilter::FlagBit::INVISIBLE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_INCLUDE_COLLIDABLE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_INCLUDE_COLLIDABLE</code> property
* instead.
@ -375,7 +375,7 @@ public slots:
*/
static constexpr unsigned int PICK_INCLUDE_COLLIDABLE() { return PickFilter::getBitMask(PickFilter::FlagBit::COLLIDABLE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_INCLUDE_NONCOLLIDABLE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_INCLUDE_NONCOLLIDABLE</code>
* property instead.
@ -384,14 +384,14 @@ public slots:
static constexpr unsigned int PICK_INCLUDE_NONCOLLIDABLE() { return PickFilter::getBitMask(PickFilter::FlagBit::NONCOLLIDABLE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_PRECISE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_PRECISE</code> property instead.
* @returns {number}
*/
static constexpr unsigned int PICK_PRECISE() { return PickFilter::getBitMask(PickFilter::FlagBit::PRECISE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_COARSE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_COARSE</code> property instead.
* @returns {number}
@ -399,7 +399,7 @@ public slots:
static constexpr unsigned int PICK_COARSE() { return PickFilter::getBitMask(PickFilter::FlagBit::COARSE); }
/**jsdoc
/*@jsdoc
* @function Picks.PICK_ALL_INTERSECTIONS
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_ALL_INTERSECTIONS</code> property
* instead.
@ -407,7 +407,7 @@ public slots:
*/
static constexpr unsigned int PICK_ALL_INTERSECTIONS() { return PickFilter::getBitMask(PickFilter::FlagBit::PICK_ALL_INTERSECTIONS); }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_NONE
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_NONE</code> property
* instead.
@ -415,7 +415,7 @@ public slots:
*/
static constexpr unsigned int INTERSECTED_NONE() { return IntersectionType::NONE; }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_ENTITY
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_ENTITY</code> property
* instead.
@ -423,7 +423,7 @@ public slots:
*/
static constexpr unsigned int INTERSECTED_ENTITY() { return IntersectionType::ENTITY; }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_LOCAL_ENTITY
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_LOCAL_ENTITY</code>
* property instead.
@ -431,7 +431,7 @@ public slots:
*/
static constexpr unsigned int INTERSECTED_LOCAL_ENTITY() { return IntersectionType::LOCAL_ENTITY; }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_OVERLAY
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_LOCAL_ENTITY</code>
* property instead.
@ -439,7 +439,7 @@ public slots:
*/
static constexpr unsigned int INTERSECTED_OVERLAY() { return INTERSECTED_LOCAL_ENTITY(); }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_AVATAR
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_AVATAR</code> property
* instead.
@ -447,7 +447,7 @@ public slots:
*/
static constexpr unsigned int INTERSECTED_AVATAR() { return IntersectionType::AVATAR; }
/**jsdoc
/*@jsdoc
* @function Picks.INTERSECTED_HUD
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.INTERSECTED_HUD</code> property
* instead.

View file

@ -83,7 +83,7 @@ QVariantMap PointerScriptingInterface::getPointerScriptParameters(unsigned int u
return DependencyManager::get<PointerManager>()->getPointerScriptParameters(uid);
}
/**jsdoc
/*@jsdoc
* The properties of a stylus pointer. These include the properties from the underlying stylus pick that the pointer uses.
* @typedef {object} Pointers.StylusPointerProperties
* @property {Pointers.StylusPointerModel} [model] - Override some or all of the default stylus model properties.
@ -96,7 +96,7 @@ QVariantMap PointerScriptingInterface::getPointerScriptParameters(unsigned int u
* @see {@link Picks.StylusPickProperties} for additional properties from the underlying stylus pick.
*/
/**jsdoc
/*@jsdoc
* The properties of a stylus pointer model.
* @typedef {object} Pointers.StylusPointerModel
* @property {string} [url] - The url of a model to use for the stylus, to override the default stylus mode.
@ -141,14 +141,14 @@ std::shared_ptr<Pointer> PointerScriptingInterface::buildStylus(const QVariant&
return std::make_shared<StylusPointer>(properties, StylusPointer::buildStylus(propertyMap), hover, enabled, modelPositionOffset, modelRotationOffset, modelDimensions);
}
/**jsdoc
/*@jsdoc
* Properties that define the visual appearance of a ray pointer when the pointer is not intersecting something. These are the
* properties of {@link Pointers.RayPointerRenderState} but with an additional property.
* @typedef {object} Pointers.DefaultRayPointerRenderState
* @property {number} distance - The distance at which to render the end of the ray pointer.
* @see {@link Pointers.RayPointerRenderState} for the remainder of the properties.
*/
/**jsdoc
/*@jsdoc
* Properties that define the visual appearance of a ray pointer when the pointer is intersecting something.
* @typedef {object} Pointers.RayPointerRenderState
* @property {string} name - When creating using {@link Pointers.createPointer}, the name of the render state.
@ -171,7 +171,7 @@ std::shared_ptr<Pointer> PointerScriptingInterface::buildStylus(const QVariant&
* <p>When getting using {@link Pointers.getPointerProperties}, the ID of the overlay rendered at the end of the ray;
* <code>null</code> if there is no overlay.
*/
/**jsdoc
/*@jsdoc
* The properties of a ray pointer. These include the properties from the underlying ray pick that the pointer uses.
* @typedef {object} Pointers.RayPointerProperties
* @property {boolean} [faceAvatar=false] - <code>true</code> if the overlay rendered at the end of the ray rotates about the
@ -329,7 +329,7 @@ std::shared_ptr<Pointer> PointerScriptingInterface::buildLaserPointer(const QVar
distanceScaleEnd, scaleWithParent, enabled);
}
/**jsdoc
/*@jsdoc
* The visual appearance of the parabolic path.
* @typedef {object} Pointers.ParabolaPointerPath
* @property {Color} [color=255,255,255] - The color of the parabola.
@ -340,14 +340,14 @@ std::shared_ptr<Pointer> PointerScriptingInterface::buildLaserPointer(const QVar
* @property {boolean} [drawInFront=false] - <code>true</code> if the parabola is rendered in front of objects in the world,
* but behind the HUD, <code>false</code> if it is occluded by objects in front of it.
*/
/**jsdoc
/*@jsdoc
* Properties that define the visual appearance of a parabola pointer when the pointer is not intersecting something. These are
* properties of {@link Pointers.ParabolaPointerRenderState} but with an additional property.
* @typedef {object} Pointers.DefaultParabolaPointerRenderState
* @property {number} distance - The distance along the parabola at which to render the end of the parabola pointer.
* @see {@link Pointers.ParabolaPointerRenderState} for the remainder of the properties.
*/
/**jsdoc
/*@jsdoc
* Properties that define the visual appearance of a parabola pointer when the pointer is intersecting something.
* @typedef {object} Pointers.ParabolaPointerRenderState
* @property {string} name - When creating using {@link Pointers.createPointer}, the name of the render state.
@ -366,7 +366,7 @@ std::shared_ptr<Pointer> PointerScriptingInterface::buildLaserPointer(const QVar
* <p>When getting using {@link Pointers.getPointerProperties}, the ID of the overlay rendered at the end of the parabola;
* <code>null</code> if there is no overlay.
*/
/**jsdoc
/*@jsdoc
* The properties of a parabola pointer. These include the properties from the underlying parabola pick that the pointer uses.
* @typedef {object} Pointers.ParabolaPointerProperties
* @property {boolean} [faceAvatar=false] - <code>true</code> if the overlay rendered at the end of the ray rotates about the

View file

@ -15,7 +15,7 @@
#include <PointerManager.h>
#include <Pick.h>
/**jsdoc
/*@jsdoc
* The <code>Pointers</code> API lets you create, manage, and visually represent objects for repeatedly calculating
* intersections with avatars, entities, and overlays. Pointers can also be configured to generate events on entities and
* overlays intersected.
@ -33,7 +33,7 @@ class PointerScriptingInterface : public QObject, public Dependency {
public:
/**jsdoc
/*@jsdoc
* Specifies that a {@link Controller} action or function should trigger events on the entity or overlay currently
* intersected by a {@link Pointers.RayPointerProperties|Ray} or {@link Pointers.ParabolaPointerProperties|Parabola}
* pointer.
@ -50,7 +50,7 @@ public:
* </ul>
*/
/**jsdoc
/*@jsdoc
* Creates a new ray, parabola, or stylus pointer. The pointer can have a wide range of behaviors depending on the
* properties specified. For example, a ray pointer may be a static ray pointer, a mouse ray pointer, or joint ray
* pointer.
@ -131,21 +131,21 @@ public:
// TODO: expand Pointers to be able to be fully configurable with PickFilters
Q_INVOKABLE unsigned int createPointer(const PickQuery::PickType& type, const QVariant& properties);
/**jsdoc
/*@jsdoc
* Enables and shows a pointer. Enabled pointers update their pick results and generate events.
* @function Pointers.enablePointer
* @param {number} id - The ID of the pointer.
*/
Q_INVOKABLE void enablePointer(unsigned int uid) const { DependencyManager::get<PointerManager>()->enablePointer(uid); }
/**jsdoc
/*@jsdoc
* Disables and hides a pointer. Disabled pointers do not update their pick results or generate events.
* @function Pointers.disablePointer
* @param {number} id - The ID of the pointer.
*/
Q_INVOKABLE void disablePointer(unsigned int uid) const { DependencyManager::get<PointerManager>()->disablePointer(uid); }
/**jsdoc
/*@jsdoc
* Gets the enabled status of a pointer. Enabled pointers update their pick results and generate events.
* @function Pointers.isPointerEnabled
* @param {number} id - The ID of the pointer.
@ -153,14 +153,14 @@ public:
*/
Q_INVOKABLE bool isPointerEnabled(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Removes (deletes) a pointer.
* @function Pointers.removePointer
* @param {number} id - The ID of the pointer.
*/
Q_INVOKABLE void removePointer(unsigned int uid) const { DependencyManager::get<PointerManager>()->removePointer(uid); }
/**jsdoc
/*@jsdoc
* Gets the parameters that were passed in to {@link Pointers.createPointer} to create the pointer when the pointer was
* created through a script.
* <p><strong>Note:</strong> These properties do not reflect the current state of the pointer. To get the current state
@ -172,14 +172,14 @@ public:
*/
Q_INVOKABLE QVariantMap getPointerScriptParameters(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Gets all pointers which currently exist, including disabled pointers.
* @function Pointers.getPointers
* @returns {number[]} pointers - The IDs of the pointers.
*/
Q_INVOKABLE QVector<unsigned int> getPointers() const;
/**jsdoc
/*@jsdoc
* Edits a render state of a {@link Pointers.RayPointerProperties|ray} or
* {@link Pointers.ParabolaPointerProperties|parabola} pointer, to change its visual appearance for the state when the
* pointer is intersecting something.
@ -251,7 +251,7 @@ public:
*/
Q_INVOKABLE void editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const;
/**jsdoc
/*@jsdoc
* Sets the render state of a pointer, to change its visual appearance and possibly disable or enable it.
* @function Pointers.setRenderState
* @param {number} id - The ID of the pointer.
@ -330,7 +330,7 @@ public:
Q_INVOKABLE void setRenderState(unsigned int uid, const QString& renderState) const { DependencyManager::get<PointerManager>()->setRenderState(uid, renderState.toStdString()); }
/**jsdoc
/*@jsdoc
* Gets the most recent intersection of a pointer. A pointer continues to be updated ready to return a result, as long as
* it is enabled, regardless of the render state.
* @function Pointers.getPrevPickResult
@ -340,7 +340,7 @@ public:
Q_INVOKABLE QVariantMap getPrevPickResult(unsigned int uid) const;
/**jsdoc
/*@jsdoc
* Sets whether or not a pointer should use precision picking, i.e., whether it should pick against precise meshes or
* coarse meshes. This has the same effect as using the <code>PICK_PRECISE</code> or <code>PICK_COARSE</code> filter flags.
* @function Pointers.setPrecisionPicking
@ -349,7 +349,7 @@ public:
*/
Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking) const { DependencyManager::get<PointerManager>()->setPrecisionPicking(uid, precisionPicking); }
/**jsdoc
/*@jsdoc
* Sets the length of a pointer.
* <p><strong>Note:</strong> Not used by stylus pointers.</p>
* @function Pointers.setLength
@ -358,7 +358,7 @@ public:
*/
Q_INVOKABLE void setLength(unsigned int uid, float length) const { DependencyManager::get<PointerManager>()->setLength(uid, length); }
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pointer should ignore during intersection.
* <p><strong>Note:</strong> Not used by stylus pointers.</p>
* @function Pointers.setIgnoreItems
@ -367,7 +367,7 @@ public:
*/
Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreEntities) const;
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a pointer should include during intersection, instead of intersecting with
* everything.
* <p><strong>Note:</strong> Stylus pointers only intersect with items in their include list.</p>
@ -378,7 +378,7 @@ public:
Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeEntities) const;
/**jsdoc
/*@jsdoc
* Locks a pointer onto a specific entity or avatar.
* <p><strong>Note:</strong> Not used by stylus pointers.</p>
* @function Pointers.setLockEndUUID
@ -391,7 +391,7 @@ public:
Q_INVOKABLE void setLockEndUUID(unsigned int uid, const QUuid& objectID, bool isAvatar, const glm::mat4& offsetMat = glm::mat4()) const { DependencyManager::get<PointerManager>()->setLockEndUUID(uid, objectID, isAvatar, offsetMat); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the left hand: a ray or parabola pointer with <code>joint</code> property set to
* <code>"_CONTROLLER_LEFTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"</code>, or a stylus pointer with
* <code>hand</code> property set to <code>0</code>.
@ -401,7 +401,7 @@ public:
*/
Q_INVOKABLE bool isLeftHand(unsigned int uid) { return DependencyManager::get<PointerManager>()->isLeftHand(uid); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the right hand: a ray or parabola pointer with <code>joint</code> property set to
* <code>"_CONTROLLER_RIGHTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"</code>, or a stylus pointer with
* <code>hand</code> property set to <code>1</code>.
@ -411,7 +411,7 @@ public:
*/
Q_INVOKABLE bool isRightHand(unsigned int uid) { return DependencyManager::get<PointerManager>()->isRightHand(uid); }
/**jsdoc
/*@jsdoc
* Checks if a pointer is associated with the system mouse: a ray or parabola pointer with <code>joint</code> property set
* to <code>"Mouse"</code>.
* @function Pointers.isMouse
@ -420,7 +420,7 @@ public:
*/
Q_INVOKABLE bool isMouse(unsigned int uid) { return DependencyManager::get<PointerManager>()->isMouse(uid); }
/**jsdoc
/*@jsdoc
* Gets information about a pointer.
* @function Pointers.getPointerProperties
* @param {number} id - The ID of the pointer.

View file

@ -39,7 +39,7 @@ public:
float distance { FLT_MAX };
bool intersects { false };
/**jsdoc
/*@jsdoc
* An intersection result for a ray pick.
*
* @typedef {object} RayPickResult

View file

@ -18,7 +18,7 @@
#include "PickScriptingInterface.h"
/**jsdoc
/*@jsdoc
* The <code>RayPick</code> API is a subset of the {@link Picks} API, as used for ray picks.
*
* @namespace RayPick
@ -65,7 +65,7 @@ class RayPickScriptingInterface : public QObject, public Dependency {
public:
/**jsdoc
/*@jsdoc
* Creates a new ray pick.
* <p><strong>Warning:</strong> Picks created using this method currently always intersect at least visible and collidable
* things but this may not always be the case.</p>
@ -75,28 +75,28 @@ public:
*/
Q_INVOKABLE unsigned int createRayPick(const QVariant& properties);
/**jsdoc
/*@jsdoc
* Enables a ray pick.
* @function RayPick.enableRayPick
* @param {number} id - The ID of the ray pick.
*/
Q_INVOKABLE void enableRayPick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Disables a ray pick.
* @function RayPick.disableRayPick
* @param {number} id - The ID of the ray pick.
*/
Q_INVOKABLE void disableRayPick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Removes (deletes) a ray pick.
* @function RayPick.removeRayPick
* @param {number} id - The ID of the ray pick.
*/
Q_INVOKABLE void removeRayPick(unsigned int uid);
/**jsdoc
/*@jsdoc
* Gets the most recent pick result from a ray pick. A ray pick continues to be updated ready to return a result, as long
* as it is enabled.
* @function RayPick.getPrevRayPickResult
@ -106,7 +106,7 @@ public:
Q_INVOKABLE QVariantMap getPrevRayPickResult(unsigned int uid);
/**jsdoc
/*@jsdoc
* Sets whether or not a ray pick should use precision picking, i.e., whether it should pick against precise meshes or
* coarse meshes.
* @function RayPick.setPrecisionPicking
@ -115,7 +115,7 @@ public:
*/
Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking);
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a ray pick should ignore during intersection.
* @function RayPick.setIgnoreItems
* @param {number} id - The ID of the ray pick.
@ -123,7 +123,7 @@ public:
*/
Q_INVOKABLE void setIgnoreItems(unsigned int uid, const QScriptValue& ignoreEntities);
/**jsdoc
/*@jsdoc
* Sets a list of entity and avatar IDs that a ray pick should include during intersection, instead of intersecting with
* everything.
* @function RayPick.setIncludeItems
@ -133,7 +133,7 @@ public:
Q_INVOKABLE void setIncludeItems(unsigned int uid, const QScriptValue& includeEntities);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the left hand: a ray or parabola pick with <code>joint</code> property set to
* <code>"_CONTROLLER_LEFTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"</code>, or a stylus pick with
* <code>hand</code> property set to <code>0</code>.
@ -143,7 +143,7 @@ public:
*/
Q_INVOKABLE bool isLeftHand(unsigned int uid);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the right hand: a ray or parabola pick with <code>joint</code> property set to
* <code>"_CONTROLLER_RIGHTHAND"</code> or <code>"_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"</code>, or a stylus pick with
* <code>hand</code> property set to <code>1</code>.
@ -153,7 +153,7 @@ public:
*/
Q_INVOKABLE bool isRightHand(unsigned int uid);
/**jsdoc
/*@jsdoc
* Checks if a pick is associated with the system mouse: a ray or parabola pick with <code>joint</code> property set to
* <code>"Mouse"</code>.
* @function RayPick.isMouse
@ -164,42 +164,42 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Raypick.PICK_ENTITIES</code> property instead.
* @returns {number}
*/
static unsigned int PICK_ENTITIES() { return PickScriptingInterface::PICK_ENTITIES(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_OVERLAYS
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_OVERLAYS</code> property instead.
* @returns {number}
*/
static unsigned int PICK_OVERLAYS() { return PickScriptingInterface::PICK_OVERLAYS(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_AVATARS
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_AVATARS</code> property instead.
* @returns {number}
*/
static unsigned int PICK_AVATARS() { return PickScriptingInterface::PICK_AVATARS(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_HUD
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_HUD</code> property instead.
* @returns {number}
*/
static unsigned int PICK_HUD() { return PickScriptingInterface::PICK_HUD(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_COARSE
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_COARSE</code> property instead.
* @returns {number}
*/
static unsigned int PICK_COARSE() { return PickScriptingInterface::PICK_COARSE(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_INCLUDE_INVISIBLE
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_INCLUDE_INVISIBLE</code>
* property instead.
@ -207,7 +207,7 @@ public slots:
*/
static unsigned int PICK_INCLUDE_INVISIBLE() { return PickScriptingInterface::PICK_INCLUDE_INVISIBLE(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_INCLUDE_NONCOLLIDABLE
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_INCLUDE_NONCOLLIDABLE</code>
* property instead.
@ -215,7 +215,7 @@ public slots:
*/
static unsigned int PICK_INCLUDE_NONCOLLIDABLE() { return PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE(); }
/**jsdoc
/*@jsdoc
* @function RayPick.PICK_ALL_INTERSECTIONS
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.PICK_ALL_INTERSECTIONS</code>
* property instead.
@ -223,7 +223,7 @@ public slots:
*/
static unsigned int PICK_ALL_INTERSECTIONS() { return PickScriptingInterface::PICK_ALL_INTERSECTIONS(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_NONE
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_NONE</code> property
* instead.
@ -231,7 +231,7 @@ public slots:
*/
static unsigned int INTERSECTED_NONE() { return PickScriptingInterface::INTERSECTED_NONE(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_ENTITY
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_ENTITY</code> property
* instead.
@ -239,7 +239,7 @@ public slots:
*/
static unsigned int INTERSECTED_ENTITY() { return PickScriptingInterface::INTERSECTED_ENTITY(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_OVERLAY
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_LOCAL_ENTITY</code>
* property instead.
@ -247,7 +247,7 @@ public slots:
*/
static unsigned int INTERSECTED_LOCAL_ENTITY() { return PickScriptingInterface::INTERSECTED_LOCAL_ENTITY(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_OVERLAY
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_OVERLAY</code> property
* instead.
@ -255,7 +255,7 @@ public slots:
*/
static unsigned int INTERSECTED_OVERLAY() { return PickScriptingInterface::INTERSECTED_LOCAL_ENTITY(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_AVATAR
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_AVATAR</code> property
* instead.
@ -263,7 +263,7 @@ public slots:
*/
static unsigned int INTERSECTED_AVATAR() { return PickScriptingInterface::INTERSECTED_AVATAR(); }
/**jsdoc
/*@jsdoc
* @function RayPick.INTERSECTED_HUD
* @deprecated This function is deprecated and will be removed. Use the <code>RayPick.INTERSECTED_HUD</code> property
* instead.

View file

@ -40,7 +40,7 @@ public:
glm::vec3 intersection { NAN };
glm::vec3 surfaceNormal { NAN };
/**jsdoc
/*@jsdoc
* An intersection result for a stylus pick.
*
* @typedef {object} StylusPickResult

View file

@ -112,7 +112,7 @@ DownloadInfoResult::DownloadInfoResult() :
{
}
/**jsdoc
/*@jsdoc
* Information on the assets currently being downloaded and pending download.
* @typedef {object} AccountServices.DownloadInfoResult
* @property {number[]} downloading - The download percentage remaining of each asset currently downloading.

View file

@ -37,7 +37,7 @@ void DownloadInfoResultFromScriptValue(const QScriptValue& object, DownloadInfoR
class AccountServicesScriptingInterface : public QObject {
Q_OBJECT
/**jsdoc
/*@jsdoc
* The <code>AccountServices</code> API provides functions that give information on user connectivity, visibility, and
* asset download progress.
*
@ -62,7 +62,7 @@ class AccountServicesScriptingInterface : public QObject {
* &mdash; typically <code>"https://metaverse.highfidelity.com"</code>. <em>Read-only.</em>
*/
/**jsdoc
/*@jsdoc
* The <code>Account</code> API provides functions that give information on user connectivity, visibility, and asset
* download progress.
*
@ -102,7 +102,7 @@ class AccountServicesScriptingInterface : public QObject {
* @borrows AccountServices.loggedInChanged as loggedInChanged
*/
/**jsdoc
/*@jsdoc
* The <code>GlobalServices</code> API provides functions that give information on user connectivity, visibility, and asset
* download progress.
*
@ -156,21 +156,21 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Gets information on the download progress of assets in the domain.
* @function AccountServices.getDownloadInfo
* @returns {AccountServices.DownloadInfoResult} Information on the download progress of assets.
*/
DownloadInfoResult getDownloadInfo();
/**jsdoc
/*@jsdoc
* Triggers a {@link AccountServices.downloadInfoChanged|downloadInfoChanged} signal with information on the current
* download progress of the assets in the domain.
* @function AccountServices.updateDownloadInfo
*/
void updateDownloadInfo();
/**jsdoc
/*@jsdoc
* Checks whether the user is logged in.
* @function AccountServices.isLoggedIn
* @returns {boolean} <code>true</code> if the user is logged in, <code>false</code> if not.
@ -180,14 +180,14 @@ public slots:
*/
bool isLoggedIn();
/**jsdoc
/*@jsdoc
* The function returns the login status of the user and prompts the user to log in (with a login dialog) if they're not already logged in.
* @function AccountServices.checkAndSignalForAccessToken
* @returns {boolean} <code>true</code> if the user is logged in, <code>false</code> if not.
*/
bool checkAndSignalForAccessToken();
/**jsdoc
/*@jsdoc
* Logs the user out.
* @function AccountServices.logOut
*/
@ -205,14 +205,14 @@ private slots:
signals:
/**jsdoc
/*@jsdoc
* Not currently used.
* @function AccountServices.connected
* @returns {Signal}
*/
void connected();
/**jsdoc
/*@jsdoc
* Triggered when the user logs out.
* @function AccountServices.disconnected
* @param {string} reason - Has the value, <code>"logout"</code>.
@ -220,7 +220,7 @@ signals:
*/
void disconnected(const QString& reason);
/**jsdoc
/*@jsdoc
* Triggered when the username logged in with changes, i.e., when the user logs in or out.
* @function AccountServices.myUsernameChanged
* @param {string} username - The user name of the user logged in. If there is no user logged in, it is <code>""</code>.
@ -232,7 +232,7 @@ signals:
*/
void myUsernameChanged(const QString& username);
/**jsdoc
/*@jsdoc
* Triggered when the download progress of the assets in the domain changes.
* @function AccountServices.downloadInfoChanged
* @param {AccountServices.DownloadInfoResult} downloadInfo - Information on the download progress of assets.
@ -240,7 +240,7 @@ signals:
*/
void downloadInfoChanged(DownloadInfoResult info);
/**jsdoc
/*@jsdoc
* Triggered when the user's visibility to others changes.
* @function AccountServices.findableByChanged
* @param {string} findableBy - The user's visibility to other people:
@ -268,7 +268,7 @@ signals:
*/
void findableByChanged(const QString& discoverabilityMode);
/**jsdoc
/*@jsdoc
* Triggered when the login status of the user changes.
* @function AccountServices.loggedInChanged
* @param {boolean} loggedIn - <code>true</code> if the user is logged in, <code>false</code> if not.

View file

@ -30,7 +30,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable {
Q_OBJECT
SINGLETON_DEPENDENCY
/**jsdoc
/*@jsdoc
* The <code>Audio</code> API provides facilities to interact with audio inputs and outputs and to play sounds.
*
* @namespace Audio
@ -161,7 +161,7 @@ public:
void saveData();
void loadData();
/**jsdoc
/*@jsdoc
* @function Audio.setInputDevice
* @param {object} device - Device.
* @param {boolean} isHMD - Is HMD.
@ -169,7 +169,7 @@ public:
*/
Q_INVOKABLE void setInputDevice(const HifiAudioDeviceInfo& device, bool isHMD);
/**jsdoc
/*@jsdoc
* @function Audio.setOutputDevice
* @param {object} device - Device.
* @param {boolean} isHMD - Is HMD.
@ -177,7 +177,7 @@ public:
*/
Q_INVOKABLE void setOutputDevice(const HifiAudioDeviceInfo& device, bool isHMD);
/**jsdoc
/*@jsdoc
* Enables or disables reverberation. Reverberation is done by the client on the post-mix audio. The reverberation options
* come from either the domain's audio zone configured on the server or settings scripted by
* {@link Audio.setReverbOptions|setReverbOptions}.
@ -210,21 +210,21 @@ public:
* }, 8000); */
Q_INVOKABLE void setReverb(bool enable);
/**jsdoc
/*@jsdoc
* Configures reverberation options. Use {@link Audio.setReverb|setReverb} to enable or disable reverberation.
* @function Audio.setReverbOptions
* @param {AudioEffectOptions} options - The reverberation options.
*/
Q_INVOKABLE void setReverbOptions(const AudioEffectOptions* options);
/**jsdoc
/*@jsdoc
* Sets the gain (relative volume) that avatars' voices are played at. This gain is used at the server.
* @function Audio.setAvatarGain
* @param {number} gain - The avatar gain (dB) at the server.
*/
Q_INVOKABLE void setAvatarGain(float gain);
/**jsdoc
/*@jsdoc
* Gets the gain (relative volume) that avatars' voices are played at. This gain is used at the server.
* @function Audio.getAvatarGain
* @returns {number} The avatar gain (dB) at the server.
@ -237,63 +237,63 @@ public:
*/
Q_INVOKABLE float getAvatarGain();
/**jsdoc
/*@jsdoc
* Sets the gain (relative volume) that environment sounds from the server are played at.
* @function Audio.setInjectorGain
* @param {number} gain - The injector gain (dB) at the server.
*/
Q_INVOKABLE void setInjectorGain(float gain);
/**jsdoc
/*@jsdoc
* Gets the gain (relative volume) that environment sounds from the server are played at.
* @function Audio.getInjectorGain
* @returns {number} The injector gain (dB) at the server.
*/
Q_INVOKABLE float getInjectorGain();
/**jsdoc
/*@jsdoc
* Sets the gain (relative volume) that environment sounds from the client are played at.
* @function Audio.setLocalInjectorGain
* @param {number} gain - The injector gain (dB) in the client.
*/
Q_INVOKABLE void setLocalInjectorGain(float gain);
/**jsdoc
/*@jsdoc
* Gets the gain (relative volume) that environment sounds from the client are played at.
* @function Audio.getLocalInjectorGain
* @returns {number} The injector gain (dB) in the client.
*/
Q_INVOKABLE float getLocalInjectorGain();
/**jsdoc
/*@jsdoc
* Sets the gain (relative volume) that system sounds are played at.
* @function Audio.setSystemInjectorGain
* @param {number} gain - The injector gain (dB) in the client.
*/
Q_INVOKABLE void setSystemInjectorGain(float gain);
/**jsdoc
/*@jsdoc
* Gets the gain (relative volume) that system sounds are played at.
* @function Audio.getSystemInjectorGain
* @returns {number} The injector gain (dB) in the client.
*/
Q_INVOKABLE float getSystemInjectorGain();
/**jsdoc
/*@jsdoc
* Sets the noise gate threshold before your mic audio is transmitted. (Applies only if <code>Audio.noiseReductionAutomatic</code> is <code>false</code>.)
* @function Audio.setNoiseReductionThreshold
* @param {number} threshold - The level that your input must surpass to be transmitted. <code>0.0</code> (open the gate completely) &ndash; <code>1.0</code>
*/
Q_INVOKABLE void setNoiseReductionThreshold(float threshold);
/**jsdoc
/*@jsdoc
* Gets the noise reduction threshold.
* @function Audio.getNoiseReductionThreshold
* @returns {number} The noise reduction threshold. <code>0.0</code> &ndash; <code>1.0</code>
*/
Q_INVOKABLE float getNoiseReductionThreshold();
/**jsdoc
/*@jsdoc
* Starts making an audio recording of the audio being played in-world (i.e., not local-only audio) to a file in WAV format.
* @function Audio.startRecording
* @param {string} filename - The path and name of the file to make the recording in. Should have a <code>.wav</code>
@ -314,20 +314,20 @@ public:
*/
Q_INVOKABLE bool startRecording(const QString& filename);
/**jsdoc
/*@jsdoc
* Finishes making an audio recording started with {@link Audio.startRecording|startRecording}.
* @function Audio.stopRecording
*/
Q_INVOKABLE void stopRecording();
/**jsdoc
/*@jsdoc
* Checks whether an audio recording is currently being made.
* @function Audio.getRecording
* @returns {boolean} <code>true</code> if an audio recording is currently being made, otherwise <code>false</code>.
*/
Q_INVOKABLE bool getRecording();
/**jsdoc
/*@jsdoc
* Sets the output volume gain that will be used when the user is holding the push-to-talk key.
* Should be negative.
* @function Audio.setPushingToTalkOutputGainDesktop
@ -335,7 +335,7 @@ public:
*/
Q_INVOKABLE void setPushingToTalkOutputGainDesktop(float gain);
/**jsdoc
/*@jsdoc
* Gets the output volume gain that is used when the user is holding the push-to-talk key.
* Should be negative.
* @function Audio.getPushingToTalkOutputGainDesktop
@ -345,14 +345,14 @@ public:
signals:
/**jsdoc
/*@jsdoc
* @function Audio.nop
* @returns {Signal}
* @deprecated This signal is deprecated and will be removed.
*/
void nop();
/**jsdoc
/*@jsdoc
* Triggered when the audio input is muted or unmuted for the current context (desktop or HMD).
* @function Audio.mutedChanged
* @param {boolean} isMuted - <code>true</code> if the audio input is muted for the current context (desktop or HMD),
@ -365,7 +365,7 @@ signals:
*/
void mutedChanged(bool isMuted);
/**jsdoc
/*@jsdoc
* Triggered when desktop audio input is muted or unmuted.
* @function Audio.mutedDesektopChanged
* @param {boolean} isMuted - <code>true</code> if desktop audio input is muted, otherwise <code>false</code>.
@ -377,7 +377,7 @@ signals:
*/
void mutedDesktopChanged(bool isMuted);
/**jsdoc
/*@jsdoc
* Triggered when HMD audio input is muted or unmuted.
* @function Audio.mutedHMDChanged
* @param {boolean} isMuted - <code>true</code> if HMD audio input is muted, otherwise <code>false</code>.
@ -385,7 +385,7 @@ signals:
*/
void mutedHMDChanged(bool isMuted);
/**jsdoc
/*@jsdoc
* Triggered when push-to-talk is enabled or disabled for the current context (desktop or HMD).
* @function Audio.pushToTalkChanged
* @param {boolean} enabled - <code>true</code> if push-to-talk is enabled, otherwise <code>false</code>.
@ -397,7 +397,7 @@ signals:
*/
void pushToTalkChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when push-to-talk is enabled or disabled for desktop mode.
* @function Audio.pushToTalkDesktopChanged
* @param {boolean} enabled - <code>true</code> if push-to-talk is enabled for desktop mode, otherwise <code>false</code>.
@ -405,7 +405,7 @@ signals:
*/
void pushToTalkDesktopChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when push-to-talk is enabled or disabled for HMD mode.
* @function Audio.pushToTalkHMDChanged
* @param {boolean} enabled - <code>true</code> if push-to-talk is enabled for HMD mode, otherwise <code>false</code>.
@ -413,7 +413,7 @@ signals:
*/
void pushToTalkHMDChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when audio input noise reduction is enabled or disabled.
* @function Audio.noiseReductionChanged
* @param {boolean} isEnabled - <code>true</code> if audio input noise reduction is enabled, otherwise <code>false</code>.
@ -421,7 +421,7 @@ signals:
*/
void noiseReductionChanged(bool isEnabled);
/**jsdoc
/*@jsdoc
* Triggered when the audio input noise reduction mode is changed.
* @function Audio.noiseReductionAutomaticChanged
* @param {boolean} isEnabled - <code>true</code> if audio input noise reduction automatic mode is enabled, <code>false</code> if in manual mode.
@ -429,7 +429,7 @@ signals:
*/
void noiseReductionAutomaticChanged(bool isEnabled);
/**jsdoc
/*@jsdoc
* Triggered when the audio input noise reduction threshold is changed.
* @function Audio.noiseReductionThresholdChanged
* @param {number} threshold - The threshold for the audio input noise reduction, range <code>0.0</code> (open the gate completely) &ndash; <code>1.0</code>
@ -438,7 +438,7 @@ signals:
*/
void noiseReductionThresholdChanged(float threshold);
/**jsdoc
/*@jsdoc
* Triggered when "warn when muted" is enabled or disabled.
* @function Audio.warnWhenMutedChanged
* @param {boolean} isEnabled - <code>true</code> if "warn when muted" is enabled, otherwise <code>false</code>.
@ -446,7 +446,7 @@ signals:
*/
void warnWhenMutedChanged(bool isEnabled);
/**jsdoc
/*@jsdoc
* Triggered when acoustic echo cancellation is enabled or disabled.
* @function Audio.acousticEchoCancellationChanged
* @param {boolean} isEnabled - <code>true</code> if acoustic echo cancellation is enabled, otherwise <code>false</code>.
@ -454,7 +454,7 @@ signals:
*/
void acousticEchoCancellationChanged(bool isEnabled);
/**jsdoc
/*@jsdoc
* Triggered when the input audio volume changes.
* @function Audio.inputVolumeChanged
* @param {number} volume - The requested volume to be applied to the audio input, range <code>0.0</code> &ndash;
@ -465,7 +465,7 @@ signals:
*/
void inputVolumeChanged(float volume);
/**jsdoc
/*@jsdoc
* Triggered when the input audio level changes.
* @function Audio.inputLevelChanged
* @param {number} level - The loudness of the input audio, range <code>0.0</code> (no sound) &ndash; <code>1.0</code> (the
@ -474,7 +474,7 @@ signals:
*/
void inputLevelChanged(float level);
/**jsdoc
/*@jsdoc
* Triggered when the clipping state of the input audio changes.
* @function Audio.clippingChanged
* @param {boolean} isClipping - <code>true</code> if the audio input is clipping, otherwise <code>false</code>.
@ -482,7 +482,7 @@ signals:
*/
void clippingChanged(bool isClipping);
/**jsdoc
/*@jsdoc
* Triggered when the current context of the audio changes.
* @function Audio.contextChanged
* @param {string} context - The current context of the audio: either <code>"Desktop"</code> or <code>"HMD"</code>.
@ -490,7 +490,7 @@ signals:
*/
void contextChanged(const QString& context);
/**jsdoc
/*@jsdoc
* Triggered when the user starts or stops push-to-talk.
* @function Audio.pushingToTalkChanged
* @param {boolean} talking - <code>true</code> if started push-to-talk, <code>false</code> if stopped push-to-talk.
@ -498,7 +498,7 @@ signals:
*/
void pushingToTalkChanged(bool talking);
/**jsdoc
/*@jsdoc
* Triggered when the avatar gain changes.
* @function Audio.avatarGainChanged
* @param {number} gain - The new avatar gain value (dB).
@ -506,7 +506,7 @@ signals:
*/
void avatarGainChanged(float gain);
/**jsdoc
/*@jsdoc
* Triggered when the local injector gain changes.
* @function Audio.localInjectorGainChanged
* @param {number} gain - The new local injector gain value (dB).
@ -514,7 +514,7 @@ signals:
*/
void localInjectorGainChanged(float gain);
/**jsdoc
/*@jsdoc
* Triggered when the server injector gain changes.
* @function Audio.serverInjectorGainChanged
* @param {number} gain - The new server injector gain value (dB).
@ -522,7 +522,7 @@ signals:
*/
void serverInjectorGainChanged(float gain);
/**jsdoc
/*@jsdoc
* Triggered when the system injector gain changes.
* @function Audio.systemInjectorGainChanged
* @param {number} gain - The new system injector gain value (dB).
@ -530,7 +530,7 @@ signals:
*/
void systemInjectorGainChanged(float gain);
/**jsdoc
/*@jsdoc
* Triggered when the push to talk gain changes.
* @function Audio.pushingToTalkOutputGainDesktopChanged
* @param {number} gain - The new output gain value (dB).
@ -540,7 +540,7 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* @function Audio.onContextChanged
* @deprecated This function is deprecated and will be removed.
*/

View file

@ -17,7 +17,7 @@
#include <EntityItemID.h>
/**jsdoc
/*@jsdoc
* The <code>Clipboard</code> API enables you to export and import entities to and from JSON files.
*
* @namespace Clipboard
@ -32,7 +32,7 @@ public:
ClipboardScriptingInterface();
public:
/**jsdoc
/*@jsdoc
* Gets the extents of the entities held in the clipboard.
* @function Clipboard.getContentsDimensions
* @returns {Vec3} The extents of the content held in the clipboard.
@ -46,14 +46,14 @@ public:
*/
Q_INVOKABLE glm::vec3 getContentsDimensions();
/**jsdoc
/*@jsdoc
* Gets the largest dimension of the extents of the entities held in the clipboard.
* @function Clipboard.getClipboardContentsLargestDimension
* @returns {number} The largest dimension of the extents of the content held in the clipboard.
*/
Q_INVOKABLE float getClipboardContentsLargestDimension();
/**jsdoc
/*@jsdoc
* Imports entities from a JSON file into the clipboard.
* @function Clipboard.importEntities
* @param {string} filename - The path and name of the JSON file to import.
@ -73,7 +73,7 @@ public:
*/
Q_INVOKABLE bool importEntities(const QString& filename, const bool isObservable = true, const qint64 callerId = -1);
/**jsdoc
/*@jsdoc
* Exports specified entities to a JSON file.
* @function Clipboard.exportEntities
* @param {string} filename - Path and name of the file to export the entities to. Should have the extension ".json".
@ -100,7 +100,7 @@ public:
*/
Q_INVOKABLE bool exportEntities(const QString& filename, const QVector<QUuid>& entityIDs);
/**jsdoc
/*@jsdoc
* Exports all entities that have centers within a cube to a JSON file.
* @function Clipboard.exportEntities
* @variation 0
@ -113,7 +113,7 @@ public:
*/
Q_INVOKABLE bool exportEntities(const QString& filename, float x, float y, float z, float scale);
/**jsdoc
/*@jsdoc
* Pastes the contents of the clipboard into the domain.
* @function Clipboard.pasteEntities
* @param {Vec3} position - The position to paste the clipboard contents at.

View file

@ -25,7 +25,7 @@
class ScriptEngine;
/**jsdoc
/*@jsdoc
* The <code>Controller</code> API provides facilities to interact with computer and controller hardware.
*
* <h3>Facilities</h3>
@ -265,7 +265,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Disables default Interface actions for a particular key event.
* @function Controller.captureKeyEvents
* @param {KeyEvent} event - Details of the key event to be captured. The <code>key</code> property must be specified. The
@ -284,7 +284,7 @@ public slots:
*/
virtual void captureKeyEvents(const KeyEvent& event);
/**jsdoc
/*@jsdoc
* Re-enables default Interface actions for a particular key event that has been disabled using
* {@link Controller.captureKeyEvents|captureKeyEvents}.
* @function Controller.releaseKeyEvents
@ -293,7 +293,7 @@ public slots:
*/
virtual void releaseKeyEvents(const KeyEvent& event);
/**jsdoc
/*@jsdoc
* Disables default Interface actions for a joystick.
* @function Controller.captureJoystick
* @param {number} joystickID - The integer ID of the joystick.
@ -301,7 +301,7 @@ public slots:
*/
virtual void captureJoystick(int joystickIndex);
/**jsdoc
/*@jsdoc
* Re-enables default Interface actions for a joystick that has been disabled using
* {@link Controller.captureJoystick|captureJoystick}.
* @function Controller.releaseJoystick
@ -310,7 +310,7 @@ public slots:
*/
virtual void releaseJoystick(int joystickIndex);
/**jsdoc
/*@jsdoc
* Disables {@link Entities.mousePressOnEntity} and {@link Entities.mouseDoublePressOnEntity} events on entities.
* @function Controller.captureEntityClickEvents
* @example <caption>Disable entity click events for a short period.</caption>
@ -328,7 +328,7 @@ public slots:
*/
virtual void captureEntityClickEvents();
/**jsdoc
/*@jsdoc
* Re-enables {@link Entities.mousePressOnEntity} and {@link Entities.mouseDoublePressOnEntity} events on entities that were
* disabled using {@link Controller.captureEntityClickEvents|captureEntityClickEvents}.
* @function Controller.releaseEntityClickEvents
@ -336,14 +336,14 @@ public slots:
virtual void releaseEntityClickEvents();
/**jsdoc
/*@jsdoc
* Gets the dimensions of the Interface window's interior if in desktop mode or the HUD surface if in HMD mode.
* @function Controller.getViewportDimensions
* @returns {Vec2} The dimensions of the Interface window interior if in desktop mode or HUD surface if in HMD mode.
*/
virtual glm::vec2 getViewportDimensions() const;
/**jsdoc
/*@jsdoc
* Gets the recommended area to position UI on the HUD surface if in HMD mode or Interface's window interior if in desktop
* mode.
* @function Controller.getRecommendedHUDRect
@ -351,7 +351,7 @@ public slots:
*/
virtual QVariant getRecommendedHUDRect() const;
/**jsdoc
/*@jsdoc
* Enables or disables the virtual game pad that is displayed on certain devices (e.g., Android).
* @function Controller.setVPadEnabled
* @param {boolean} enable - If <code>true</code> then the virtual game pad doesn't work, otherwise it does work provided
@ -360,14 +360,14 @@ public slots:
*/
virtual void setVPadEnabled(bool enable);
/**jsdoc
/*@jsdoc
* Shows or hides the virtual game pad that is displayed on certain devices (e.g., Android).
* @function Controller.setVPadHidden
* @param {boolean} hidden - If <code>true</code> then the virtual game pad is hidden, otherwise it is shown.
*/
virtual void setVPadHidden(bool hidden); // Call it when a window should hide it
/**jsdoc
/*@jsdoc
* Sets the amount of extra margin between the virtual game pad that is displayed on certain devices (e.g., Android) and
* the bottom of the display.
* @function Controller.setVPadExtraBottomMargin
@ -376,7 +376,7 @@ public slots:
virtual void setVPadExtraBottomMargin(int margin);
signals:
/**jsdoc
/*@jsdoc
* Triggered when a keyboard key is pressed.
* @function Controller.keyPressEvent
* @param {KeyEvent} event - Details of the key press.
@ -388,7 +388,7 @@ signals:
*/
void keyPressEvent(const KeyEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a keyboard key is released from being pressed.
* @function Controller.keyReleaseEvent
* @param {KeyEvent} event - Details of the key release.
@ -396,7 +396,7 @@ signals:
*/
void keyReleaseEvent(const KeyEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when the mouse moves.
* @function Controller.mouseMoveEvent
* @param {MouseEvent} event - Details of the mouse movement.
@ -408,7 +408,7 @@ signals:
*/
void mouseMoveEvent(const MouseEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse button is pressed.
* @function Controller.mousePressEvent
* @param {MouseEvent} event - Details of the button press.
@ -416,7 +416,7 @@ signals:
*/
void mousePressEvent(const MouseEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse button is double-pressed.
* @function Controller.mouseDoublePressEvent
* @param {MouseEvent} event - Details of the button double-press.
@ -424,7 +424,7 @@ signals:
*/
void mouseDoublePressEvent(const MouseEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse button is released from being pressed.
* @function Controller.mouseReleaseEvent
* @param {MouseEvent} event - Details of the button release.
@ -432,7 +432,7 @@ signals:
*/
void mouseReleaseEvent(const MouseEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a touch event starts in the Interface window on a touch-enabled display or device.
* @function Controller.touchBeginEvent
* @param {TouchEvent} event - Details of the touch begin.
@ -444,7 +444,7 @@ signals:
*/
void touchBeginEvent(const TouchEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a touch event ends in the Interface window on a touch-enabled display or device.
* @function Controller.touchEndEvent
* @param {TouchEvent} event - Details of the touch end.
@ -452,7 +452,7 @@ signals:
*/
void touchEndEvent(const TouchEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a touch event update occurs in the Interface window on a touch-enabled display or device.
* @function Controller.touchUpdateEvent
* @param {TouchEvent} event - Details of the touch update.
@ -460,7 +460,7 @@ signals:
*/
void touchUpdateEvent(const TouchEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when the mouse wheel is rotated.
* @function Controller.wheelEvent
* @param {WheelEvent} event - Details of the wheel movement.

View file

@ -22,7 +22,7 @@
#include <DependencyManager.h>
#include <OffscreenUi.h>
/**jsdoc
/*@jsdoc
* The possible docking locations of an <code>InteractiveWindow</code>.
* @typedef {object} InteractiveWindow.DockAreas
* @property {InteractiveWindow.DockArea} TOP - Dock to the top edge of the Interface window.
@ -37,7 +37,7 @@ static const QVariantMap DOCK_AREA {
{ "RIGHT", DockArea::RIGHT }
};
/**jsdoc
/*@jsdoc
* The possible relative position anchors of an <code>InteractiveWindow</code> relative to the Interface window.
* @typedef {object} InteractiveWindow.RelativePositionAnchors
* @property {InteractiveWindow.RelativePositionAnchor} NO_ANCHOR - Position is not relative to any part of the Interface
@ -70,7 +70,7 @@ int DesktopScriptingInterface::getHeight() {
return size.height();
}
/**jsdoc
/*@jsdoc
* The possible display modes for an <code>InteractiveWindow</code>.
* @typedef {object} InteractiveWindow.PresentationModes
* @property {InteractiveWindow.PresentationMode} VIRTUAL - The window is displayed inside Interface: in the desktop window in

View file

@ -19,7 +19,7 @@
#include "ui/InteractiveWindow.h"
/**jsdoc
/*@jsdoc
* The <code>Desktop</code> API provides the dimensions of the computer screen, sets the opacity of the HUD surface, and
* enables QML and HTML windows to be shown inside or outside of Interface.
*
@ -60,14 +60,14 @@ class DesktopScriptingInterface : public QObject, public Dependency {
public:
DesktopScriptingInterface(QObject* parent= nullptr, bool restricted = false);
/**jsdoc
/*@jsdoc
* Sets the opacity of the HUD surface.
* @function Desktop.setHUDAlpha
* @param {number} alpha - The opacity, <code>0.0 &ndash; 1.0</code>.
*/
Q_INVOKABLE void setHUDAlpha(float alpha);
/**jsdoc
/*@jsdoc
* Opens a QML window within Interface: in the Interface window in desktop mode or on the HUD surface in HMD mode. If a
* window of the specified name already exists, it is shown, otherwise a new window is created from the QML.
* @function Desktop.show
@ -78,7 +78,7 @@ public:
*/
Q_INVOKABLE void show(const QString& path, const QString& title);
/**jsdoc
/*@jsdoc
* Creates a new window that can be displayed either within Interface or as a separate desktop window.
* @function Desktop.createWindow
* @param {string} url - The QML file that specifies the window content. The QML file can use a <code>WebView</code>

View file

@ -14,7 +14,7 @@
#include <QObject>
/**jsdoc
/*@jsdoc
* The <code>DialogsMamnager</code> API provides facilities to work with some key dialogs.
*
* @namespace DialogsManager
@ -30,33 +30,33 @@ public:
DialogsManagerScriptingInterface();
static DialogsManagerScriptingInterface* getInstance();
/**jsdoc
/*@jsdoc
* <em>Currently performs no action.</em>
* @function DialogsManager.showFeed
*/
Q_INVOKABLE void showFeed();
public slots:
/**jsdoc
/*@jsdoc
* Shows the "Goto" dialog.
* @function DialogsManager.showAddressBar
*/
void showAddressBar();
/**jsdoc
/*@jsdoc
* Hides the "Goto" dialog.
* @function DialogsManager.hideAddressBar
*/
void hideAddressBar();
/**jsdoc
/*@jsdoc
* Shows the login dialog.
* @function DialogsManager.showLoginDialog
*/
void showLoginDialog();
signals:
/**jsdoc
/*@jsdoc
* Triggered when the "Goto" dialog is opened or closed.
* <p><strong>Warning:</strong> Currently isn't always triggered.</p>
* @function DialogsManager.addressBarShown

View file

@ -15,7 +15,7 @@
#include <QObject>
#include <DependencyManager.h>
/**jsdoc
/*@jsdoc
* The GooglePoly API allows you to interact with Google Poly models direct from inside High Fidelity.
* @namespace GooglePoly
*
@ -32,13 +32,13 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* @function GooglePoly.setAPIKey
* @param {string} key
*/
void setAPIKey(const QString& key);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getAssetList
* @param {string} keyword
* @param {string} category
@ -47,7 +47,7 @@ public slots:
*/
QString getAssetList(const QString& keyword, const QString& category, const QString& format);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getFBX
* @param {string} keyword
* @param {string} category
@ -55,7 +55,7 @@ public slots:
*/
QString getFBX(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getOBJ
* @param {string} keyword
* @param {string} category
@ -63,7 +63,7 @@ public slots:
*/
QString getOBJ(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getBlocks
* @param {string} keyword
* @param {string} category
@ -71,7 +71,7 @@ public slots:
*/
QString getBlocks(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getGLTF
* @param {string} keyword
* @param {string} category
@ -79,7 +79,7 @@ public slots:
*/
QString getGLTF(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getGLTF2
* @param {string} keyword
* @param {string} category
@ -87,7 +87,7 @@ public slots:
*/
QString getGLTF2(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getTilt
* @param {string} keyword
* @param {string} category
@ -95,7 +95,7 @@ public slots:
*/
QString getTilt(const QString& keyword, const QString& category);
/**jsdoc
/*@jsdoc
* @function GooglePoly.getModelInfo
* @param {string} input
* @returns {string}

View file

@ -24,7 +24,7 @@ class QScriptEngine;
#include <QReadWriteLock>
/**jsdoc
/*@jsdoc
* The <code>HMD</code> API provides access to the HMD used in VR display mode.
*
* @namespace HMD
@ -116,7 +116,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen
public:
/**jsdoc
/*@jsdoc
* Calculates the intersection of a ray with the HUD overlay.
* @function HMD.calculateRayUICollisionPoint
* @param {Vec3} position - The origin of the ray.
@ -144,7 +144,7 @@ public:
glm::vec3 calculateParabolaUICollisionPoint(const glm::vec3& position, const glm::vec3& velocity, const glm::vec3& acceleration, float& parabolicDistance) const;
/**jsdoc
/*@jsdoc
* Gets the 2D HUD overlay coordinates of a 3D point on the HUD overlay.
* 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay.
* @function HMD.overlayFromWorldPoint
@ -170,7 +170,7 @@ public:
*/
Q_INVOKABLE glm::vec2 overlayFromWorldPoint(const glm::vec3& position) const;
/**jsdoc
/*@jsdoc
* Gets the 3D world coordinates of a 2D point on the HUD overlay.
* 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay.
* @function HMD.worldPointFromOverlay
@ -179,7 +179,7 @@ public:
*/
Q_INVOKABLE glm::vec3 worldPointFromOverlay(const glm::vec2& overlay) const;
/**jsdoc
/*@jsdoc
* Gets the 2D point on the HUD overlay represented by given spherical coordinates.
* 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay.
* Spherical coordinates are polar coordinates in radians with <code>{ x: 0, y: 0 }</code> being the center of the HUD
@ -190,7 +190,7 @@ public:
*/
Q_INVOKABLE glm::vec2 sphericalToOverlay(const glm::vec2 & sphericalPos) const;
/**jsdoc
/*@jsdoc
* Gets the spherical coordinates of a 2D point on the HUD overlay.
* 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay.
* Spherical coordinates are polar coordinates in radians with <code>{ x: 0, y: 0 }</code> being the center of the HUD
@ -201,21 +201,21 @@ public:
*/
Q_INVOKABLE glm::vec2 overlayToSpherical(const glm::vec2 & overlayPos) const;
/**jsdoc
/*@jsdoc
* Recenters the HMD HUD to the current HMD position and orientation.
* @function HMD.centerUI
*/
Q_INVOKABLE void centerUI();
/**jsdoc
/*@jsdoc
* Gets the name of the HMD audio input device.
* @function HMD.preferredAudioInput
* @returns {string} The name of the HMD audio input device if in HMD mode, otherwise an empty string.
*/
Q_INVOKABLE QString preferredAudioInput() const;
/**jsdoc
/*@jsdoc
* Gets the name of the HMD audio output device.
* @function HMD.preferredAudioOutput
* @returns {string} The name of the HMD audio output device if in HMD mode, otherwise an empty string.
@ -223,7 +223,7 @@ public:
Q_INVOKABLE QString preferredAudioOutput() const;
/**jsdoc
/*@jsdoc
* Checks whether there is an HMD available.
* @function HMD.isHMDAvailable
* @param {string} [name=""] - The name of the HMD to check for, e.g., <code>"Oculus Rift"</code>. The name is the same as
@ -237,7 +237,7 @@ public:
*/
Q_INVOKABLE bool isHMDAvailable(const QString& name = "");
/**jsdoc
/*@jsdoc
* Checks whether there is an HMD head controller available.
* @function HMD.isHeadControllerAvailable
* @param {string} [name=""] - The name of the HMD head controller to check for, e.g., <code>"Oculus"</code>. If no name is
@ -251,7 +251,7 @@ public:
*/
Q_INVOKABLE bool isHeadControllerAvailable(const QString& name = "");
/**jsdoc
/*@jsdoc
* Checks whether there are HMD hand controllers available.
* @function HMD.isHandControllerAvailable
* @param {string} [name=""] - The name of the HMD hand controller to check for, e.g., <code>"Oculus"</code>. If no name is
@ -265,7 +265,7 @@ public:
*/
Q_INVOKABLE bool isHandControllerAvailable(const QString& name = "");
/**jsdoc
/*@jsdoc
* Checks whether there are specific HMD controllers available.
* @function HMD.isSubdeviceContainingNameAvailable
* @param {string} name - The name of the HMD controller to check for, e.g., <code>"OculusTouch"</code>.
@ -277,7 +277,7 @@ public:
*/
Q_INVOKABLE bool isSubdeviceContainingNameAvailable(const QString& name);
/**jsdoc
/*@jsdoc
* Signals that models of the HMD hand controllers being used should be displayed. The models are displayed at their actual,
* real-world locations.
* @function HMD.requestShowHandControllers
@ -289,14 +289,14 @@ public:
*/
Q_INVOKABLE void requestShowHandControllers();
/**jsdoc
/*@jsdoc
* Signals that it is no longer necessary to display models of the HMD hand controllers being used. If no other scripts
* want the models displayed then they are no longer displayed.
* @function HMD.requestHideHandControllers
*/
Q_INVOKABLE void requestHideHandControllers();
/**jsdoc
/*@jsdoc
* Checks whether any script wants models of the HMD hand controllers displayed. Requests are made and canceled using
* {@link HMD.requestShowHandControllers|requestShowHandControllers} and
* {@link HMD.requestHideHandControllers|requestHideHandControllers}.
@ -306,14 +306,14 @@ public:
Q_INVOKABLE bool shouldShowHandControllers() const;
/**jsdoc
/*@jsdoc
* Causes the borders in HUD windows to be enlarged when the laser intersects them in HMD mode. By default, borders are not
* enlarged.
* @function HMD.activateHMDHandMouse
*/
Q_INVOKABLE void activateHMDHandMouse();
/**jsdoc
/*@jsdoc
* Causes the border in HUD windows to no longer be enlarged when the laser intersects them in HMD mode. By default,
* borders are not enlarged.
* @function HMD.deactivateHMDHandMouse
@ -321,7 +321,7 @@ public:
Q_INVOKABLE void deactivateHMDHandMouse();
/**jsdoc
/*@jsdoc
* Suppresses the activation of the HMD-provided keyboard, if any. Successful calls should be balanced with a call to
* {@link HMD.unsuppressKeyboard|unsuppressKeyboard} within a reasonable amount of time.
* @function HMD.suppressKeyboard
@ -336,14 +336,14 @@ public:
/// call to unsuppressKeyboard() within a reasonable amount of time
Q_INVOKABLE bool suppressKeyboard();
/**jsdoc
/*@jsdoc
* Unsuppresses the activation of the HMD-provided keyboard, if any.
* @function HMD.unsuppressKeyboard
*/
/// Enable the keyboard following a suppressKeyboard call
Q_INVOKABLE void unsuppressKeyboard();
/**jsdoc
/*@jsdoc
* Checks whether the HMD-provided keyboard, if any, is visible.
* @function HMD.isKeyboardVisible
* @returns {boolean} <code>true</code> if the current HMD provides a keyboard and it is visible, otherwise
@ -352,13 +352,13 @@ public:
/// Query the display plugin to determine the current VR keyboard visibility
Q_INVOKABLE bool isKeyboardVisible();
/**jsdoc
/*@jsdoc
* Closes the tablet if it is open.
* @function HMD.closeTablet
*/
Q_INVOKABLE void closeTablet();
/**jsdoc
/*@jsdoc
* Opens the tablet if the tablet is used in the current display mode and it isn't already showing, and sets the tablet to
* contextual mode if requested. In contextual mode, the page displayed on the tablet is wholly controlled by script (i.e.,
* the user cannot navigate to another).
@ -391,7 +391,7 @@ public:
void setVisionSqueezeTurningYFactor(float value);
signals:
/**jsdoc
/*@jsdoc
* Triggered when a request to show or hide models of the HMD hand controllers is made using
* {@link HMD.requestShowHandControllers|requestShowHandControllers} or
* {@link HMD.requestHideHandControllers|requestHideHandControllers}.
@ -410,7 +410,7 @@ signals:
*/
bool shouldShowHandControllersChanged();
/**jsdoc
/*@jsdoc
* Triggered when the tablet is shown or hidden.
* @function HMD.showTabletChanged
* @param {boolean} showTablet - <code>true</code> if the tablet is showing, otherwise <code>false</code>.
@ -418,7 +418,7 @@ signals:
*/
void showTabletChanged(bool showTablet);
/**jsdoc
/*@jsdoc
* Triggered when the ability to display the mini tablet has changed.
* @function HMD.miniTabletEnabledChanged
* @param {boolean} enabled - <code>true</code> if the mini tablet is enabled to be displayed, otherwise <code>false</code>.
@ -426,7 +426,7 @@ signals:
*/
bool miniTabletEnabledChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when the altering the mode for going into an away state when the interface focus is lost in VR.
* @function HMD.awayStateWhenFocusLostInVRChanged
* @param {boolean} enabled - <code>true</code> if the setting to go into an away state in VR when the interface focus is lost is enabled, otherwise <code>false</code>.
@ -437,14 +437,14 @@ signals:
public:
HMDScriptingInterface();
/**jsdoc
/*@jsdoc
* Gets the position on the HUD overlay that your HMD is looking at, in HUD coordinates.
* @function HMD.getHUDLookAtPosition2D
* @returns {Vec2} The position on the HUD overlay that your HMD is looking at, in pixels.
*/
static QScriptValue getHUDLookAtPosition2D(QScriptContext* context, QScriptEngine* engine);
/**jsdoc
/*@jsdoc
* Gets the position on the HUD overlay that your HMD is looking at, in world coordinates.
* @function HMD.getHUDLookAtPosition3D
* @returns {Vec3} The position on the HUD overlay the your HMD is looking at, in world coordinates.

View file

@ -17,7 +17,7 @@
#include "DependencyManager.h"
/**jsdoc
/*@jsdoc
* The <code>Keyboard</code> API provides facilities to use an in-world, virtual keyboard. When enabled, this keyboard is
* displayed instead of the 2D keyboard that raises at the bottom of the tablet or Web entities when a text input field has
* focus and you're in HMD mode.
@ -48,7 +48,7 @@ public:
KeyboardScriptingInterface() = default;
~KeyboardScriptingInterface() = default;
/**jsdoc
/*@jsdoc
* Loads a JSON file that defines the virtual keyboard's layout. The default JSON file used is
* {@link https://github.com/highfidelity/hifi/blob/master/interface/resources/config/keyboard.json|https://github.com/highfidelity/hifi/.../keyboard.json}.
* @function Keyboard.loadKeyboardFile
@ -56,45 +56,45 @@ public:
*/
Q_INVOKABLE void loadKeyboardFile(const QString& string);
/**jsdoc
/*@jsdoc
* Enables the left mallet so that it is displayed when in HMD mode.
* @function Keyboard.enableLeftMallet
*/
Q_INVOKABLE void enableLeftMallet();
/**jsdoc
/*@jsdoc
* Enables the right mallet so that it is displayed when in HMD mode.
* @function Keyboard.enableRightMallet
*/
Q_INVOKABLE void enableRightMallet();
/**jsdoc
/*@jsdoc
* Disables the left mallet so that it is not displayed when in HMD mode.
* @function Keyboard.disableLeftMallet
*/
Q_INVOKABLE void disableLeftMallet();
/**jsdoc
/*@jsdoc
* Disables the right mallet so that it is not displayed when in HMD mode.
* @function Keyboard.disableRightMallet
*/
Q_INVOKABLE void disableRightMallet();
/**jsdoc
/*@jsdoc
* Configures the virtual keyboard to recognize a ray pointer as the left hand's laser.
* @function Keyboard.setLeftHandLaser
* @param {number} leftHandLaser - The ID of a ray pointer created by {@link Pointers.createPointer}.
*/
Q_INVOKABLE void setLeftHandLaser(unsigned int leftHandLaser);
/**jsdoc
/*@jsdoc
* Configures the virtual keyboard to recognize a ray pointer as the right hand's laser.
* @function Keyboard.setRightHandLaser
* @param {number} rightHandLaser - The ID of a ray pointer created by {@link Pointers.createPointer}.
*/
Q_INVOKABLE void setRightHandLaser(unsigned int rightHandLaser);
/**jsdoc
/*@jsdoc
* Checks whether an entity is part of the virtual keyboard.
* @function Keyboard.containsID
* @param {Uuid} entityID - The entity ID.

View file

@ -17,7 +17,7 @@
class MenuItemProperties;
/**jsdoc
/*@jsdoc
* The <code>Menu</code> API provides access to the menu that is displayed at the top of the window on a user's desktop and in
* the tablet when the "MENU" button is pressed.
*
@ -57,7 +57,7 @@ private slots:
void menuItemTriggered();
public slots:
/**jsdoc
/*@jsdoc
* Adds a new top-level menu.
* @function Menu.addMenu
* @param {string} menuName - Name that will be displayed for the menu. Nested menus can be specified using the
@ -73,7 +73,7 @@ public slots:
*/
void addMenu(const QString& menuName, const QString& grouping = QString());
/**jsdoc
/*@jsdoc
* Removes a top-level menu.
* @function Menu.removeMenu
* @param {string} menuName - Name of the menu to remove.
@ -83,7 +83,7 @@ public slots:
*/
void removeMenu(const QString& menuName);
/**jsdoc
/*@jsdoc
* Checks whether a top-level menu exists.
* @function Menu.menuExists
* @param {string} menuName - Name of the menu to check exists.
@ -95,7 +95,7 @@ public slots:
*/
bool menuExists(const QString& menuName);
/**jsdoc
/*@jsdoc
* Adds a separator with an unclickable label below it. The separator will be placed at the bottom of the menu. To add a
* separator at a specific point in the menu, use {@link Menu.addMenuItem} with {@link Menu.MenuItemProperties} instead.
* @function Menu.addSeparator
@ -106,7 +106,7 @@ public slots:
*/
void addSeparator(const QString& menuName, const QString& separatorName);
/**jsdoc
/*@jsdoc
* Removes a separator from a menu.
* @function Menu.removeSeparator
* @param {string} menuName - Name of the menu to remove the separator from.
@ -116,7 +116,7 @@ public slots:
*/
void removeSeparator(const QString& menuName, const QString& separatorName);
/**jsdoc
/*@jsdoc
* Adds a new menu item to a menu. The menu item is specified using {@link Menu.MenuItemProperties}.
* @function Menu.addMenuItem
* @param {Menu.MenuItemProperties} properties - Properties of the menu item to create.
@ -130,7 +130,7 @@ public slots:
*/
void addMenuItem(const MenuItemProperties& properties);
/**jsdoc
/*@jsdoc
* Adds a new menu item to a menu. The new item is added at the end of the menu.
* @function Menu.addMenuItem
* @variation 0
@ -143,7 +143,7 @@ public slots:
void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey);
void addMenuItem(const QString& menuName, const QString& menuitem);
/**jsdoc
/*@jsdoc
* Removes a menu item from a menu.
* @function Menu.removeMenuItem
* @param {string} menuName - Name of the menu to remove a menu item from.
@ -153,7 +153,7 @@ public slots:
*/
void removeMenuItem(const QString& menuName, const QString& menuitem);
/**jsdoc
/*@jsdoc
* Checks whether a menu item exists.
* @function Menu.menuItemExists
* @param {string} menuName - Name of the menu that the menu item is in.
@ -166,7 +166,7 @@ public slots:
*/
bool menuItemExists(const QString& menuName, const QString& menuitem);
/**jsdoc
/*@jsdoc
* Checks whether a checkable menu item is checked.
* @function Menu.isOptionChecked
* @param {string} menuOption - The name of the menu item.
@ -176,7 +176,7 @@ public slots:
*/
bool isOptionChecked(const QString& menuOption);
/**jsdoc
/*@jsdoc
* Sets a checkable menu item as checked or unchecked.
* @function Menu.setIsOptionChecked
* @param {string} menuOption - The name of the menu item to modify.
@ -187,7 +187,7 @@ public slots:
*/
void setIsOptionChecked(const QString& menuOption, bool isChecked);
/**jsdoc
/*@jsdoc
* Triggers a menu item as if the user clicked on it.
* @function Menu.triggerOption
* @param {string} menuOption - The name of the menu item to trigger.
@ -196,7 +196,7 @@ public slots:
*/
void triggerOption(const QString& menuOption);
/**jsdoc
/*@jsdoc
* Checks whether a menu or menu item is enabled. If disabled, the item is grayed out and unusable.
* Menus are enabled by default.
* @function Menu.isMenuEnabled
@ -207,7 +207,7 @@ public slots:
*/
bool isMenuEnabled(const QString& menuName);
/**jsdoc
/*@jsdoc
* Sets a menu or menu item to be enabled or disabled. If disabled, the item is grayed out and unusable.
* @function Menu.setMenuEnabled
* @param {string} menuName - The name of the menu or menu item to modify.
@ -219,7 +219,7 @@ public slots:
void setMenuEnabled(const QString& menuName, bool isEnabled);
signals:
/**jsdoc
/*@jsdoc
* Triggered when a menu item is clicked or triggered by {@link Menu.triggerOption}.
* @function Menu.menuItemEvent
* @param {string} menuItem - Name of the menu item that was clicked or triggered.

View file

@ -18,7 +18,7 @@
#include "../RefreshRateManager.h"
/**jsdoc
/*@jsdoc
* The <code>Performance</code> API provides control and information on graphics performance settings.
*
* @namespace Performance
@ -37,7 +37,7 @@ class PerformanceScriptingInterface : public QObject {
public:
/**jsdoc
/*@jsdoc
* <p>Graphics performance presets.</p>
* <table>
* <thead>
@ -63,7 +63,7 @@ public:
};
Q_ENUM(PerformancePreset)
/**jsdoc
/*@jsdoc
* <p>Refresh rate profile.</p>
* <table>
* <thead>
@ -93,21 +93,21 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Sets graphics performance to a preset.
* @function Performance.setPerformancePreset
* @param {Performance.PerformancePreset} performancePreset - The graphics performance preset to to use.
*/
void setPerformancePreset(PerformancePreset performancePreset);
/**jsdoc
/*@jsdoc
* Gets the current graphics performance preset in use.
* @function Performance.getPerformancePreset
* @returns {Performance.PerformancePreset} The current graphics performance preset in use.
*/
PerformancePreset getPerformancePreset() const;
/**jsdoc
/*@jsdoc
* Gets the names of the graphics performance presets.
* @function Performance.getPerformancePresetNames
* @returns {string[]} The names of the graphics performance presets. The array index values correspond to
@ -116,21 +116,21 @@ public slots:
QStringList getPerformancePresetNames() const;
/**jsdoc
/*@jsdoc
* Sets the curfrent refresh rate profile.
* @function Performance.setRefreshRateProfile
* @param {Performance.RefreshRateProfile} refreshRateProfile - The refresh rate profile.
*/
void setRefreshRateProfile(RefreshRateProfile refreshRateProfile);
/**jsdoc
/*@jsdoc
* Gets the current refresh rate profile in use.
* @function Performance.getRefreshRateProfile
* @returns {Performance.RefreshRateProfile} The refresh rate profile.
*/
RefreshRateProfile getRefreshRateProfile() const;
/**jsdoc
/*@jsdoc
* Gets the names of the refresh rate profiles.
* @function Performance.getRefreshRateProfileNames
* @returns {string[]} The names of the refresh rate profiles. The array index values correspond to
@ -139,7 +139,7 @@ public slots:
QStringList getRefreshRateProfileNames() const;
/**jsdoc
/*@jsdoc
* Gets the current target refresh rate, in Hz, per the current refresh rate profile and refresh rate regime if in desktop
* mode; a higher rate if in VR mode.
* @function Performance.getActiveRefreshRate
@ -147,14 +147,14 @@ public slots:
*/
int getActiveRefreshRate() const;
/**jsdoc
/*@jsdoc
* Gets the current user experience mode.
* @function Performance.getUXMode
* @returns {UXMode} The current user experience mode.
*/
RefreshRateManager::UXMode getUXMode() const;
/**jsdoc
/*@jsdoc
* Gets the current refresh rate regime that's in effect.
* @function Performance.getRefreshRateRegime
* @returns {RefreshRateRegime} The current refresh rate regime.
@ -163,7 +163,7 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the performance preset or refresh rate profile is changed.
* @function Performance.settingsChanged
* @returns {Signal}

View file

@ -14,7 +14,7 @@
class QScriptValue;
/**jsdoc
/*@jsdoc
* The <code>PlatformInfo</code> API provides information about the hardware platform being used.
*
* @namespace PlatformInfo
@ -31,7 +31,7 @@ public:
PlatformInfoScriptingInterface();
virtual ~PlatformInfoScriptingInterface();
/**jsdoc
/*@jsdoc
* <p>The platform tier of a computer is an indication of its rendering capability.</p>
* <table>
* <thead>
@ -56,13 +56,13 @@ public:
Q_ENUM(PlatformTier);
public slots:
/**jsdoc
/*@jsdoc
* @function PlatformInfo.getInstance
* @deprecated This function is deprecated and will be removed.
*/
static PlatformInfoScriptingInterface* getInstance();
/**jsdoc
/*@jsdoc
* Gets the operating system type.
* @function PlatformInfo.getOperatingSystemType
* @returns {string} The operating system type: <code>"WINDOWS"</code>, <code>"MACOS"</code>, or <code>"UNKNOWN"</code>.
@ -71,7 +71,7 @@ public slots:
*/
QString getOperatingSystemType();
/**jsdoc
/*@jsdoc
* Gets information on the CPU model.
* @function PlatformInfo.getCPUBrand
* @returns {string} Information on the CPU.
@ -80,7 +80,7 @@ public slots:
*/
QString getCPUBrand();
/**jsdoc
/*@jsdoc
* Gets the number of logical CPU cores.
* @function PlatformInfo.getNumLogicalCores
* @returns {number} The number of logical CPU cores.
@ -89,7 +89,7 @@ public slots:
*/
unsigned int getNumLogicalCores();
/**jsdoc
/*@jsdoc
* Gets the total amount of usable physical memory, in MB.
* @function PlatformInfo.getTotalSystemMemoryMB
* @returns {number} The total system memory in megabytes.
@ -98,7 +98,7 @@ public slots:
*/
int getTotalSystemMemoryMB();
/**jsdoc
/*@jsdoc
* Gets the model of the graphics card currently being used.
* @function PlatformInfo.getGraphicsCardType
* @returns {string} The model of the graphics card currently being used.
@ -109,21 +109,21 @@ public slots:
*/
QString getGraphicsCardType();
/**jsdoc
/*@jsdoc
* Checks whether Oculus Touch controllers are connected.
* @function PlatformInfo.hasRiftControllers
* @returns {boolean} <code>true</code> if Oculus Touch controllers are connected, <code>false</code> if they aren't.
*/
bool hasRiftControllers();
/**jsdoc
/*@jsdoc
* Checks whether Vive controllers are connected.
* @function PlatformInfo.hasViveControllers
* @returns {boolean} <code>true</code> if Vive controllers are connected, <code>false</code> if they aren't.
*/
bool hasViveControllers();
/**jsdoc
/*@jsdoc
* Checks whether HTML on 3D surfaces (e.g., Web entities) is supported.
* @function PlatformInfo.has3DHTML
* @returns {boolean} <code>true</code> if the current display supports HTML on 3D surfaces, <code>false</code> if it
@ -131,28 +131,28 @@ public slots:
*/
bool has3DHTML();
/**jsdoc
/*@jsdoc
* Checks whether Interface is running on a stand-alone HMD device (CPU incorporated into the HMD display).
* @function PlatformInfo.isStandalone
* @returns {boolean} <code>true</code> if Interface is running on a stand-alone HMD device, <code>false</code> if it isn't.
*/
bool isStandalone();
/**jsdoc
/*@jsdoc
* Gets the number of CPUs.
* @function PlatformInfo.getNumCPUs
* @returns {number} The number of CPUs.
*/
int getNumCPUs();
/**jsdoc
/*@jsdoc
* Gets the index number of the master CPU.
* @function PlatformInfo.getMasterCPU
* @returns {number} The index of the master CPU.
*/
int getMasterCPU();
/**jsdoc
/*@jsdoc
* Gets the platform description of a CPU.
* @function PlatformInfo.getCPU
* @param {number} index - The index number of the CPU.
@ -167,21 +167,21 @@ public slots:
*/
QString getCPU(int index);
/**jsdoc
/*@jsdoc
* Gets the number of GPUs.
* @function PlatformInfo.getNumGPUs
* @returns {number} The number of GPUs.
*/
int getNumGPUs();
/**jsdoc
/*@jsdoc
* Gets the index number of the master GPU.
* @function PlatformInfo.getMasterGPU
* @returns {number} The index of the master GPU.
*/
int getMasterGPU();
/**jsdoc
/*@jsdoc
* Gets the platform description of a GPU.
* @param {number} index - The index number of the GPU.
* @function PlatformInfo.getGPU
@ -196,21 +196,21 @@ public slots:
*/
QString getGPU(int index);
/**jsdoc
/*@jsdoc
* Gets the number of displays.
* @function PlatformInfo.getNumDisplays
* @returns {number} The number of displays.
*/
int getNumDisplays();
/**jsdoc
/*@jsdoc
* Gets the index number of the master display.
* @function PlatformInfo.getMasterDisplay
* @returns {number} The index of the master display.
*/
int getMasterDisplay();
/**jsdoc
/*@jsdoc
* Gets the platform description of a display.
* @param {number} index - The index number of the display.
* @function PlatformInfo.getDisplay
@ -225,7 +225,7 @@ public slots:
*/
QString getDisplay(int index);
/**jsdoc
/*@jsdoc
* Gets the platform description of computer memory.
* @function PlatformInfo.getMemory
* @returns {string} The computer's {@link PlatformInfo.MemoryDescription|MemoryDescription} information as a JSON string.
@ -234,21 +234,21 @@ public slots:
*/
QString getMemory();
/**jsdoc
/*@jsdoc
* Gets the platform description of the computer.
* @function PlatformInfo.getComputer
* @returns {string} The {@link PlatformInfo.ComputerDescription|ComputerDescription} information as a JSON string.
*/
QString getComputer();
/**jsdoc
/*@jsdoc
* Gets the complete description of the computer as a whole.
* @function PlatformInfo.getPlatform
* @returns {string} The {@link PlatformInfo.PlatformDescription|PlatformDescription} information as a JSON string.
*/
QString getPlatform();
/**jsdoc
/*@jsdoc
* Gets the platform tier of the computer, profiled at Interface start-up.
* @function PlatformInfo.getTierProfiled
* @returns {PlatformInfo.PlatformTier} The platform tier of the computer.
@ -259,14 +259,14 @@ public slots:
*/
PlatformTier getTierProfiled();
/**jsdoc
/*@jsdoc
* Gets the names of the possible platform tiers, per {@link PlatformInfo.PlatformTier}.
* @function PlatformInfo.getPlatformTierNames
* @returns {string[]} The names of the possible platform tiers.
*/
QStringList getPlatformTierNames();
/**jsdoc
/*@jsdoc
* Gets whether the current hardware can use deferred rendering.
* @function PlatformInfo.isRenderMethodDeferredCapable
* @returns {boolean} <code>true</code> if the current hardware can use deferred rendering, <code>false</code> if it can't.

View file

@ -14,7 +14,7 @@
#include <display-plugins/DisplayPlugin.h>
/**jsdoc
/*@jsdoc
* The <code>Rates</code> API provides some information on current rendering performance.
*
* @namespace Rates

View file

@ -14,7 +14,7 @@
#include "RenderForward.h"
/**jsdoc
/*@jsdoc
* The <code>Render</code> API enables you to configure the graphics engine.
*
* @namespace Render
@ -43,7 +43,7 @@ public:
static RenderScriptingInterface* getInstance();
/**jsdoc
/*@jsdoc
* <p>The rendering method is specified by the following values:</p>
* <table>
* <thead>
@ -73,7 +73,7 @@ public:
void loadSettings();
public slots:
/**jsdoc
/*@jsdoc
* Gets the configuration for a rendering job by name.
* <p><strong>Warning:</strong> For internal, debugging purposes. Subject to change.</p>
* @function Render.getConfig
@ -83,7 +83,7 @@ public slots:
QObject* getConfig(const QString& name) { return qApp->getRenderEngine()->getConfiguration()->getConfig(name); }
/**jsdoc
/*@jsdoc
* Gets the render method being used.
* @function Render.getRenderMethod
* @returns {Render.RenderMethod} The render method being used.
@ -93,14 +93,14 @@ public slots:
*/
RenderMethod getRenderMethod() const;
/**jsdoc
/*@jsdoc
* Sets the render method to use.
* @function Render.setRenderMethod
* @param {Render.RenderMethod} renderMethod - The render method to use.
*/
void setRenderMethod(RenderMethod renderMethod);
/**jsdoc
/*@jsdoc
* Gets the names of the possible render methods, per {@link Render.RenderMethod}.
* @function Render.getRenderMethodNames
* @returns {string[]} The names of the possible render methods.
@ -114,56 +114,56 @@ public slots:
QStringList getRenderMethodNames() const;
/**jsdoc
/*@jsdoc
* Gets whether or not shadows are enabled.
* @function Render.getShadowsEnabled
* @returns {boolean} <code>true</code> if shadows are enabled, <code>false</code> if they're disabled.
*/
bool getShadowsEnabled() const;
/**jsdoc
/*@jsdoc
* Sets whether or not shadows are enabled.
* @function Render.setShadowsEnabled
* @param {boolean} enabled - <code>true</code> to enable shadows, <code>false</code> to disable.
*/
void setShadowsEnabled(bool enabled);
/**jsdoc
/*@jsdoc
* Gets whether or not ambient occlusion is enabled.
* @function Render.getAmbientOcclusionEnabled
* @returns {boolean} <code>true</code> if ambient occlusion is enabled, <code>false</code> if it's disabled.
*/
bool getAmbientOcclusionEnabled() const;
/**jsdoc
/*@jsdoc
* Sets whether or not ambient occlusion is enabled.
* @function Render.setAmbientOcclusionEnabled
* @param {boolean} enabled - <code>true</code> to enable ambient occlusion, <code>false</code> to disable.
*/
void setAmbientOcclusionEnabled(bool enabled);
/**jsdoc
/*@jsdoc
* Gets whether or not anti-aliasing is enabled.
* @function Render.getAntialiasingEnabled
* @returns {boolean} <code>true</code> if anti-aliasing is enabled, <code>false</code> if it's disabled.
*/
bool getAntialiasingEnabled() const;
/**jsdoc
/*@jsdoc
* Sets whether or not anti-aliasing is enabled.
* @function Render.setAntialiasingEnabled
* @param {boolean} enabled - <code>true</code> to enable anti-aliasing, <code>false</code> to disable.
*/
void setAntialiasingEnabled(bool enabled);
/**jsdoc
/*@jsdoc
* Gets the view port resolution scale.
* @function Render.getViewportResolutionScale
* @returns {number} The view port resolution scale, <code>&gt; 0.0</code>.
*/
float getViewportResolutionScale() const;
/**jsdoc
/*@jsdoc
* Sets the view port resolution scale.
* @function Render.setViewportResolutionScale
* @param {number} resolutionScale - The view port resolution scale to set, <code>&gt; 0.0</code>.
@ -172,7 +172,7 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when one of the <code>Render</code> API's properties changes.
* @function Render.settingsChanged
* @returns {Signal}

View file

@ -43,7 +43,7 @@ bool GameplayObjects::removeFromGameplayObjects(const EntityItemID& entityID) {
SelectionScriptingInterface::SelectionScriptingInterface() {
}
/**jsdoc
/*@jsdoc
* <p>The type of a specific item in a selection list.</p>
* <table>
* <thead>
@ -245,7 +245,7 @@ void SelectionScriptingInterface::printList(const QString& listName) {
}
}
/**jsdoc
/*@jsdoc
* A selection list.
* @typedef {object} Selection.SelectedItemsList
* @property {Uuid[]} avatars - The IDs of the avatars in the selection list.
@ -439,7 +439,7 @@ bool SelectionHighlightStyle::fromVariantMap(const QVariantMap& properties) {
return true;
}
/**jsdoc
/*@jsdoc
* The highlighting style of a selection list.
* @typedef {object} Selection.HighlightStyle
* @property {Color} outlineUnoccludedColor=255,178,51 - Unoccluded outline color.

View file

@ -76,7 +76,7 @@ protected:
render::HighlightStyle _style;
};
/**jsdoc
/*@jsdoc
* The <code>Selection</code> API provides a means of grouping together and highlighting avatars and entities in named lists.
*
* @namespace Selection
@ -124,7 +124,7 @@ class SelectionScriptingInterface : public QObject, public Dependency {
public:
SelectionScriptingInterface();
/**jsdoc
/*@jsdoc
* Gets the names of all current selection lists.
* @function Selection.getListNames
* @returns {string[]} The names of all current selection lists.
@ -133,7 +133,7 @@ public:
*/
Q_INVOKABLE QStringList getListNames() const;
/**jsdoc
/*@jsdoc
* Deletes a selection list.
* @function Selection.removeListFromMap
* @param {string} listName - The name of the selection list to delete.
@ -141,7 +141,7 @@ public:
*/
Q_INVOKABLE bool removeListFromMap(const QString& listName);
/**jsdoc
/*@jsdoc
* Adds an item to a selection list. The list is created if it doesn't exist.
* @function Selection.addToSelectedItemsList
* @param {string} listName - The name of the selection list to add the item to.
@ -152,7 +152,7 @@ public:
*/
Q_INVOKABLE bool addToSelectedItemsList(const QString& listName, const QString& itemType, const QUuid& id);
/**jsdoc
/*@jsdoc
* Removes an item from a selection list.
* @function Selection.removeFromSelectedItemsList
* @param {string} listName - The name of the selection list to remove the item from.
@ -163,7 +163,7 @@ public:
*/
Q_INVOKABLE bool removeFromSelectedItemsList(const QString& listName, const QString& itemType, const QUuid& id);
/**jsdoc
/*@jsdoc
* Removes all items from a selection list.
* @function Selection.clearSelectedItemsList
* @param {string} listName - The name of the selection list.
@ -171,14 +171,14 @@ public:
*/
Q_INVOKABLE bool clearSelectedItemsList(const QString& listName);
/**jsdoc
/*@jsdoc
* Prints the list of avatars and entities in a selection to the program log (but not the Script Log window).
* @function Selection.printList
* @param {string} listName - The name of the selection list.
*/
Q_INVOKABLE void printList(const QString& listName);
/**jsdoc
/*@jsdoc
* Gets the list of avatars and entities in a selection list.
* @function Selection.getSelectedItemsList
* @param {string} listName - The name of the selection list.
@ -186,14 +186,14 @@ public:
*/
Q_INVOKABLE QVariantMap getSelectedItemsList(const QString& listName) const;
/**jsdoc
/*@jsdoc
* Gets the names of all current selection lists that have highlighting enabled.
* @function Selection.getHighlightedListNames
* @returns {string[]} The names of the selection lists that currently have highlighting enabled.
*/
Q_INVOKABLE QStringList getHighlightedListNames() const;
/**jsdoc
/*@jsdoc
* Enables highlighting for a selection list. All items in or subsequently added to the list are displayed with the
* highlight effect specified. The method can be called multiple times with different values in the style to modify the
* highlighting.
@ -205,7 +205,7 @@ public:
*/
Q_INVOKABLE bool enableListHighlight(const QString& listName, const QVariantMap& highlightStyle);
/**jsdoc
/*@jsdoc
* Disables highlighting for a selection list.
* <p>Note: This function implicitly calls {@link Selection.disableListToScene|disableListToScene}.</p>
* @function Selection.disableListHighlight
@ -214,7 +214,7 @@ public:
*/
Q_INVOKABLE bool disableListHighlight(const QString& listName);
/**jsdoc
/*@jsdoc
* Enables scene selection for a selection list. All items in or subsequently added to the list are sent to a scene
* selection in the rendering engine for debugging purposes.
* @function Selection.enableListToScene
@ -223,7 +223,7 @@ public:
*/
Q_INVOKABLE bool enableListToScene(const QString& listName);
/**jsdoc
/*@jsdoc
* Disables scene selection for a selection list.
* @function Selection.disableListToScene
* @param {string} listName - The name of the selection list.
@ -231,7 +231,7 @@ public:
*/
Q_INVOKABLE bool disableListToScene(const QString& listName);
/**jsdoc
/*@jsdoc
* Gets the current highlighting style for a selection list.
* @function Selection.getListHighlightStyle
* @param {string} listName - The name of the selection list.
@ -248,7 +248,7 @@ public:
void onSelectedItemsListChanged(const QString& listName);
signals:
/**jsdoc
/*@jsdoc
* Triggered when a selection list's content changes or the list is deleted.
* @function Selection.selectedItemsListChanged
* @param {string} listName - The name of the selection list that changed.

View file

@ -15,7 +15,7 @@
#include <QObject>
#include <QString>
/**jsdoc
/*@jsdoc
* The <code>Settings</code> API provides a facility to store and retrieve values that persist between Interface runs.
*
* @namespace Settings
@ -32,7 +32,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Retrieves the value from a named setting.
* @function Settings.getValue
* @param {string} key - The name of the setting.
@ -49,7 +49,7 @@ public slots:
QVariant getValue(const QString& setting);
QVariant getValue(const QString& setting, const QVariant& defaultValue);
/**jsdoc
/*@jsdoc
* Stores a value in a named setting. If the setting already exists, its value is overwritten. If the value is
* <code>null</code> or <code>undefined</code>, the setting is deleted.
* @function Settings.setValue

View file

@ -25,64 +25,64 @@ public:
public slots:
static TestScriptingInterface* getInstance();
/**jsdoc
/*@jsdoc
* Exits the application
* @function Test.quit
*/
void quit();
/**jsdoc
/*@jsdoc
* Waits for all texture transfers to be complete
* @function Test.waitForTextureIdle
*/
void waitForTextureIdle();
/**jsdoc
/*@jsdoc
* Waits for all pending downloads to be complete
* @function Test.waitForDownloadIdle
*/
void waitForDownloadIdle();
/**jsdoc
/*@jsdoc
* Waits for all file parsing operations to be complete
* @function Test.waitForProcessingIdle
*/
void waitForProcessingIdle();
/**jsdoc
/*@jsdoc
* Waits for all pending downloads, parsing and texture transfers to be complete
* @function Test.waitIdle
*/
void waitIdle();
/**jsdoc
/*@jsdoc
* Waits for establishment of connection to server
* @function Test.waitForConnection
* @param {int} maxWaitMs [default=10000] - Number of milliseconds to wait
*/
bool waitForConnection(qint64 maxWaitMs = 10000);
/**jsdoc
/*@jsdoc
* Waits a specific number of milliseconds
* @function Test.wait
* @param {int} milliseconds - Number of milliseconds to wait
*/
void wait(int milliseconds);
/**jsdoc
/*@jsdoc
* Waits for all pending downloads, parsing and texture transfers to be complete
* @function Test.loadTestScene
* @param {string} sceneFile - URL of scene to load
*/
bool loadTestScene(QString sceneFile);
/**jsdoc
/*@jsdoc
* Clears all caches
* @function Test.clear
*/
void clear();
/**jsdoc
/*@jsdoc
* Start recording Chrome compatible tracing events
* logRules can be used to specify a set of logging category rules to limit what gets captured
* @function Test.startTracing
@ -90,7 +90,7 @@ public slots:
*/
bool startTracing(QString logrules = "");
/**jsdoc
/*@jsdoc
* Stop recording Chrome compatible tracing events and serialize recorded events to a file
* Using a filename with a .gz extension will automatically compress the output file
* @function Test.stopTracing
@ -99,14 +99,14 @@ public slots:
*/
bool stopTracing(QString filename);
/**jsdoc
/*@jsdoc
* Starts a specific trace event
* @function Test.startTraceEvent
* @param {string} name - Name of event
*/
void startTraceEvent(QString name);
/**jsdoc
/*@jsdoc
* Stop a specific name event
* Using a filename with a .gz extension will automatically compress the output file
* @function Test.endTraceEvent
@ -114,14 +114,14 @@ public slots:
*/
void endTraceEvent(QString name);
/**jsdoc
/*@jsdoc
* Write detailed timing stats of next physics stepSimulation() to filename
* @function Test.savePhysicsSimulationStats
* @param {string} filename - Name of file to save to
*/
void savePhysicsSimulationStats(QString filename);
/**jsdoc
/*@jsdoc
* Profiles a specific function
* @function Test.savePhysicsSimulationStats
* @param {string} name - Name used to reference the function
@ -129,13 +129,13 @@ public slots:
*/
Q_INVOKABLE void profileRange(const QString& name, QScriptValue function);
/**jsdoc
/*@jsdoc
* Clear all caches (menu command Reload Content)
* @function Test.clearCaches
*/
void clearCaches();
/**jsdoc
/*@jsdoc
* Save a JSON object to a file in the test results location
* @function Test.saveObject
* @param {string} name - Name of the object
@ -143,34 +143,34 @@ public slots:
*/
void saveObject(QVariant v, const QString& filename);
/**jsdoc
/*@jsdoc
* Maximizes the window
* @function Test.showMaximized
*/
void showMaximized();
/**jsdoc
/*@jsdoc
* Values higher than 0 will create replicas of other-avatars when entering a domain for testing purpouses
* @function Test.setOtherAvatarsReplicaCount
* @param {number} count - Number of replicas we want to create
*/
Q_INVOKABLE void setOtherAvatarsReplicaCount(int count);
/**jsdoc
/*@jsdoc
* Return the number of replicas that are being created of other-avatars when entering a domain
* @function Test.getOtherAvatarsReplicaCount
* @returns {number} Current number of replicas of other-avatars.
*/
Q_INVOKABLE int getOtherAvatarsReplicaCount();
/**jsdoc
/*@jsdoc
* Set number of cycles texture size is required to be stable
* @function Test.setMinimumGPUTextureMemStabilityCount
* @param {number} count - Number of cycles to wait
*/
Q_INVOKABLE void setMinimumGPUTextureMemStabilityCount(int count);
/**jsdoc
/*@jsdoc
* Check whether all textures have been loaded.
* @function Test.isTextureLoadingComplete
* @returns {boolean} <code>true</code> texture memory usage is not increasing

View file

@ -29,7 +29,7 @@ public:
CheckoutProxy(QObject* qmlObject, QObject* parent = nullptr);
};
/**jsdoc
/*@jsdoc
* The <code>WalletScriptingInterface</code> API provides functions related to the user's wallet and verification of certified
* avatar entities.
*
@ -54,13 +54,13 @@ public:
WalletScriptingInterface();
/**jsdoc
/*@jsdoc
* Checks and updates the user's wallet status.
* @function WalletScriptingInterface.refreshWalletStatus
*/
Q_INVOKABLE void refreshWalletStatus();
/**jsdoc
/*@jsdoc
* Gets the current status of the user's wallet.
* @function WalletScriptingInterface.getWalletStatus
* @returns {WalletScriptingInterface.WalletStatus}
@ -70,7 +70,7 @@ public:
*/
Q_INVOKABLE uint getWalletStatus() { return _walletStatus; }
/**jsdoc
/*@jsdoc
* Check that a certified avatar entity is owned by the avatar whose entity it is. The result of the check is provided via
* the {@link WalletScriptingInterface.ownershipVerificationSuccess|ownershipVerificationSuccess} and
* {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals.
@ -117,7 +117,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the user's wallet status changes.
* @function WalletScriptingInterface.walletStatusChanged
* @returns {Signal}
@ -128,14 +128,14 @@ signals:
*/
void walletStatusChanged();
/**jsdoc
/*@jsdoc
* Triggered when the user's limited commerce status changes.
* @function WalletScriptingInterface.limitedCommerceChanged
* @returns {Signal}
*/
void limitedCommerceChanged();
/**jsdoc
/*@jsdoc
* Triggered when the user rezzes a certified entity but the user's wallet is not ready. So the certified location of the
* entity cannot be updated in the metaverse.
* @function WalletScriptingInterface.walletNotSetup
@ -143,7 +143,7 @@ signals:
*/
void walletNotSetup();
/**jsdoc
/*@jsdoc
* Triggered when a certified avatar entity's ownership check requested via
* {@link WalletScriptingInterface.proveAvatarEntityOwnershipVerification|proveAvatarEntityOwnershipVerification} or
* {@link ContextOverlay.requestOwnershipVerification} succeeds.
@ -153,7 +153,7 @@ signals:
*/
void ownershipVerificationSuccess(const QUuid& entityID);
/**jsdoc
/*@jsdoc
* Triggered when a certified avatar entity's ownership check requested via
* {@link WalletScriptingInterface.proveAvatarEntityOwnershipVerification|proveAvatarEntityOwnershipVerification} or
* {@link ContextOverlay.requestOwnershipVerification} fails.

View file

@ -517,7 +517,7 @@ int WindowScriptingInterface::openMessageBox(QString title, QString text, int bu
return createMessageBox(title, text, buttons, defaultButton);
}
/**jsdoc
/*@jsdoc
* <p>The buttons that may be included in a message box created by {@link Window.openMessageBox|openMessageBox} are defined by
* numeric values:
* <table>

View file

@ -22,7 +22,7 @@
#include <DependencyManager.h>
/**jsdoc
/*@jsdoc
* The <code>Window</code> API provides various facilities not covered elsewhere, including: window dimensions, window focus,
* camera view, announcements, user connections, common dialog boxes, snapshots, file import, domain navigation, domain changes,
* domain physics, OS clipboard, build number.
@ -64,27 +64,27 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Checks whether the Interface window has focus.
* @function Window.hasFocus
* @returns {boolean} <code>true</code> if the Interface window has focus, <code>false</code> if it doesn't.
*/
QScriptValue hasFocus();
/**jsdoc
/*@jsdoc
* Makes the Interface window have focus. On Windows, if Interface doesn't already have focus, the task bar icon flashes to
* indicate that Interface wants attention but focus isn't taken away from the application that the user is using.
* @function Window.setFocus
*/
void setFocus();
/**jsdoc
/*@jsdoc
* Raises the Interface window if it is minimized. If raised, the window gains focus.
* @function Window.raise
*/
void raise();
/**jsdoc
/*@jsdoc
* Displays a dialog with the specified message and an "OK" button. The dialog is non-modal; the script continues without
* waiting for a user response.
* @function Window.alert
@ -95,7 +95,7 @@ public slots:
*/
void alert(const QString& message = "");
/**jsdoc
/*@jsdoc
* Prompts the user to confirm something. Displays a modal dialog with a message plus "Yes" and "No" buttons.
* @function Window.confirm
* @param {string} [message=""] - The question to display.
@ -106,7 +106,7 @@ public slots:
*/
QScriptValue confirm(const QString& message = "");
/**jsdoc
/*@jsdoc
* Prompts the user to enter some text. Displays a modal dialog with a message and a text box, plus "OK" and "Cancel"
* buttons.
* @function Window.prompt
@ -123,7 +123,7 @@ public slots:
*/
QScriptValue prompt(const QString& message, const QString& defaultText);
/**jsdoc
/*@jsdoc
* Prompts the user to enter some text. Displays a non-modal dialog with a message and a text box, plus "OK" and "Cancel"
* buttons. A {@link Window.promptTextChanged|promptTextChanged} signal is emitted when the user OKs the dialog; no signal
* is emitted if the user cancels the dialog.
@ -141,7 +141,7 @@ public slots:
*/
void promptAsync(const QString& message = "", const QString& defaultText = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose a directory. Displays a modal dialog that navigates the directory tree.
* @function Window.browseDir
* @param {string} [title=""] - The title to display at the top of the dialog.
@ -153,7 +153,7 @@ public slots:
*/
QScriptValue browseDir(const QString& title = "", const QString& directory = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose a directory. Displays a non-modal dialog that navigates the directory tree. A
* {@link Window.browseDirChanged|browseDirChanged} signal is emitted when a directory is chosen; no signal is emitted if
* the user cancels the dialog.
@ -171,7 +171,7 @@ public slots:
*/
void browseDirAsync(const QString& title = "", const QString& directory = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose a file. Displays a modal dialog that navigates the directory tree.
* @function Window.browse
* @param {string} [title=""] - The title to display at the top of the dialog.
@ -185,7 +185,7 @@ public slots:
*/
QScriptValue browse(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose a file. Displays a non-modal dialog that navigates the directory tree. A
* {@link Window.browseChanged|browseChanged} signal is emitted when a file is chosen; no signal is emitted if the user
* cancels the dialog.
@ -205,7 +205,7 @@ public slots:
*/
void browseAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Prompts the user to specify the path and name of a file to save to. Displays a modal dialog that navigates the directory
* tree and allows the user to type in a file name.
* @function Window.save
@ -221,7 +221,7 @@ public slots:
*/
QScriptValue save(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Prompts the user to specify the path and name of a file to save to. Displays a non-modal dialog that navigates the
* directory tree and allows the user to type in a file name. A {@link Window.saveFileChanged|saveFileChanged} signal is
* emitted when a file is specified; no signal is emitted if the user cancels the dialog.
@ -241,7 +241,7 @@ public slots:
*/
void saveAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose an Asset Server item. Displays a modal dialog that navigates the tree of assets on the Asset
* Server.
* @function Window.browseAssets
@ -256,7 +256,7 @@ public slots:
*/
QScriptValue browseAssets(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Prompts the user to choose an Asset Server item. Displays a non-modal dialog that navigates the tree of assets on the
* Asset Server. An {@link Window.assetsDirChanged|assetsDirChanged} signal is emitted when an asset is chosen; no signal is
* emitted if the user cancels the dialog.
@ -276,7 +276,7 @@ public slots:
*/
void browseAssetsAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = "");
/**jsdoc
/*@jsdoc
* Opens the Asset Browser dialog. If a file to upload is specified, the user is prompted to enter the folder and name to
* map the file to on the asset server.
* @function Window.showAssetServer
@ -288,35 +288,35 @@ public slots:
*/
void showAssetServer(const QString& upload = "");
/**jsdoc
/*@jsdoc
* Gets Interface's build number.
* @function Window.checkVersion
* @returns {string} Interface's build number.
*/
QString checkVersion();
/**jsdoc
/*@jsdoc
* Gets Interface's user agent.
* @function Window.getUserAgent
* @returns {string} Interface's user agent.
*/
QString getUserAgent();
/**jsdoc
/*@jsdoc
* Gets the signature for Interface's protocol version.
* @function Window.protocolSignature
* @returns {string} A string uniquely identifying the version of the metaverse protocol that Interface is using.
*/
QString protocolSignature();
/**jsdoc
/*@jsdoc
* Copies text to the operating system's clipboard.
* @function Window.copyToClipboard
* @param {string} text - The text to copy to the operating system's clipboard.
*/
void copyToClipboard(const QString& text);
/**jsdoc
/*@jsdoc
* Takes a snapshot of the current Interface view from the primary camera. When a still image only is captured,
* {@link Window.stillSnapshotTaken|stillSnapshotTaken} is emitted; when a still image plus moving images are captured,
* {@link Window.processingGifStarted|processingGifStarted} and {@link Window.processingGifCompleted|processingGifCompleted}
@ -364,7 +364,7 @@ public slots:
*/
void takeSnapshot(bool notify = true, bool includeAnimated = false, float aspectRatio = 0.0f, const QString& filename = QString());
/**jsdoc
/*@jsdoc
* Takes a still snapshot of the current view from the secondary camera that can be set up through the {@link Render} API.
* <p>Snapshots are saved to the path specified in Settings &gt; General &gt; Snapshots, which can be accessed via the
* {@link Snapshot} API.</p>
@ -379,7 +379,7 @@ public slots:
*/
void takeSecondaryCameraSnapshot(const bool& notify = true, const QString& filename = QString());
/**jsdoc
/*@jsdoc
* Takes a 360&deg; snapshot at a given position for the secondary camera. The secondary camera does not need to have been
* set up.
* <p>Snapshots are saved to the path specified in Settings &gt; General &gt; Snapshots, which can be accessed via the
@ -398,7 +398,7 @@ public slots:
*/
void takeSecondaryCamera360Snapshot(const glm::vec3& cameraPosition, const bool& cubemapOutputFormat = false, const bool& notify = true, const QString& filename = QString());
/**jsdoc
/*@jsdoc
* Emits a {@link Window.connectionAdded|connectionAdded} or a {@link Window.connectionError|connectionError} signal that
* indicates whether or not a user connection was successfully made using the Web API.
* @function Window.makeConnection
@ -408,7 +408,7 @@ public slots:
*/
void makeConnection(bool success, const QString& userNameOrError);
/**jsdoc
/*@jsdoc
* Displays a notification message. Notifications are displayed in panels by the default script, nofications.js. An
* {@link Window.announcement|announcement} signal is emitted when this function is called.
* @function Window.displayAnnouncement
@ -424,7 +424,7 @@ public slots:
*/
void displayAnnouncement(const QString& message);
/**jsdoc
/*@jsdoc
* Prepares a snapshot ready for sharing. A {@link Window.snapshotShared|snapshotShared} signal is emitted when the snapshot
* has been prepared.
* @function Window.shareSnapshot
@ -433,7 +433,7 @@ public slots:
*/
void shareSnapshot(const QString& path, const QUrl& href = QUrl(""));
/**jsdoc
/*@jsdoc
* Checks to see if physics is active for you in the domain you're visiting - there is a delay between your arrival at a
* domain and physics becoming active for you in that domain.
* @function Window.isPhysicsEnabled
@ -456,7 +456,7 @@ public slots:
*/
bool isPhysicsEnabled();
/**jsdoc
/*@jsdoc
* Sets what to show on the PC display. For entity camera view, the entity camera is configured using
* {@link Camera.setCameraEntity} and {@link Camera|Camera.mode}.
* @function Window.setDisplayTexture
@ -465,7 +465,7 @@ public slots:
*/
bool setDisplayTexture(const QString& name);
/**jsdoc
/*@jsdoc
* Checks if a 2D point is within the desktop window if in desktop mode, or the drawable area of the HUD overlay if in HMD
* mode.
* @function Window.isPointOnDesktopWindow
@ -474,21 +474,21 @@ public slots:
*/
bool isPointOnDesktopWindow(QVariant point);
/**jsdoc
/*@jsdoc
* Gets the size of the drawable area of the Interface window if in desktop mode or the HMD rendering surface if in HMD mode.
* @function Window.getDeviceSize
* @returns {Vec2} The width and height of the Interface window or HMD rendering surface, in pixels.
*/
glm::vec2 getDeviceSize() const;
/**jsdoc
/*@jsdoc
* Gets the last domain connection error when a connection is refused.
* @function Window.getLastDomainConnectionError
* @returns {Window.ConnectionRefusedReason} Integer number that enumerates the last domain connection refused.
*/
int getLastDomainConnectionError() const;
/**jsdoc
/*@jsdoc
* Opens a non-modal message box that can have a variety of button combinations. See also,
* {@link Window.updateMessageBox|updateMessageBox} and {@link Window.closeMessageBox|closeMessageBox}.
* @function Window.openMessageBox
@ -520,7 +520,7 @@ public slots:
*/
int openMessageBox(QString title, QString text, int buttons, int defaultButton);
/**jsdoc
/*@jsdoc
* Opens a URL in the Interface window or other application, depending on the URL's scheme. The following schemes are
* supported:
* <ul>
@ -534,7 +534,7 @@ public slots:
*/
void openUrl(const QUrl& url);
/**jsdoc
/*@jsdoc
* Opens an Android activity and optionally return back to the scene when the activity is completed. <em>Android only.</em>
* @function Window.openAndroidActivity
* @param {string} activityName - The name of the activity to open: one of <code>"Home"</code>, <code>"Login"</code>, or
@ -544,7 +544,7 @@ public slots:
*/
void openAndroidActivity(const QString& activityName, const bool backToScene);
/**jsdoc
/*@jsdoc
* Updates the content of a message box that was opened with {@link Window.openMessageBox|openMessageBox}.
* @function Window.updateMessageBox
* @param {number} id - The ID of the message box.
@ -556,28 +556,28 @@ public slots:
*/
void updateMessageBox(int id, QString title, QString text, int buttons, int defaultButton);
/**jsdoc
/*@jsdoc
* Closes a message box that was opened with {@link Window.openMessageBox|openMessageBox}.
* @function Window.closeMessageBox
* @param {number} id - The ID of the message box.
*/
void closeMessageBox(int id);
/**jsdoc
/*@jsdoc
* @function Window.domainLoadingProgress
* @returns {number} Progress.
* @deprecated This function is deprecated and will be removed.
*/
float domainLoadingProgress();
/**jsdoc
/*@jsdoc
* Gets the number of display plugins currently available.
* @function Window.getDisplayPluginCount
* @returns {number} The number of display plugins currently available.
*/
int getDisplayPluginCount();
/**jsdoc
/*@jsdoc
* Gets the name of a display plugin.
* @function Window.getDisplayPluginName
* @param {number} index - The index of the display plugin. Must be less than the value returned by
@ -590,7 +590,7 @@ public slots:
*/
QString getDisplayPluginName(int index);
/**jsdoc
/*@jsdoc
* Checks whether a display plugin is an HMD.
* @function Window.isDisplayPluginHmd
* @param {number} index - The index of the display plugin. Must be less than the value returned by
@ -599,7 +599,7 @@ public slots:
*/
bool isDisplayPluginHmd(int index);
/**jsdoc
/*@jsdoc
* Gets the index of the currently active display plugin.
* @function Window.getActiveDisplayPlugin
* @returns {number} The index of the currently active display plugin. The first display plugin has an index of
@ -607,7 +607,7 @@ public slots:
*/
int getActiveDisplayPlugin();
/**jsdoc
/*@jsdoc
* Sets the currently active display plugin.
* @function Window.setActiveDisplayPlugin
* @param {number} index - The index of the display plugin. Must be less than the value returned by
@ -615,7 +615,7 @@ public slots:
*/
void setActiveDisplayPlugin(int index);
/**jsdoc
/*@jsdoc
* Opens an Interface web browser window.
* @function Window.openWebBrowser
* @param {string} [url=""] - The URL of the web page to display.
@ -630,7 +630,7 @@ private slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when you change the domain you're visiting.
* <p><strong>Warning:</strong> Is not emitted if you go to a domain that isn't running.</p>
* @function Window.domainChanged
@ -645,7 +645,7 @@ signals:
*/
void domainChanged(QUrl domainURL);
/**jsdoc
/*@jsdoc
* Triggered when you try to navigate to a *.json, *.svo, or *.svo.json URL in a Web browser within Interface.
* @function Window.svoImportRequested
* @param {string} url - The URL of the file to import.
@ -653,7 +653,7 @@ signals:
*/
void svoImportRequested(const QString& url);
/**jsdoc
/*@jsdoc
* Triggered when you try to visit a domain but are refused connection.
* @function Window.domainConnectionRefused
* @param {string} reasonMessage - A description of the refusal.
@ -663,7 +663,7 @@ signals:
*/
void domainConnectionRefused(const QString& reasonMessage, int reasonCode, const QString& extraInfo);
/**jsdoc
/*@jsdoc
* Triggered when you try to visit a domain but are redirected into the error state.
* @function Window.redirectErrorStateChanged
* @param {boolean} isInErrorState - <code>true</code> if the user has been redirected to the error URL, <code>false</code>
@ -672,7 +672,7 @@ signals:
*/
void redirectErrorStateChanged(bool isInErrorState);
/**jsdoc
/*@jsdoc
* Triggered when the interstitial mode changes.
* @function Window.interstitialModeChanged
* @param {boolean} interstitialMode - <code>true</code> if the interstitial graphics are displayed when the domain is
@ -681,7 +681,7 @@ signals:
*/
void interstitialModeChanged(bool interstitialMode);
/**jsdoc
/*@jsdoc
* Triggered when a still snapshot has been taken by calling {@link Window.takeSnapshot|takeSnapshot} with
* <code>includeAnimated = false</code> or {@link Window.takeSecondaryCameraSnapshot|takeSecondaryCameraSnapshot}.
* @function Window.stillSnapshotTaken
@ -692,7 +692,7 @@ signals:
*/
void stillSnapshotTaken(const QString& pathStillSnapshot, bool notify);
/**jsdoc
/*@jsdoc
* Triggered when a still 360&deg; snapshot has been taken by calling
* {@link Window.takeSecondaryCamera360Snapshot|takeSecondaryCamera360Snapshot}.
* @function Window.snapshot360Taken
@ -703,7 +703,7 @@ signals:
*/
void snapshot360Taken(const QString& path360Snapshot, bool notify);
/**jsdoc
/*@jsdoc
* Triggered when a snapshot submitted via {@link Window.shareSnapshot|shareSnapshot} is ready for sharing. The snapshot
* may then be shared via the {@link Account.metaverseServerURL} Web API.
* @function Window.snapshotShared
@ -714,7 +714,7 @@ signals:
*/
void snapshotShared(bool isError, const QString& reply);
/**jsdoc
/*@jsdoc
* Triggered when the snapshot images have been captured by {@link Window.takeSnapshot|takeSnapshot} and the GIF is
* starting to be processed.
* @function Window.processingGifStarted
@ -723,7 +723,7 @@ signals:
*/
void processingGifStarted(const QString& pathStillSnapshot);
/**jsdoc
/*@jsdoc
* Triggered when a GIF has been prepared of the snapshot images captured by {@link Window.takeSnapshot|takeSnapshot}.
* @function Window.processingGifCompleted
* @param {string} pathAnimatedSnapshot - The path and name of the moving snapshot GIF file.
@ -732,7 +732,7 @@ signals:
void processingGifCompleted(const QString& pathAnimatedSnapshot);
/**jsdoc
/*@jsdoc
* Triggered when you've successfully made a user connection.
* @function Window.connectionAdded
* @param {string} message - A description of the success.
@ -740,7 +740,7 @@ signals:
*/
void connectionAdded(const QString& connectionName);
/**jsdoc
/*@jsdoc
* Triggered when you failed to make a user connection.
* @function Window.connectionError
* @param {string} message - A description of the error.
@ -748,7 +748,7 @@ signals:
*/
void connectionError(const QString& errorString);
/**jsdoc
/*@jsdoc
* Triggered when a message is announced by {@link Window.displayAnnouncement|displayAnnouncement}.
* @function Window.announcement
* @param {string} message - The message text.
@ -757,7 +757,7 @@ signals:
void announcement(const QString& message);
/**jsdoc
/*@jsdoc
* Triggered when the user closes a message box that was opened with {@link Window.openMessageBox|openMessageBox}.
* @function Window.messageBoxClosed
* @param {number} id - The ID of the message box that was closed.
@ -767,7 +767,7 @@ signals:
*/
void messageBoxClosed(int id, int button);
/**jsdoc
/*@jsdoc
* Triggered when the user chooses a directory in a {@link Window.browseDirAsync|browseDirAsync} dialog.
* @function Window.browseDirChanged
* @param {string} directory - The directory the user chose in the dialog.
@ -775,7 +775,7 @@ signals:
*/
void browseDirChanged(QString browseDir);
/**jsdoc
/*@jsdoc
* Triggered when the user chooses an asset in a {@link Window.browseAssetsAsync|browseAssetsAsync} dialog.
* @function Window.assetsDirChanged
* @param {string} asset - The path and name of the asset the user chose in the dialog.
@ -783,7 +783,7 @@ signals:
*/
void assetsDirChanged(QString assetsDir);
/**jsdoc
/*@jsdoc
* Triggered when the user specifies a file in a {@link Window.saveAsync|saveAsync} dialog.
* @function Window.saveFileChanged
* @param {string} filename - The path and name of the file that the user specified in the dialog.
@ -791,7 +791,7 @@ signals:
*/
void saveFileChanged(QString filename);
/**jsdoc
/*@jsdoc
* Triggered when the user chooses a file in a {@link Window.browseAsync|browseAsync} dialog.
* @function Window.browseChanged
* @param {string} filename - The path and name of the file the user chose in the dialog.
@ -799,7 +799,7 @@ signals:
*/
void browseChanged(QString filename);
/**jsdoc
/*@jsdoc
* Triggered when the user OKs a {@link Window.promptAsync|promptAsync} dialog.
* @function Window.promptTextChanged
* @param {string} text - The text the user entered in the dialog.
@ -808,7 +808,7 @@ signals:
void promptTextChanged(QString text);
/**jsdoc
/*@jsdoc
* Triggered when the position or size of the Interface window changes.
* @function Window.geometryChanged
* @param {Rect} geometry - The position and size of the drawable area of the Interface window.
@ -823,7 +823,7 @@ signals:
void geometryChanged(QRect geometry);
/**jsdoc
/*@jsdoc
* Triggered when "minimized" state of the Interface window changes.
* @function Window.minimizedChanged
* @param {boolean} isMinimized - <code>true</code> if the Interface window is minimized, <code>false</code> if it isn't.

View file

@ -23,7 +23,7 @@ class AvatarInputs : public QObject {
Q_OBJECT
HIFI_QML_DECL
/**jsdoc
/*@jsdoc
* The <code>AvatarInputs</code> API provides facilities to manage user inputs.
*
* @namespace AvatarInputs
@ -61,7 +61,7 @@ class AvatarInputs : public QObject {
public:
static AvatarInputs* getInstance();
/**jsdoc
/*@jsdoc
* Converts non-linear audio loudness to a linear audio level.
* @function AvatarInputs.loudnessToAudioLevel
* @param {number} loudness - The non-linear audio loudness.
@ -78,7 +78,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Sets whether or not the microphone mute button and audio level meter is shown.
* @function AvatarInputs.setShowAudioTools
* @param {boolean} showAudioTools - <code>true</code> to show the microphone mute button and audio level meter,
@ -86,7 +86,7 @@ public slots:
*/
void setShowAudioTools(bool showAudioTools);
/**jsdoc
/*@jsdoc
* Sets whether or not the privacy shield button is shown.
* @function AvatarInputs.setShowBubbleTools
* @param {boolean} showBubbleTools - <code>true</code> to show the privacy shield button, <code>false</code> to hide it.
@ -95,28 +95,28 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when webcam face tracking is enabled or disabled.
* @deprecated This signal is deprecated and has been removed.
* @function AvatarInputs.cameraEnabledChanged
* @returns {Signal}
*/
/**jsdoc
/*@jsdoc
* Triggered when webcam face tracking is muted (temporarily disabled) or unmuted.
* @deprecated This signal is deprecated and has been removed.
* @function AvatarInputs.cameraMutedChanged
* @returns {Signal}
*/
/**jsdoc
/*@jsdoc
* Triggered when the display mode changes between desktop and HMD.
* @function AvatarInputs.isHMDChanged
* @returns {Signal}
*/
void isHMDChanged();
/**jsdoc
/*@jsdoc
* Triggered when the visibility of the microphone mute button and audio level meter changes.
* @function AvatarInputs.showAudioToolsChanged
* @param {boolean} show - <code>true</code> if the microphone mute button and audio level meter are shown,
@ -125,7 +125,7 @@ signals:
*/
void showAudioToolsChanged(bool show);
/**jsdoc
/*@jsdoc
* Triggered when the visibility of the privacy shield button changes.
* @function AvatarInputs.showBubbleToolsChanged
* @param {boolean} show - <code>true</code> if the privacy shield UI button is shown, <code>false</code> if
@ -134,7 +134,7 @@ signals:
*/
void showBubbleToolsChanged(bool show);
/**jsdoc
/*@jsdoc
* Triggered when another user enters the privacy shield.
* @function AvatarInputs.avatarEnteredIgnoreRadius
* @param {QUuid} avatarID - The session ID of the user that entered the privacy shield.
@ -146,7 +146,7 @@ signals:
*/
void avatarEnteredIgnoreRadius(QUuid avatarID);
/**jsdoc
/*@jsdoc
* Triggered when another user leaves the privacy shield.
* <p><strong>Note:</strong> Currently doesn't work.</p>
* @function AvatarInputs.avatarLeftIgnoreRadius
@ -156,7 +156,7 @@ signals:
*/
void avatarLeftIgnoreRadius(QUuid avatarID);
/**jsdoc
/*@jsdoc
* Triggered when the privacy shield is enabled or disabled.
* @function AvatarInputs.ignoreRadiusEnabledChanged
* @param {boolean} enabled - <code>true</code> if the privacy shield is enabled, <code>false</code> if it is disabled.
@ -164,7 +164,7 @@ signals:
*/
void ignoreRadiusEnabledChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when another user enters the privacy shield.
* @function AvatarInputs.enteredIgnoreRadiusChanged
* @returns {Signal}
@ -173,13 +173,13 @@ signals:
protected:
/**jsdoc
/*@jsdoc
* Resets sensors, audio, avatar animations, and the avatar rig.
* @function AvatarInputs.resetSensors
*/
Q_INVOKABLE void resetSensors();
/**jsdoc
/*@jsdoc
* Toggles the muting (temporary disablement) of webcam face tracking on/off.
* <p class="important">Deprecated: This function is deprecated and has been removed.</p>
* @function AvatarInputs.toggleCameraMute

View file

@ -128,7 +128,7 @@ void InteractiveWindow::emitMainWindowResizeEvent() {
emit qApp->getWindow()->windowGeometryChanged(qApp->getWindow()->geometry());
}
/**jsdoc
/*@jsdoc
* Property values used when creating an <code>InteractiveWindow</code>.
* @typedef {object} InteractiveWindow.WindowProperties
* @property {string} [title="InteractiveWindow] - The title of the window.
@ -151,7 +151,7 @@ void InteractiveWindow::emitMainWindowResizeEvent() {
* pixels. Excludes the window frame.
* @property {boolean} [isFullScreenWindow] - <code>true</code> to make the window full screen.
*/
/**jsdoc
/*@jsdoc
* <p>A set of flags customizing <code>InteractiveWindow</code> controls. The value is constructed by using the <code>|</code>
* (bitwise OR) operator on the individual flag values.</code>.</p>
* <table>
@ -212,7 +212,7 @@ InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap
//add any whitelisted callbacks
OffscreenUi::applyWhiteList(sourceUrl, quickView->rootContext());
/**jsdoc
/*@jsdoc
* Configures how a <code>NATIVE</code> window is displayed.
* @typedef {object} InteractiveWindow.PresentationWindowInfo
* @property {InteractiveWindow.DockArea} dockArea - The edge of the Interface window to dock to.

View file

@ -55,7 +55,7 @@ signals:
namespace InteractiveWindowEnums {
Q_NAMESPACE
/**jsdoc
/*@jsdoc
* <p>A set of flags controlling <code>InteractiveWindow</code> behavior. The value is constructed by using the
* <code>|</code> (bitwise OR) operator on the individual flag values.</p>
* <table>
@ -76,7 +76,7 @@ namespace InteractiveWindowEnums {
};
Q_ENUM_NS(InteractiveWindowFlags);
/**jsdoc
/*@jsdoc
* <p>A display mode for an <code>InteractiveWindow</code>.</p>
* <table>
* <thead>
@ -97,7 +97,7 @@ namespace InteractiveWindowEnums {
};
Q_ENUM_NS(InteractiveWindowPresentationMode);
/**jsdoc
/*@jsdoc
* <p>A docking location of an <code>InteractiveWindow</code>.</p>
* <table>
* <thead>
@ -120,7 +120,7 @@ namespace InteractiveWindowEnums {
};
Q_ENUM_NS(DockArea);
/**jsdoc
/*@jsdoc
* <p>The anchor for a relative position of an <code>InteractiveWindow</code>.</p>
* <table>
* <thead>
@ -150,7 +150,7 @@ namespace InteractiveWindowEnums {
using namespace InteractiveWindowEnums;
/**jsdoc
/*@jsdoc
* An <code>InteractiveWindow</code> can display either inside Interface or in its own window separate from the Interface
* window. The window content is defined by a QML file, which can optionally include a <code>WebView</code> control that embeds
* an HTML web page. (The <code>WebView</code> control is defined by a "WebView.qml" file included in the Interface install.)
@ -229,7 +229,7 @@ private:
public slots:
/**jsdoc
/*@jsdoc
* Sends a message to the QML page. To receive the message, the QML page must implement a function:
* <pre class="prettyprint"><code>function fromScript(message) {
* ...
@ -278,7 +278,7 @@ public slots:
// Scripts can use this to send a message to the QML object
void sendToQml(const QVariant& message);
/**jsdoc
/*@jsdoc
* Sends a message to an embedded HTML web page. To receive the message, the HTML page's script must connect to the
* <code>EventBridge</code> that is automatically provided for the script:
* <pre class="prettyprint"><code>EventBridge.scriptEventReceived.connect(function(message) {
@ -290,26 +290,26 @@ public slots:
// QmlWindow content may include WebView requiring EventBridge.
void emitScriptEvent(const QVariant& scriptMessage);
/**jsdoc
/*@jsdoc
* @function InteractiveWindow.emitWebEvent
* @param {object|string} message - Message.
* @deprecated This function is deprecated and will be removed.
*/
void emitWebEvent(const QVariant& webMessage);
/**jsdoc
/*@jsdoc
* Closes the window. It can then no longer be used.
* @function InteractiveWindow.close
*/
Q_INVOKABLE void close();
/**jsdoc
/*@jsdoc
* Makes the window visible and raises it to the top.
* @function InteractiveWindow.show
*/
Q_INVOKABLE void show();
/**jsdoc
/*@jsdoc
* Raises the window to the top.
* @function InteractiveWindow.raise
*/
@ -317,49 +317,49 @@ public slots:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the window is made visible or invisible, or is closed.
* @function InteractiveWindow.visibleChanged
* @returns {Signal}
*/
void visibleChanged();
/**jsdoc
/*@jsdoc
* Triggered when the window's position changes.
* @function InteractiveWindow.positionChanged
* @returns {Signal}
*/
void positionChanged();
/**jsdoc
/*@jsdoc
* Triggered when the window's size changes.
* @function InteractiveWindow.sizeChanged
* @returns {Signal}
*/
void sizeChanged();
/**jsdoc
/*@jsdoc
* Triggered when the window's presentation mode changes.
* @function InteractiveWindow.presentationModeChanged
* @returns {Signal}
*/
void presentationModeChanged();
/**jsdoc
/*@jsdoc
* Triggered when window's title changes.
* @function InteractiveWindow.titleChanged
* @returns {Signal}
*/
void titleChanged();
/**jsdoc
/*@jsdoc
* Triggered when the window is closed.
* @function InteractiveWindow.closed
* @returns {Signal}
*/
void closed();
/**jsdoc
/*@jsdoc
* Triggered when a message from the QML page is received. The QML page can send a message (string or object) by calling:
* <pre class="prettyprint"><code>sendToScript(message);</code></pre>
* @function InteractiveWindow.fromQml
@ -369,7 +369,7 @@ signals:
// Scripts can connect to this signal to receive messages from the QML object
void fromQml(const QVariant& message);
/**jsdoc
/*@jsdoc
* @function InteractiveWindow.scriptEventReceived
* @param {object} message - Message.
* @returns {Signal}
@ -378,7 +378,7 @@ signals:
// InteractiveWindow content may include WebView requiring EventBridge.
void scriptEventReceived(const QVariant& message);
/**jsdoc
/*@jsdoc
* Triggered when a message from an embedded HTML web page is received. The HTML web page can send a message by calling:
* <pre class="prettyprint"><code>EventBridge.emitWebEvent(message);</code></pre>
* @function InteractiveWindow.webEventReceived
@ -388,7 +388,7 @@ signals:
void webEventReceived(const QVariant& message);
protected slots:
/**jsdoc
/*@jsdoc
* @function InteractiveWindow.qmlToScript
* @param {object} message - Message.
* @deprecated This method is deprecated and will be removed.

View file

@ -37,7 +37,7 @@ private:
};
/**jsdoc
/*@jsdoc
* The <code>Snapshot</code> API provides access to the path that snapshots are saved to. This path is that provided in
* Settings &gt; General &gt; Snapshots. Snapshots may be taken using <code>Window</code> API functions such as
* {@link Window.takeSnapshot}.
@ -67,7 +67,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the path that snapshots are saved to is changed.
* @function Snapshot.snapshotLocationSet
* @param {string} location - The new snapshots location.
@ -82,14 +82,14 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* Gets the path that snapshots are saved to.
* @function Snapshot.getSnapshotsLocation
* @returns {string} The path to save snapshots to.
*/
Q_INVOKABLE QString getSnapshotsLocation();
/**jsdoc
/*@jsdoc
* Sets the path that snapshots are saved to.
* @function Snapshot.setSnapshotsLocation
* @param {String} location - The path to save snapshots to.

File diff suppressed because it is too large Load diff

View file

@ -29,7 +29,7 @@
#include "EntityTree.h"
#include "ContextOverlayLogging.h"
/**jsdoc
/*@jsdoc
* The <code>ContextOverlay</code> API manages the "i" proof-of-provenance context overlay that appears on Marketplace items
* when a user right-clicks them.
*
@ -61,7 +61,7 @@ class ContextOverlayInterface : public QObject, public Dependency {
public:
ContextOverlayInterface();
/**jsdoc
/*@jsdoc
* Gets the ID of the entity that the context overlay is currently displayed for.
* @function ContextOverlay.getCurrentEntityWithContextOverlay
* @returns {Uuid} - The ID of the entity that the context overlay is currently displayed for, <code>null</code> if the
@ -76,7 +76,7 @@ public:
bool getIsInMarketplaceInspectionMode() { return _isInMarketplaceInspectionMode; }
void setIsInMarketplaceInspectionMode(bool mode) { _isInMarketplaceInspectionMode = mode; }
/**jsdoc
/*@jsdoc
* Initiates a check on an avatar entity belongs to the user wearing it. The result is returned via
* {@link WalletScriptingInterface.ownershipVerificationSuccess} or
* {@link WalletScriptingInterface.ownershipVerificationFailed}.
@ -90,7 +90,7 @@ public:
EntityPropertyFlags getEntityPropertyFlags() { return _entityPropertyFlags; }
signals:
/**jsdoc
/*@jsdoc
* Triggered when the user clicks on the context overlay.
* @function ContextOverlay.contextOverlayClicked
* @param {Uuid} id - The ID of the entity that the context overlay is for.
@ -104,7 +104,7 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* @function ContextOverlay.clickDownOnEntity
* @param {Uuid} id - Entity ID.
* @param {PointerEvent} event - Pointer event.
@ -113,7 +113,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void clickDownOnEntity(const EntityItemID& entityItemID, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* @function ContextOverlay.mouseReleaseOnEntity
* @param {Uuid} id - Entity ID.
* @param {PointerEvent} event - Pointer event.
@ -122,7 +122,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void mouseReleaseOnEntity(const EntityItemID& entityItemID, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Displays or deletes the context overlay as appropriate for the target entity and a pointer event: the context overlay
* must be enabled and the pointer event must be a right-click; if so, then any current context overlay is deleted, and if
* the target entity should have a context overlay then it is displayed.
@ -134,7 +134,7 @@ public slots:
*/
bool createOrDestroyContextOverlay(const EntityItemID& entityItemID, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Deletes the context overlay and removes the entity highlight, if shown.
* @function ContextOverlay.destroyContextOverlay
* @param {Uuid} entityID - The ID of the entity.
@ -145,7 +145,7 @@ public slots:
bool destroyContextOverlay(const EntityItemID& entityItemID, const PointerEvent& event);
bool destroyContextOverlay(const EntityItemID& entityItemID);
/**jsdoc
/*@jsdoc
* @function ContextOverlay.contextOverlays_hoverEnterOverlay
* @param {Uuid} id - Overlay ID.
* @param {PointerEvent} event - Pointer event.
@ -154,7 +154,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void contextOverlays_hoverEnterOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* @function ContextOverlay.contextOverlays_hoverLeaveOverlay
* @param {Uuid} id - Overlay ID.
* @param {PointerEvent} event - Pointer event.
@ -163,7 +163,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void contextOverlays_hoverLeaveOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* @function ContextOverlay.contextOverlays_hoverEnterEntity
* @param {Uuid} id - Entity ID.
* @param {PointerEvent} event - Pointer event.
@ -172,7 +172,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void contextOverlays_hoverEnterEntity(const EntityItemID& entityID, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* @function ContextOverlay.contextOverlays_hoverLeaveEntity
* @param {Uuid} id - Entity ID.
* @param {PointerEvent} event - Pointer event.
@ -181,7 +181,7 @@ public slots:
// FIXME: Method shouldn't be in the API.
void contextOverlays_hoverLeaveEntity(const EntityItemID& entityID, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Checks with a context overlay should be displayed for an entity &mdash; in particular, whether the item has a non-empty
* certificate ID.
* @function ContextOverlay.contextOverlayFilterPassed

View file

@ -25,7 +25,7 @@ AABox Overlay2D::getBounds() const {
// JSDoc for copying to @typedefs of overlay types that inherit Overlay2D.
// QmlOverlay-derived classes don't support getProperty().
/**jsdoc
/*@jsdoc
* @property {Rect} bounds - The position and size of the rectangle. <em>Write-only.</em>
* @property {number} x - Integer left, x-coordinate value = <code>bounds.x</code>. <em>Write-only.</em>
* @property {number} y - Integer top, y-coordinate value = <code>bounds.y</code>. <em>Write-only.</em>

View file

@ -1329,7 +1329,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
return result;
}
/**jsdoc
/*@jsdoc
* <p>An overlay may be one of the following types:</p>
* <table>
* <thead>
@ -1397,7 +1397,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @typedef {string} Overlays.OverlayType
*/
/**jsdoc
/*@jsdoc
* Different overlay types have different properties: some common to all overlays (listed in the table) and some specific to
* each {@link Overlays.OverlayType|OverlayType} (linked to below).
* <p>3D overlays are local entities, internally, so they also support the relevant entity's properties.</p>
@ -1422,7 +1422,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} &mdash; <span class="important">Deprecated.</span>
*/
/**jsdoc
/*@jsdoc
* The <code>"image"</code> {@link Overlays.OverlayType|OverlayType} is for 2D images.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* @typedef {object} Overlays.OverlayProperties-Image
@ -1442,7 +1442,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>1.0</code>. <em>Write-only.</em>
*/
/**jsdoc
/*@jsdoc
* The <code>"text"</code> {@link Overlays.OverlayType|OverlayType} is for 2D text.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* @typedef {object} Overlays.OverlayProperties-Text
@ -1468,7 +1468,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <em>Write-only.</em>
*/
/**jsdoc
/*@jsdoc
* The <code>"rectangle"</code> {@link Overlays.OverlayType|OverlayType} is for 2D rectangles.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* @typedef {object} Overlays.OverlayProperties-Rectangle
@ -1487,7 +1487,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <em>Write-only.</em>
*/
/**jsdoc
/*@jsdoc
* The <code>"cube"</code> {@link Overlays.OverlayType|OverlayType} is for 3D cubes.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Box|Box} entity.
@ -1535,7 +1535,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* than a joint.
*/
/**jsdoc
/*@jsdoc
* The <code>"sphere"</code> {@link Overlays.OverlayType|OverlayType} is for 3D spheres.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Sphere|Sphere} entity.
@ -1583,7 +1583,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* than a joint.
*/
/**jsdoc
/*@jsdoc
* The <code>"rectangle3D"</code> {@link Overlays.OverlayType|OverlayType} is for 3D rectangles.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Shape|Shape} entity, with the <code>shape</code>
@ -1632,7 +1632,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* than a joint.
*/
/**jsdoc
/*@jsdoc
* <p>A <code>"shape"</code> {@link Overlays.OverlayType|OverlayType} may display as one of the following geometrical
* shapes:</p>
* <table>
@ -1659,7 +1659,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @typedef {string} Overlays.Shape
*/
/**jsdoc
/*@jsdoc
* The <code>"shape"</code> {@link Overlays.OverlayType|OverlayType} is for 3D shapes.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Shape|Shape} entity.
@ -1709,7 +1709,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {Overlays.Shape} shape=Hexagon - The geometrical shape of the overlay.
*/
/**jsdoc
/*@jsdoc
* The <code>"model"</code> {@link Overlays.OverlayType|OverlayType} is for 3D models.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Model|Model} entity.
@ -1750,7 +1750,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {Entities.AnimationProperties} animationSettings - An animation to play on the model.
*/
/**jsdoc
/*@jsdoc
* The <code>"text3D"</code> {@link Overlays.OverlayType|OverlayType} is for 3D text.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Text|Text} entity.
@ -1796,7 +1796,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* than a joint.
*/
/**jsdoc
/*@jsdoc
* The <code>"image3D"</code> {@link Overlays.OverlayType|OverlayType} is for 3D images.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Image|Image} entity.
@ -1842,7 +1842,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {string} url - The URL of the image to display.
*/
/**jsdoc
/*@jsdoc
* The <code>"web3d"</code> {@link Overlays.OverlayType|OverlayType} is for 3D web surfaces.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Web|Web} entity.
@ -1888,7 +1888,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {string} url - The URL of the web page to display.
*/
/**jsdoc
/*@jsdoc
* The <code>"line3d"</code> {@link Overlays.OverlayType|OverlayType} is for 3D lines.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-PolyLine|PolyLine} entity.
@ -1956,7 +1956,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* property to retrieve its value instead.</em></p>
*/
/**jsdoc
/*@jsdoc
* The <code>"grid"</code> {@link Overlays.OverlayType|OverlayType} is for 3D grids.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Grid|Grid} entity.
@ -2000,7 +2000,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* than a joint.
*/
/**jsdoc
/*@jsdoc
* The <code>"circle3d"</code> {@link Overlays.OverlayType|OverlayType} is for 3D circles.
* It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}.
* It additionally has properties per the {@link Entities.EntityProperties-Gizmo|Gizmo} entity, with the

View file

@ -30,7 +30,7 @@
class PickRay;
/**jsdoc
/*@jsdoc
* The result of a {@link PickRay} search using {@link Overlays.findRayIntersection|findRayIntersection}.
* @typedef {object} Overlays.RayToOverlayIntersectionResult
* @property {boolean} intersects - <code>true</code> if the {@link PickRay} intersected with a 3D overlay, otherwise
@ -67,7 +67,7 @@ public:
QVariantMap extraInfo;
};
/**jsdoc
/*@jsdoc
* The <code>Overlays</code> API provides facilities to create and interact with overlays. These are 2D and 3D objects visible
* only to yourself and that aren't persisted to the domain. They are used for UI.
*
@ -123,7 +123,7 @@ public:
mutable QScriptEngine _scriptEngine;
public slots:
/**jsdoc
/*@jsdoc
* Adds an overlay to the scene.
* @function Overlays.addOverlay
* @param {Overlays.OverlayType} type - The type of the overlay to add.
@ -139,7 +139,7 @@ public slots:
*/
QUuid addOverlay(const QString& type, const QVariant& properties);
/**jsdoc
/*@jsdoc
* Creates a clone of an existing overlay (or entity).
* <p>Note: For cloning behavior of 3D overlays and entities, see {@link Entities.cloneEntity}.</p>
* @function Overlays.cloneOverlay
@ -148,7 +148,7 @@ public slots:
*/
QUuid cloneOverlay(const QUuid& id);
/**jsdoc
/*@jsdoc
* Edits an overlay's (or entity's) properties.
* @function Overlays.editOverlay
* @param {Uuid} id - The ID of the overlay (or entity) to edit.
@ -170,7 +170,7 @@ public slots:
*/
bool editOverlay(const QUuid& id, const QVariant& properties);
/**jsdoc
/*@jsdoc
* Edits the properties of multiple overlays (or entities).
* @function Overlays.editOverlays
* @param propertiesById {object.<Uuid, Overlays.OverlayProperties>} - An object with overlay (or entity) IDs as keys and
@ -198,14 +198,14 @@ public slots:
*/
bool editOverlays(const QVariant& propertiesById);
/**jsdoc
/*@jsdoc
* Deletes an overlay (or entity).
* @function Overlays.deleteOverlay
* @param {Uuid} id - The ID of the overlay (or entity) to delete.
*/
void deleteOverlay(const QUuid& id);
/**jsdoc
/*@jsdoc
* Gets the type of an overlay.
* @function Overlays.getOverlayType
* @param {Uuid} id - The ID of the overlay to get the type of.
@ -222,7 +222,7 @@ public slots:
*/
QString getOverlayType(const QUuid& id);
/**jsdoc
/*@jsdoc
* Gets an overlay's (or entity's) script object. In particular, this is useful for accessing a
* <code>{@link Overlays.OverlayProperties-Web3D|"web3d"}</code> overlay's <code>EventBridge</code> script object to
* exchange messages with the web page script.
@ -292,7 +292,7 @@ public slots:
*/
QObject* getOverlayObject(const QUuid& id);
/**jsdoc
/*@jsdoc
* Gets the ID of the 2D overlay at a particular point on the desktop screen or HUD surface.
* @function Overlays.getOverlayAtPoint
* @param {Vec2} point - The point to check for an overlay.
@ -311,7 +311,7 @@ public slots:
*/
QUuid getOverlayAtPoint(const glm::vec2& point);
/**jsdoc
/*@jsdoc
* Gets a specified property value of a 3D overlay (or entity).
* <p><strong>Note:</strong> 2D overlays' property values cannot be retrieved.</p>
* @function Overlays.getProperty
@ -331,7 +331,7 @@ public slots:
*/
QVariant getProperty(const QUuid& id, const QString& property);
/**jsdoc
/*@jsdoc
* Gets specified property values of a 3D overlay (or entity).
* <p><strong>Note:</strong> 2D overlays' property values cannot be retrieved.</p>
* @function Overlays.getProperties
@ -351,7 +351,7 @@ public slots:
*/
QVariantMap getProperties(const QUuid& id, const QStringList& properties);
/**jsdoc
/*@jsdoc
* Gets the values of multiple overlays' (or entities') properties.
* @function Overlays.getOverlaysProperties
* @param propertiesById {object.<Uuid, Array.<string>>} - An object with overlay (or entity) IDs as keys and arrays of the
@ -379,7 +379,7 @@ public slots:
*/
QVariantMap getOverlaysProperties(const QVariant& overlaysProperties);
/**jsdoc
/*@jsdoc
* Finds the closest 3D overlay (or local entity) intersected by a {@link PickRay}.
* @function Overlays.findRayIntersection
* @param {PickRay} pickRay - The PickRay to use for finding overlays.
@ -416,7 +416,7 @@ public slots:
bool visibleOnly = false,
bool collidableOnly = false);
/**jsdoc
/*@jsdoc
* Gets a list of visible 3D overlays (local entities) with bounding boxes that touch a search sphere.
* @function Overlays.findOverlays
* @param {Vec3} center - The center of the search sphere.
@ -444,7 +444,7 @@ public slots:
*/
QVector<QUuid> findOverlays(const glm::vec3& center, float radius);
/**jsdoc
/*@jsdoc
* Checks whether an overlay's (or entity's) assets have been loaded. For example, for an
* <code>{@link Overlays.OverlayProperties-Image|"image"}</code> overlay, the result indicates whether its image has been
* loaded.
@ -464,7 +464,7 @@ public slots:
*/
bool isLoaded(const QUuid& id);
/**jsdoc
/*@jsdoc
* Calculates the size of some text in a text overlay (or entity). The overlay (or entity) need not be set visible.
* <p><strong>Note:</strong> The size of text in a 3D overlay (or entity) cannot be calculated immediately after the
* overlay (or entity) is created; a short delay is required while the overlay (or entity) finishes being created.</p>
@ -489,21 +489,21 @@ public slots:
*/
QSizeF textSize(const QUuid& id, const QString& text);
/**jsdoc
/*@jsdoc
* Gets the width of the Interface window or HUD surface.
* @function Overlays.width
* @returns {number} The width, in pixels, of the Interface window if in desktop mode or the HUD surface if in HMD mode.
*/
float width();
/**jsdoc
/*@jsdoc
* Gets the height of the Interface window or HUD surface.
* @function Overlays.height
* @returns {number} The height, in pixels, of the Interface window if in desktop mode or the HUD surface if in HMD mode.
*/
float height();
/**jsdoc
/*@jsdoc
* Checks if an overlay (or entity) exists.
* @function Overlays.isAddedOverlay
* @param {Uuid} id - The ID of the overlay (or entity) to check.
@ -511,7 +511,7 @@ public slots:
*/
bool isAddedOverlay(const QUuid& id);
/**jsdoc
/*@jsdoc
* Generates a mouse press event on an overlay (or local entity).
* @function Overlays.sendMousePressOnOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse press event on.
@ -551,7 +551,7 @@ public slots:
*/
void sendMousePressOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Generates a mouse release event on an overlay (or local entity).
* @function Overlays.sendMouseReleaseOnOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse release event on.
@ -559,7 +559,7 @@ public slots:
*/
void sendMouseReleaseOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Generates a mouse move event on an overlay (or local entity).
* @function Overlays.sendMouseMoveOnOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse move event on.
@ -567,7 +567,7 @@ public slots:
*/
void sendMouseMoveOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Generates a hover enter event on an overlay (or local entity).
* @function Overlays.sendHoverEnterOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover enter event on.
@ -575,7 +575,7 @@ public slots:
*/
void sendHoverEnterOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Generates a hover over event on an overlay (or entity).
* @function Overlays.sendHoverOverOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover over event on.
@ -583,7 +583,7 @@ public slots:
*/
void sendHoverOverOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Generates a hover leave event on an overlay (or local entity).
* @function Overlays.sendHoverLeaveOverlay
* @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover leave event on.
@ -591,7 +591,7 @@ public slots:
*/
void sendHoverLeaveOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Gets the ID of the <code>{@link Overlays.OverlayProperties-Web3D|"web3d"}</code> overlay
* ({@link Entities.EntityProperties-Web|Web} entity) that has keyboard focus.
* @function Overlays.getKeyboardFocusOverlay
@ -600,7 +600,7 @@ public slots:
*/
QUuid getKeyboardFocusOverlay() { return DependencyManager::get<EntityScriptingInterface>()->getKeyboardFocusEntity(); }
/**jsdoc
/*@jsdoc
* Sets the <code>{@link Overlays.OverlayProperties-Web3D|"web3d"}</code> overlay
* ({@link Entities.EntityProperties-Web|Web} entity) that has keyboard focus.
* @function Overlays.setKeyboardFocusOverlay
@ -611,7 +611,7 @@ public slots:
void setKeyboardFocusOverlay(const QUuid& id) { DependencyManager::get<EntityScriptingInterface>()->setKeyboardFocusEntity(id); }
signals:
/**jsdoc
/*@jsdoc
* Triggered when an overlay (or entity) is deleted.
* @function Overlays.overlayDeleted
* @param {Uuid} id - The ID of the overlay (or entity) that was deleted.
@ -634,7 +634,7 @@ signals:
*/
void overlayDeleted(const QUuid& id);
/**jsdoc
/*@jsdoc
* Triggered when a mouse press event occurs on an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendMousePressOnOverlay|sendMousePressOnOverlay} for a 2D overlay).
* @function Overlays.mousePressOnOverlay
@ -658,7 +658,7 @@ signals:
*/
void mousePressOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse double press event occurs on an overlay. Only occurs for 3D overlays.
* @function Overlays.mouseDoublePressOnOverlay
* @param {Uuid} id - The ID of the overlay the mouse double press event occurred on.
@ -667,7 +667,7 @@ signals:
*/
void mouseDoublePressOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse release event occurs on an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendMouseReleaseOnOverlay|sendMouseReleaseOnOverlay} for a 2D overlay).
* @function Overlays.mouseReleaseOnOverlay
@ -677,7 +677,7 @@ signals:
*/
void mouseReleaseOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse move event occurs on an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendMouseMoveOnOverlay|sendMouseMoveOnOverlay} for a 2D overlay).
* @function Overlays.mouseMoveOnOverlay
@ -687,21 +687,21 @@ signals:
*/
void mouseMoveOnOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse press event occurs on something other than a 3D overlay.
* @function Overlays.mousePressOffOverlay
* @returns {Signal}
*/
void mousePressOffOverlay();
/**jsdoc
/*@jsdoc
* Triggered when a mouse double press event occurs on something other than a 3D overlay.
* @function Overlays.mouseDoublePressOffOverlay
* @returns {Signal}
*/
void mouseDoublePressOffOverlay();
/**jsdoc
/*@jsdoc
* Triggered when a mouse cursor starts hovering over an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendHoverEnterOverlay|sendHoverEnterOverlay} for a 2D overlay).
* @function Overlays.hoverEnterOverlay
@ -723,7 +723,7 @@ signals:
*/
void hoverEnterOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse cursor continues hovering over an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendHoverOverOverlay|sendHoverOverOverlay} for a 2D overlay).
* @function Overlays.hoverOverOverlay
@ -733,7 +733,7 @@ signals:
*/
void hoverOverOverlay(const QUuid& id, const PointerEvent& event);
/**jsdoc
/*@jsdoc
* Triggered when a mouse cursor finishes hovering over an overlay. Only occurs for 3D overlays (unless you use
* {@link Overlays.sendHoverLeaveOverlay|sendHoverLeaveOverlay} for a 2D overlay).
* @function Overlays.hoverLeaveOverlay

View file

@ -59,7 +59,7 @@ public:
float getMaxErrorOnLastSolve() { return _maxErrorOnLastSolve; }
/**jsdoc
/*@jsdoc
* <p>Specifies the initial conditions of the IK solver.</p>
* <table>
* <thead>

View file

@ -24,7 +24,7 @@ class AnimOverlay : public AnimNode {
public:
friend class AnimTests;
/**jsdoc
/*@jsdoc
* <p>Specifies sets of joints.</p>
* <table>
* <thead>

View file

@ -24,7 +24,7 @@ class AnimationCacheScriptingInterface : public ScriptableResourceCache, public
// Properties are copied over from ResourceCache (see ResourceCache.h for reason).
/**jsdoc
/*@jsdoc
* The <code>AnimationCache</code> API manages animation cache resources.
*
* @namespace AnimationCache
@ -52,7 +52,7 @@ class AnimationCacheScriptingInterface : public ScriptableResourceCache, public
public:
AnimationCacheScriptingInterface();
/**jsdoc
/*@jsdoc
* Gets information about an animation resource.
* @function AnimationCache.getAnimation
* @param {string} url - The URL of the animation.

View file

@ -19,7 +19,7 @@
class QScriptEngine;
/**jsdoc
/*@jsdoc
* Information about an animation resource, created by {@link AnimationCache.getAnimation}.
*
* @class AnimationObject
@ -42,14 +42,14 @@ class AnimationObject : public QObject, protected QScriptable {
public:
/**jsdoc
/*@jsdoc
* Gets the names of the joints that are animated.
* @function AnimationObject.getJointNames
* @returns {string[]} The names of the joints that are animated.
*/
Q_INVOKABLE QStringList getJointNames() const;
/**jsdoc
/*@jsdoc
* Gets the frames in the animation.
* @function AnimationObject.getFrames
* @returns {AnimationFrameObject[]} The frames in the animation.
@ -57,7 +57,7 @@ public:
Q_INVOKABLE QVector<HFMAnimationFrame> getFrames() const;
};
/**jsdoc
/*@jsdoc
* Joint rotations in one frame of an {@link AnimationObject}.
*
* @class AnimationFrameObject
@ -78,7 +78,7 @@ class AnimationFrameObject : public QObject, protected QScriptable {
public:
/**jsdoc
/*@jsdoc
* Gets the joint rotations in the animation frame.
* @function AnimationFrameObject.getRotations
* @returns {Quat[]} The joint rotations in the animation frame.

View file

@ -16,7 +16,7 @@ const float HACK_HMD_TARGET_WEIGHT = 8.0f;
class IKTarget {
public:
/**jsdoc
/*@jsdoc
* <p>An IK target type.</p>
* <table>
* <thead>

View file

@ -89,7 +89,7 @@ static const QString MAIN_STATE_MACHINE_RIGHT_HAND_ROTATION("mainStateMachineRig
static const QString MAIN_STATE_MACHINE_RIGHT_HAND_POSITION("mainStateMachineRightHandPosition");
/**jsdoc
/*@jsdoc
* <p>An <code>AnimStateDictionary</code> object may have the following properties. It may also have other properties, set by
* scripts.</p>
* <p><strong>Warning:</strong> These properties are subject to change.

View file

@ -39,7 +39,7 @@ class MixedProcessedAudioStream;
class AudioStreamStatsInterface : public QObject {
Q_OBJECT
/**jsdoc
/*@jsdoc
* Statistics for an audio stream.
*
* <p>Provided in properties of the {@link AudioStats} API.</p>
@ -88,7 +88,7 @@ class AudioStreamStatsInterface : public QObject {
* <em>Read-only.</em>
*/
/**jsdoc
/*@jsdoc
* Triggered when the ratio of the total number of audio packets lost to the total number of audio packets expected changes.
* @function AudioStats.AudioStreamStats.lossRateChanged
* @param {number} lossRate - The ratio of the total number of audio packets lost to the total number of audio packets
@ -97,7 +97,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, lossRate)
/**jsdoc
/*@jsdoc
* Triggered when the total number of audio packets lost changes.
* @function AudioStats.AudioStreamStats.lossCountChanged
* @param {number} lossCount - The total number of audio packets lost.
@ -105,7 +105,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, lossCount)
/**jsdoc
/*@jsdoc
* Triggered when the ratio of the number of audio packets lost to the number of audio packets expected since the previous
* statistic changes.
* @function AudioStats.AudioStreamStats.lossRateWindowChanged
@ -115,7 +115,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, lossRateWindow)
/**jsdoc
/*@jsdoc
* Triggered when the number of audio packets lost since the previous statistic changes.
* @function AudioStats.AudioStreamStats.lossCountWindowChanged
* @param {number} lossCountWindow - The number of audio packets lost since the previous statistic.
@ -123,7 +123,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, lossCountWindow)
/**jsdoc
/*@jsdoc
* Triggered when the desired number of audio frames for the jitter buffer changes.
* @function AudioStats.AudioStreamStats.framesDesiredChanged
* @param {number} framesDesired - The desired number of audio frames for the jitter buffer.
@ -131,7 +131,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, framesDesired)
/**jsdoc
/*@jsdoc
* Triggered when the number of audio frames containing data available changes.
* @function AudioStats.AudioStreamStats.framesAvailableChanged
* @param {number} framesAvailable - The number of audio frames containing data available.
@ -139,7 +139,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, framesAvailable)
/**jsdoc
/*@jsdoc
* Triggered when the time-weighted average of audio frames containing data available changes.
* @function AudioStats.AudioStreamStats.framesAvailableAvgChanged
* @param {number} framesAvailableAvg - The time-weighted average of audio frames containing data available.
@ -147,7 +147,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, framesAvailableAvg)
/**jsdoc
/*@jsdoc
* Triggered when the duration of audio waiting to be played changes.
* @function AudioStats.AudioStreamStats.unplayedMsMaxChanged
* @param {number} unplayedMsMax - The duration of audio waiting to be played, in ms.
@ -155,7 +155,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, unplayedMsMax)
/**jsdoc
/*@jsdoc
* Triggered when the total number of times that audio frames have not been available for processing changes.
* @function AudioStats.AudioStreamStats.starveCountChanged
* @param {number} starveCount - The total number of times that audio frames have not been available for processing.
@ -163,7 +163,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, starveCount)
/**jsdoc
/*@jsdoc
* Triggered when the most recenbernumber of consecutive times that audio frames have not been available for processing
* changes.
* @function AudioStats.AudioStreamStats.lastStarveDurationCountChanged
@ -173,7 +173,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, lastStarveDurationCount)
/**jsdoc
/*@jsdoc
* Triggered when the number of silent or old audio frames dropped changes.
* @function AudioStats.AudioStreamStats.dropCountChanged
* @param {number} dropCount - The number of silent or old audio frames dropped.
@ -181,7 +181,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, dropCount)
/**jsdoc
/*@jsdoc
* Triggered when the number of times that the audio ring buffer has overflowed changes.
* @function AudioStats.AudioStreamStats.overflowCountChanged
* @param {number} overflowCount - The number of times that the audio ring buffer has overflowed.
@ -189,7 +189,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(int, overflowCount)
/**jsdoc
/*@jsdoc
* Triggered when the overall maximum time between data packets changes.
* @function AudioStats.AudioStreamStats.timegapMsMaxChanged
* @param {number} timegapMsMax - The overall maximum time between data packets, in ms.
@ -197,7 +197,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, timegapMsMax)
/**jsdoc
/*@jsdoc
* Triggered when the overall average time between data packets changes.
* @function AudioStats.AudioStreamStats.timegapMsAvgChanged
* @param {number} timegapMsAvg - The overall average time between data packets, in ms.
@ -205,7 +205,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, timegapMsAvg)
/**jsdoc
/*@jsdoc
* Triggered when the recent maximum time between data packets changes.
* @function AudioStats.AudioStreamStats.timegapMsMaxWindowChanged
* @param {number} timegapMsMaxWindow - The recent maximum time between data packets, in ms.
@ -213,7 +213,7 @@ class AudioStreamStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, timegapMsMaxWindow)
/**jsdoc
/*@jsdoc
* Triggered when the recent average time between data packets changes.
* @function AudioStats.AudioStreamStats.timegapMsAvgWindowChanged
* @param {number} timegapMsAvgWindow - The recent average time between data packets, in ms.
@ -232,7 +232,7 @@ private:
class AudioStatsInterface : public QObject {
Q_OBJECT
/**jsdoc
/*@jsdoc
* The <code>AudioStats</code> API provides statistics of the client and mixer audio.
*
* @namespace AudioStats
@ -268,7 +268,7 @@ class AudioStatsInterface : public QObject {
* <em>Read-only.</em>
*/
/**jsdoc
/*@jsdoc
* Triggered when the ping time to the audio mixer changes.
* @function AudioStats.pingMsChanged
* @param {number} pingMs - The ping time to the audio mixer, in ms.
@ -277,7 +277,7 @@ class AudioStatsInterface : public QObject {
AUDIO_PROPERTY(float, pingMs);
/**jsdoc
/*@jsdoc
* Triggered when the maximum duration of a block of audio data recently read from the microphone changes.
* @function AudioStats.inputReadMsMaxChanged
* @param {number} inputReadMsMax - The maximum duration of a block of audio data recently read from the microphone, in ms.
@ -285,7 +285,7 @@ class AudioStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, inputReadMsMax);
/**jsdoc
/*@jsdoc
* Triggered when the maximum duration of microphone audio recently in the input buffer waiting to be played changes.
* @function AudioStats.inputUnplayedMsMaxChanged
* @param {number} inputUnplayedMsMax - The maximum duration of microphone audio recently in the input buffer waiting to be
@ -294,7 +294,7 @@ class AudioStatsInterface : public QObject {
*/
AUDIO_PROPERTY(float, inputUnplayedMsMax);
/**jsdoc
/*@jsdoc
* Triggered when the maximum duration of output audio recently in the output buffer waiting to be played changes.
* @function AudioStats.outputUnplayedMsMaxChanged
* @param {number} outputUnplayedMsMax - The maximum duration of output audio recently in the output buffer waiting to be
@ -304,7 +304,7 @@ class AudioStatsInterface : public QObject {
AUDIO_PROPERTY(float, outputUnplayedMsMax);
/**jsdoc
/*@jsdoc
* Triggered when the overall maximum time between sending data packets to the audio mixer changes.
* @function AudioStats.sentTimegapMsMaxChanged
* @param {number} sentTimegapMsMax - The overall maximum time between sending data packets to the audio mixer, in ms.
@ -312,7 +312,7 @@ class AudioStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, sentTimegapMsMax);
/**jsdoc
/*@jsdoc
* Triggered when the overall average time between sending data packets to the audio mixer changes.
* @function AudioStats.sentTimegapMsAvgChanged
* @param {number} sentTimegapMsAvg - The overall average time between sending data packets to the audio mixer, in ms.
@ -320,7 +320,7 @@ class AudioStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, sentTimegapMsAvg);
/**jsdoc
/*@jsdoc
* Triggered when the recent maximum time between sending data packets to the audio mixer changes.
* @function AudioStats.sentTimegapMsMaxWindowChanged
* @param {number} sentTimegapMsMaxWindow - The recent maximum time between sending data packets to the audio mixer, in ms.
@ -328,7 +328,7 @@ class AudioStatsInterface : public QObject {
*/
AUDIO_PROPERTY(quint64, sentTimegapMsMaxWindow);
/**jsdoc
/*@jsdoc
* Triggered when the recent average time between sending data packets to the audio mixer changes.
* @function AudioStats.sentTimegapMsAvgWindowChanged
* @param {number} sentTimegapMsAvgWindow - The recent average time between sending data packets to the audio mixer, in
@ -358,21 +358,21 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the mixer's stream statistics have been updated.
* @function AudioStats.mixerStreamChanged
* @returns {Signal}
*/
void mixerStreamChanged();
/**jsdoc
/*@jsdoc
* Triggered when the client's stream statisticss have been updated.
* @function AudioStats.clientStreamChanged
* @returns {Signal}
*/
void clientStreamChanged();
/**jsdoc
/*@jsdoc
* Triggered when the injector streams' statistics have been updated.
* <p><strong>Note:</strong> The injector streams' statistics are currently not provided.</p>
* @function AudioStats.injectorStreamsChanged

View file

@ -58,7 +58,7 @@ static void setOption(QScriptValue arguments, const QString name, float defaultV
variable = arguments.property(name).isNumber() ? (float)arguments.property(name).toNumber() : defaultValue;
}
/**jsdoc
/*@jsdoc
* Reverberation options that can be used to initialize an {@link AudioEffectOptions} object when created.
* @typedef {object} AudioEffectOptions.ReverbOptions
* @property {number} bandwidth=10000 - The corner frequency (Hz) of the low-pass filter at reverb input.

View file

@ -15,7 +15,7 @@
#include <QtScript/QScriptContext>
#include <QtScript/QScriptEngine>
/**jsdoc
/*@jsdoc
* Audio effect options used by the {@link Audio} API.
*
* <p>Create using <code>new AudioEffectOptions(...)</code>.</p>

View file

@ -47,7 +47,7 @@ QScriptValue injectorOptionsToScriptValue(QScriptEngine* engine, const AudioInje
return obj;
}
/**jsdoc
/*@jsdoc
* Configures where and how an audio injector plays its audio.
* @typedef {object} AudioInjector.AudioInjectorOptions
* @property {Vec3} position=Vec3.ZERO - The position in the domain to play the sound.

View file

@ -120,7 +120,7 @@ private:
typedef QSharedPointer<Sound> SharedSoundPointer;
/**jsdoc
/*@jsdoc
* An audio resource, created by {@link SoundCache.getSound}, to be played back using {@link Audio.playSound}.
* <p>Supported formats:</p>
* <ul>
@ -155,7 +155,7 @@ public:
bool isReady() const { return _sound ? _sound->isReady() : false; }
float getDuration() { return _sound ? _sound->getDuration() : 0.0f; }
/**jsdoc
/*@jsdoc
* Triggered when the sound has been downloaded and is ready to be played.
* @function SoundObject.ready
* @returns {Signal}

View file

@ -24,7 +24,7 @@ class SoundCacheScriptingInterface : public ScriptableResourceCache, public Depe
// Properties are copied over from ResourceCache (see ResourceCache.h for reason).
/**jsdoc
/*@jsdoc
* The <code>SoundCache</code> API manages sound cache resources.
*
* @namespace SoundCache
@ -53,7 +53,7 @@ class SoundCacheScriptingInterface : public ScriptableResourceCache, public Depe
public:
SoundCacheScriptingInterface();
/**jsdoc
/*@jsdoc
* Loads the content of an audio file into a {@link SoundObject}, ready for playback by {@link Audio.playSound}.
* @function SoundCache.getSound
* @param {string} url - The URL of the audio file to load &mdash; Web, ATP, or file. See {@link SoundObject} for supported

View file

@ -531,7 +531,7 @@ void Avatar::relayJointDataToChildren() {
_reconstructSoftEntitiesJointMap = false;
}
/**jsdoc
/*@jsdoc
* <p>An avatar has different types of data simulated at different rates, in Hz.</p>
*
* <table>
@ -1918,7 +1918,7 @@ void Avatar::setParentJointIndex(quint16 parentJointIndex) {
}
}
/**jsdoc
/*@jsdoc
* Information about a joint in an avatar's skeleton hierarchy.
* @typedef {object} SkeletonJoint
* @property {string} name - Joint name.

View file

@ -204,7 +204,7 @@ public:
std::vector<AvatarSkeletonTrait::UnpackedJointData> getSkeletonDefaultData();
/**jsdoc
/*@jsdoc
* Gets the default rotation of a joint (in the current avatar) relative to its parent.
* <p>For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
@ -214,7 +214,7 @@ public:
*/
Q_INVOKABLE virtual glm::quat getDefaultJointRotation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the default translation of a joint (in the current avatar) relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -226,7 +226,7 @@ public:
*/
Q_INVOKABLE virtual glm::vec3 getDefaultJointTranslation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the default joint rotations in avatar coordinates.
* The default pose of the avatar is defined by the position and orientation of all bones
* in the avatar's model file. Typically this is a T-pose.
@ -240,7 +240,7 @@ public:
*/
Q_INVOKABLE virtual glm::quat getAbsoluteDefaultJointRotationInObjectFrame(int index) const;
/**jsdoc
/*@jsdoc
* Gets the default joint translations in avatar coordinates.
* The default pose of the avatar is defined by the position and orientation of all bones
* in the avatar's model file. Typically this is a T-pose.
@ -259,7 +259,7 @@ public:
virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override;
virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override;
/**jsdoc
/*@jsdoc
* Sets the rotation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>MyAvatar</code> API.</p>
* @function MyAvatar.setAbsoluteJointRotationInObjectFrame
@ -269,7 +269,7 @@ public:
*/
virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; }
/**jsdoc
/*@jsdoc
* Sets the translation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>MyAvatar</code> API.</p>
* @function MyAvatar.setAbsoluteJointTranslationInObjectFrame
@ -282,7 +282,7 @@ public:
virtual float getSpine2SplineRatio() const { return _spine2SplineRatio; }
// world-space to avatar-space rigconversion functions
/**jsdoc
/*@jsdoc
* Transforms a position in world coordinates to a position in a joint's coordinates, or avatar coordinates if no joint is
* specified.
* @function MyAvatar.worldToJointPoint
@ -292,7 +292,7 @@ public:
*/
Q_INVOKABLE glm::vec3 worldToJointPoint(const glm::vec3& position, const int jointIndex = -1) const;
/**jsdoc
/*@jsdoc
* Transforms a direction in world coordinates to a direction in a joint's coordinates, or avatar coordinates if no joint
* is specified.
* @function MyAvatar.worldToJointDirection
@ -302,7 +302,7 @@ public:
*/
Q_INVOKABLE glm::vec3 worldToJointDirection(const glm::vec3& direction, const int jointIndex = -1) const;
/**jsdoc
/*@jsdoc
* Transforms a rotation in world coordinates to a rotation in a joint's coordinates, or avatar coordinates if no joint is
* specified.
* @function MyAvatar.worldToJointRotation
@ -312,7 +312,7 @@ public:
*/
Q_INVOKABLE glm::quat worldToJointRotation(const glm::quat& rotation, const int jointIndex = -1) const;
/**jsdoc
/*@jsdoc
* Transforms a position in a joint's coordinates, or avatar coordinates if no joint is specified, to a position in world
* coordinates.
* @function MyAvatar.jointToWorldPoint
@ -322,7 +322,7 @@ public:
*/
Q_INVOKABLE glm::vec3 jointToWorldPoint(const glm::vec3& position, const int jointIndex = -1) const;
/**jsdoc
/*@jsdoc
* Transforms a direction in a joint's coordinates, or avatar coordinates if no joint is specified, to a direction in world
* coordinates.
* @function MyAvatar.jointToWorldDirection
@ -332,7 +332,7 @@ public:
*/
Q_INVOKABLE glm::vec3 jointToWorldDirection(const glm::vec3& direction, const int jointIndex = -1) const;
/**jsdoc
/*@jsdoc
* Transforms a rotation in a joint's coordinates, or avatar coordinates if no joint is specified, to a rotation in world
* coordinates.
* @function MyAvatar.jointToWorldRotation
@ -350,7 +350,7 @@ public:
virtual int parseDataFromBuffer(const QByteArray& buffer) override;
/**jsdoc
/*@jsdoc
* Sets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
* with an offset of <code>{ x: 0, y: 0.1, z: 0 }</code>, your avatar will appear to be raised off the ground slightly.
* @function MyAvatar.setSkeletonOffset
@ -366,7 +366,7 @@ public:
*/
Q_INVOKABLE void setSkeletonOffset(const glm::vec3& offset);
/**jsdoc
/*@jsdoc
* Gets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
* with an offset of <code>{ x: 0, y: 0.1, z: 0 }</code>, your avatar will appear to be raised off the ground slightly.
* @function MyAvatar.getSkeletonOffset
@ -378,7 +378,7 @@ public:
virtual glm::vec3 getSkeletonPosition() const;
/**jsdoc
/*@jsdoc
* Gets the position of a joint in the current avatar.
* @function MyAvatar.getJointPosition
* @param {number} index - The index of the joint.
@ -386,7 +386,7 @@ public:
*/
Q_INVOKABLE glm::vec3 getJointPosition(int index) const;
/**jsdoc
/*@jsdoc
* Gets the position of a joint in the current avatar.
* @function MyAvatar.getJointPosition
* @param {string} name - The name of the joint.
@ -396,7 +396,7 @@ public:
*/
Q_INVOKABLE glm::vec3 getJointPosition(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the position of the current avatar's neck in world coordinates.
* @function MyAvatar.getNeckPosition
* @returns {Vec3} The position of the neck in world coordinates.
@ -405,7 +405,7 @@ public:
*/
Q_INVOKABLE glm::vec3 getNeckPosition() const;
/**jsdoc
/*@jsdoc
* Gets the current acceleration of the avatar.
* @function MyAvatar.getAcceleration
* @returns {Vec3} The current acceleration of the avatar.
@ -431,7 +431,7 @@ public:
void getCapsule(glm::vec3& start, glm::vec3& end, float& radius);
float computeMass();
/**jsdoc
/*@jsdoc
* Gets the position of the current avatar's feet (or rather, bottom of its collision capsule) in world coordinates.
* @function MyAvatar.getWorldFeetPosition
* @returns {Vec3} The position of the avatar's feet in world coordinates.
@ -441,7 +441,7 @@ public:
void setPositionViaScript(const glm::vec3& position) override;
void setOrientationViaScript(const glm::quat& orientation) override;
/**jsdoc
/*@jsdoc
* Gets the ID of the entity or avatar that the avatar is parented to.
* @function MyAvatar.getParentID
* @returns {Uuid} The ID of the entity or avatar that the avatar is parented to. {@link Uuid(0)|Uuid.NULL} if not parented.
@ -449,7 +449,7 @@ public:
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
Q_INVOKABLE virtual const QUuid getParentID() const override { return SpatiallyNestable::getParentID(); }
/**jsdoc
/*@jsdoc
* Sets the ID of the entity or avatar that the avatar is parented to.
* @function MyAvatar.setParentID
* @param {Uuid} parentID - The ID of the entity or avatar that the avatar should be parented to. Set to
@ -458,7 +458,7 @@ public:
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
Q_INVOKABLE virtual void setParentID(const QUuid& parentID) override;
/**jsdoc
/*@jsdoc
* Gets the joint of the entity or avatar that the avatar is parented to.
* @function MyAvatar.getParentJointIndex
* @returns {number} The joint of the entity or avatar that the avatar is parented to. <code>65535</code> or
@ -467,7 +467,7 @@ public:
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
Q_INVOKABLE virtual quint16 getParentJointIndex() const override { return SpatiallyNestable::getParentJointIndex(); }
/**jsdoc
/*@jsdoc
* Sets the joint of the entity or avatar that the avatar is parented to.
* @function MyAvatar.setParentJointIndex
* @param {number} parentJointIndex - The joint of the entity or avatar that the avatar should be parented to. Use
@ -477,7 +477,7 @@ public:
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
Q_INVOKABLE virtual void setParentJointIndex(quint16 parentJointIndex) override;
/**jsdoc
/*@jsdoc
* Gets information on all the joints in the avatar's skeleton.
* @function MyAvatar.getSkeleton
* @returns {SkeletonJoint[]} Information about each joint in the avatar's skeleton.
@ -497,7 +497,7 @@ public:
void setTargetScale(float targetScale) override;
float getTargetScale() const { return _targetScale; }
/**jsdoc
/*@jsdoc
* @function MyAvatar.getSimulationRate
* @param {AvatarSimulationRate} [rateName=""] - Rate name.
* @returns {number} Simulation rate in Hz.
@ -556,7 +556,7 @@ public:
uint32_t appendSubMetaItems(render::ItemIDs& subItems);
signals:
/**jsdoc
/*@jsdoc
* Triggered when the avatar's target scale is changed. The target scale is the desired scale of the avatar without any
* restrictions on permissible scale values imposed by the domain.
* @function MyAvatar.targetScaleChanged
@ -570,7 +570,7 @@ public slots:
// FIXME - these should be migrated to use Pose data instead
// thread safe, will return last valid palm from cache
/**jsdoc
/*@jsdoc
* Gets the position of the left palm in world coordinates.
* @function MyAvatar.getLeftPalmPosition
* @returns {Vec3} The position of the left palm in world coordinates.
@ -579,7 +579,7 @@ public slots:
*/
glm::vec3 getLeftPalmPosition() const;
/**jsdoc
/*@jsdoc
* Gets the rotation of the left palm in world coordinates.
* @function MyAvatar.getLeftPalmRotation
* @returns {Quat} The rotation of the left palm in world coordinates.
@ -588,7 +588,7 @@ public slots:
*/
glm::quat getLeftPalmRotation() const;
/**jsdoc
/*@jsdoc
* Gets the position of the right palm in world coordinates.
* @function MyAvatar.getRightPalmPosition
* @returns {Vec3} The position of the right palm in world coordinates.
@ -597,7 +597,7 @@ public slots:
*/
glm::vec3 getRightPalmPosition() const;
/**jsdoc
/*@jsdoc
* Get the rotation of the right palm in world coordinates.
* @function MyAvatar.getRightPalmRotation
* @returns {Quat} The rotation of the right palm in world coordinates.
@ -606,7 +606,7 @@ public slots:
*/
glm::quat getRightPalmRotation() const;
/**jsdoc
/*@jsdoc
* @function MyAvatar.setModelURLFinished
* @param {boolean} success
* @deprecated This function is deprecated and will be removed.
@ -614,14 +614,14 @@ public slots:
// hooked up to Model::setURLFinished signal
void setModelURLFinished(bool success);
/**jsdoc
/*@jsdoc
* @function MyAvatar.rigReady
* @deprecated This function is deprecated and will be removed.
*/
// Hooked up to Model::rigReady signal
void rigReady();
/**jsdoc
/*@jsdoc
* @function MyAvatar.rigReset
* @deprecated This function is deprecated and will be removed.
*/

View file

@ -16,7 +16,7 @@
#include "Avatar.h"
/**jsdoc
/*@jsdoc
* Information about an avatar.
*
* <p>Create using {@link MyAvatar.getTargetAvatar} or {@link AvatarList.getAvatar}.</p>
@ -84,7 +84,7 @@ public:
public slots:
/**jsdoc
/*@jsdoc
* Gets the default rotation of a joint in the avatar relative to its parent.
* <p>For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
@ -95,7 +95,7 @@ public slots:
*/
glm::quat getDefaultJointRotation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the default translation of a joint in the avatar relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -108,7 +108,7 @@ public slots:
glm::vec3 getDefaultJointTranslation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the offset applied to the avatar for rendering.
* @function ScriptAvatar.getSkeletonOffset
* @returns {Vec3} The skeleton offset if avatar data are available, otherwise {@link Vec3(0)|Vec3.ZERO}.
@ -116,7 +116,7 @@ public slots:
glm::vec3 getSkeletonOffset() const;
/**jsdoc
/*@jsdoc
* Gets the position of a joint in the avatar.
* @function ScriptAvatar.getJointPosition
* @param {number} index - The index of the joint.
@ -125,7 +125,7 @@ public slots:
*/
glm::vec3 getJointPosition(int index) const;
/**jsdoc
/*@jsdoc
* Gets the position of a joint in the current avatar.
* @function ScriptAvatar.getJointPosition
* @param {string} name - The name of the joint.
@ -134,7 +134,7 @@ public slots:
*/
glm::vec3 getJointPosition(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the position of the current avatar's neck in world coordinates.
* @function ScriptAvatar.getNeckPosition
* @returns {Vec3} The position of the neck in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
@ -143,7 +143,7 @@ public slots:
glm::vec3 getNeckPosition() const;
/**jsdoc
/*@jsdoc
* Gets the current acceleration of the avatar.
* @function ScriptAvatar.getAcceleration
* @returns {Vec3} The current acceleration of the avatar, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't available..
@ -151,7 +151,7 @@ public slots:
glm::vec3 getAcceleration() const;
/**jsdoc
/*@jsdoc
* Gets the ID of the entity or avatar that the avatar is parented to.
* @function ScriptAvatar.getParentID
* @returns {Uuid} The ID of the entity or avatar that the avatar is parented to. {@link Uuid(0)|Uuid.NULL} if not parented
@ -159,7 +159,7 @@ public slots:
*/
QUuid getParentID() const;
/**jsdoc
/*@jsdoc
* Gets the joint of the entity or avatar that the avatar is parented to.
* @function ScriptAvatar.getParentJointIndex
* @returns {number} The joint of the entity or avatar that the avatar is parented to. <code>65535</code> or
@ -169,7 +169,7 @@ public slots:
quint16 getParentJointIndex() const;
/**jsdoc
/*@jsdoc
* Gets information on all the joints in the avatar's skeleton.
* @function ScriptAvatar.getSkeleton
* @returns {SkeletonJoint[]} Information about each joint in the avatar's skeleton.
@ -177,7 +177,7 @@ public slots:
QVariantList getSkeleton() const;
/**jsdoc
/*@jsdoc
* @function ScriptAvatar.getSimulationRate
* @param {AvatarSimulationRate} [rateName=""] - Rate name.
* @returns {number} Simulation rate in Hz, or <code>0.0</code> if avatar data aren't available.
@ -186,7 +186,7 @@ public slots:
float getSimulationRate(const QString& rateName = QString("")) const;
/**jsdoc
/*@jsdoc
* Gets the position of the left palm in world coordinates.
* @function ScriptAvatar.getLeftPalmPosition
* @returns {Vec3} The position of the left palm in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
@ -194,7 +194,7 @@ public slots:
*/
glm::vec3 getLeftPalmPosition() const;
/**jsdoc
/*@jsdoc
* Gets the rotation of the left palm in world coordinates.
* @function ScriptAvatar.getLeftPalmRotation
* @returns {Quat} The rotation of the left palm in world coordinates, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
@ -202,7 +202,7 @@ public slots:
*/
glm::quat getLeftPalmRotation() const;
/**jsdoc
/*@jsdoc
* Gets the position of the right palm in world coordinates.
* @function ScriptAvatar.getLeftPalmPosition
* @returns {Vec3} The position of the right palm in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
@ -210,7 +210,7 @@ public slots:
*/
glm::vec3 getRightPalmPosition() const;
/**jsdoc
/*@jsdoc
* Gets the rotation of the right palm in world coordinates.
* @function ScriptAvatar.getLeftPalmRotation
* @returns {Quat} The rotation of the right palm in world coordinates, or {@link Quat(0)|Quat.IDENTITY} if the avatar data

View file

@ -1491,7 +1491,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) {
return numBytesRead;
}
/**jsdoc
/*@jsdoc
* <p>The avatar mixer data comprises different types of data, with the data rates of each being tracked in kbps.</p>
*
* <table>
@ -1596,7 +1596,7 @@ float AvatarData::getDataRate(const QString& rateName) const {
return 0.0f;
}
/**jsdoc
/*@jsdoc
* <p>The avatar mixer data comprises different types of data updated at different rates, in Hz.</p>
*
* <table>
@ -2926,7 +2926,7 @@ glm::vec3 AvatarData::getAbsoluteJointTranslationInObjectFrame(int index) const
return glm::vec3();
}
/**jsdoc
/*@jsdoc
* Information on an attachment worn by the avatar.
* @typedef {object} AttachmentData
* @property {string} modelUrl - The URL of the glTF, FBX, or OBJ model file. glTF models may be in JSON or binary format
@ -3126,7 +3126,7 @@ glm::mat4 AvatarData::getControllerRightHandMatrix() const {
return _controllerRightHandMatrixCache.get();
}
/**jsdoc
/*@jsdoc
* Information about a ray-to-avatar intersection.
* @typedef {object} RayToAvatarIntersectionResult
* @property {boolean} intersects - <code>true</code> if an avatar is intersected, <code>false</code> if it isn't.
@ -3182,7 +3182,7 @@ float AvatarData::_avatarSortCoefficientSize { 8.0f };
float AvatarData::_avatarSortCoefficientCenter { 0.25f };
float AvatarData::_avatarSortCoefficientAge { 1.0f };
/**jsdoc
/*@jsdoc
* An object with the UUIDs of avatar entities as keys and avatar entity properties objects as values.
* @typedef {Object.<Uuid, Entities.EntityProperties>} AvatarEntityMap
*/

View file

@ -114,7 +114,7 @@ const int PROCEDURAL_BLINK_FACE_MOVEMENT = 10; // 11th bit
const int COLLIDE_WITH_OTHER_AVATARS = 11; // 12th bit
const int HAS_HERO_PRIORITY = 12; // 13th bit (be scared)
/**jsdoc
/*@jsdoc
* <p>The pointing state of the hands is specified by the following values:</p>
* <table>
* <thead>
@ -712,7 +712,7 @@ public:
void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement);
bool getHasAudioEnabledFaceMovement() const;
/**jsdoc
/*@jsdoc
* Gets the minimum scale allowed for this avatar in the current domain.
* This value can change as the user changes avatars or when changing domains.
* @function Avatar.getDomainMinScale
@ -720,7 +720,7 @@ public:
*/
Q_INVOKABLE float getDomainMinScale() const;
/**jsdoc
/*@jsdoc
* Gets the maximum scale allowed for this avatar in the current domain.
* This value can change as the user changes avatars or when changing domains.
* @function Avatar.getDomainMaxScale
@ -736,7 +736,7 @@ public:
// not all subclasses of AvatarData have access to this data.
virtual bool canMeasureEyeHeight() const { return false; }
/**jsdoc
/*@jsdoc
* Gets the current eye height of the avatar.
* This height is only an estimate and might be incorrect for avatars that are missing standard joints.
* @function Avatar.getEyeHeight
@ -744,7 +744,7 @@ public:
*/
Q_INVOKABLE virtual float getEyeHeight() const { return _targetScale * getUnscaledEyeHeight(); }
/**jsdoc
/*@jsdoc
* Gets the current height of the avatar.
* This height is only an estimate and might be incorrect for avatars that are missing standard joints.
* @function Avatar.getHeight
@ -757,7 +757,7 @@ public:
void setDomainMinimumHeight(float domainMinimumHeight);
void setDomainMaximumHeight(float domainMaximumHeight);
/**jsdoc
/*@jsdoc
* Sets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the
* laser emanates from the tip of that finger, otherwise it emanates from the palm.
* @function Avatar.setHandState
@ -765,7 +765,7 @@ public:
*/
Q_INVOKABLE void setHandState(char s) { _handState = s; }
/**jsdoc
/*@jsdoc
* Gets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the
* laser emanates from the tip of that finger, otherwise it emanates from the palm.
* @function Avatar.getHandState
@ -775,7 +775,7 @@ public:
const QVector<JointData>& getRawJointData() const { return _jointData; }
/**jsdoc
/*@jsdoc
* Sets joint translations and rotations from raw joint data.
* @function Avatar.setRawJointData
* @param {JointData[]} data - The raw joint data.
@ -783,7 +783,7 @@ public:
*/
Q_INVOKABLE void setRawJointData(QVector<JointData> data);
/**jsdoc
/*@jsdoc
* Sets a specific joint's rotation and position relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
@ -814,7 +814,7 @@ public:
*/
Q_INVOKABLE virtual void setJointData(int index, const glm::quat& rotation, const glm::vec3& translation);
/**jsdoc
/*@jsdoc
* Sets a specific joint's rotation relative to its parent.
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
@ -827,7 +827,7 @@ public:
*/
Q_INVOKABLE virtual void setJointRotation(int index, const glm::quat& rotation);
/**jsdoc
/*@jsdoc
* Sets a specific joint's translation relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
@ -841,7 +841,7 @@ public:
*/
Q_INVOKABLE virtual void setJointTranslation(int index, const glm::vec3& translation);
/**jsdoc
/*@jsdoc
* Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default
* animation system including inverse kinematics for that joint.
* <p>Note: This is slightly faster than the function variation that specifies the joint name.</p>
@ -850,7 +850,7 @@ public:
*/
Q_INVOKABLE virtual void clearJointData(int index);
/**jsdoc
/*@jsdoc
* Checks that the data for a joint are valid.
* @function Avatar.isJointDataValid
* @param {number} index - The index of the joint.
@ -858,7 +858,7 @@ public:
*/
Q_INVOKABLE bool isJointDataValid(int index) const;
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
* @function Avatar.getJointRotation
@ -867,7 +867,7 @@ public:
*/
Q_INVOKABLE virtual glm::quat getJointRotation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -878,7 +878,7 @@ public:
*/
Q_INVOKABLE virtual glm::vec3 getJointTranslation(int index) const;
/**jsdoc
/*@jsdoc
* Sets a specific joint's rotation and position relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
@ -893,7 +893,7 @@ public:
*/
Q_INVOKABLE virtual void setJointData(const QString& name, const glm::quat& rotation, const glm::vec3& translation);
/**jsdoc
/*@jsdoc
* Sets a specific joint's rotation relative to its parent.
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
@ -926,7 +926,7 @@ public:
*/
Q_INVOKABLE virtual void setJointRotation(const QString& name, const glm::quat& rotation);
/**jsdoc
/*@jsdoc
* Sets a specific joint's translation relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
@ -952,7 +952,7 @@ public:
*/
Q_INVOKABLE virtual void setJointTranslation(const QString& name, const glm::vec3& translation);
/**jsdoc
/*@jsdoc
* Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default
* animation system including inverse kinematics for that joint.
* <p>Note: This is slightly slower than the function variation that specifies the joint index.</p>
@ -971,7 +971,7 @@ public:
*/
Q_INVOKABLE virtual void clearJointData(const QString& name);
/**jsdoc
/*@jsdoc
* Checks if the data for a joint are valid.
* @function Avatar.isJointDataValid
* @param {string} name - The name of the joint.
@ -979,7 +979,7 @@ public:
*/
Q_INVOKABLE virtual bool isJointDataValid(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
* @function Avatar.getJointRotation
@ -992,7 +992,7 @@ public:
*/
Q_INVOKABLE virtual glm::quat getJointRotation(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -1007,7 +1007,7 @@ public:
*/
Q_INVOKABLE virtual glm::vec3 getJointTranslation(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the rotations of all joints in the current avatar. Each joint's rotation is relative to its parent joint.
* @function Avatar.getJointRotations
* @returns {Quat[]} The rotations of all joints relative to each's parent. The values are in the same order as the array
@ -1019,7 +1019,7 @@ public:
*/
Q_INVOKABLE virtual QVector<glm::quat> getJointRotations() const;
/**jsdoc
/*@jsdoc
* Gets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in
* model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
@ -1030,7 +1030,7 @@ public:
*/
Q_INVOKABLE virtual QVector<glm::vec3> getJointTranslations() const;
/**jsdoc
/*@jsdoc
* Sets the rotations of all joints in the current avatar. Each joint's rotation is relative to its parent joint.
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
@ -1068,7 +1068,7 @@ public:
*/
Q_INVOKABLE virtual void setJointRotations(const QVector<glm::quat>& jointRotations);
/**jsdoc
/*@jsdoc
* Sets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in
* model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
@ -1084,7 +1084,7 @@ public:
*/
Q_INVOKABLE virtual void setJointTranslations(const QVector<glm::vec3>& jointTranslations);
/**jsdoc
/*@jsdoc
* Clears all joint translations and rotations that have been set by script. This restores all motion from the default
* animation system including inverse kinematics for all joints.
* @function Avatar.clearJointsData
@ -1106,7 +1106,7 @@ public:
*/
Q_INVOKABLE virtual void clearJointsData();
/**jsdoc
/*@jsdoc
* Gets the joint index for a named joint. The joint index value is the position of the joint in the array returned by
* {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the <code>Avatar</code> API.
* @function Avatar.getJointIndex
@ -1120,7 +1120,7 @@ public:
/// Returns the index of the joint with the specified name, or -1 if not found/unknown.
Q_INVOKABLE virtual int getJointIndex(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the names of all the joints in the current avatar.
* @function Avatar.getJointNames
* @returns {string[]} The joint names.
@ -1132,7 +1132,7 @@ public:
Q_INVOKABLE virtual QStringList getJointNames() const;
/**jsdoc
/*@jsdoc
* Sets the value of a blend shape to animate your avatar's face. In order for other users to see the resulting animations
* on your avatar's face, set <code>hasScriptedBlendshapes</code> to <code>true</code>. When you are done using this API,
* set <code>hasScriptedBlendshapes</code> back to <code>false</code> when the animation is complete.
@ -1149,7 +1149,7 @@ public:
Q_INVOKABLE void setBlendshape(QString name, float val) { _headData->setBlendshape(name, val); }
/**jsdoc
/*@jsdoc
* Gets information about the models currently attached to your avatar.
* @function Avatar.getAttachmentsVariant
* @returns {AttachmentData[]} Information about all models attached to your avatar.
@ -1158,7 +1158,7 @@ public:
// FIXME: Can this name be improved? Can it be deprecated?
Q_INVOKABLE virtual QVariantList getAttachmentsVariant() const;
/**jsdoc
/*@jsdoc
* Sets all models currently attached to your avatar. For example, if you retrieve attachment data using
* {@link MyAvatar.getAttachmentsVariant} or {@link Avatar.getAttachmentsVariant}, make changes to it, and then want to
* update your avatar's attachments per the changed data.
@ -1171,7 +1171,7 @@ public:
virtual void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload);
/**jsdoc
/*@jsdoc
* @function Avatar.updateAvatarEntity
* @param {Uuid} entityID - The entity ID.
* @param {ArrayBuffer} entityData - Entity data.
@ -1179,7 +1179,7 @@ public:
*/
Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData);
/**jsdoc
/*@jsdoc
* @function Avatar.clearAvatarEntity
* @param {Uuid} entityID - The entity ID.
* @param {boolean} [requiresRemovalFromTree=true] - unused
@ -1194,7 +1194,7 @@ public:
QList<QUuid> getAvatarEntityIDs() const;
/**jsdoc
/*@jsdoc
* Enables blend shapes set using {@link Avatar.setBlendshape} or {@link MyAvatar.setBlendshape} to be transmitted to other
* users so that they can see the animation of your avatar's face.
* <p class="important">Deprecated: This method is deprecated and will be removed. Use the
@ -1243,7 +1243,7 @@ public:
const QString& getSessionDisplayName() const { return _sessionDisplayName; }
bool getLookAtSnappingEnabled() const { return _lookAtSnappingEnabled; }
/**jsdoc
/*@jsdoc
* Sets the avatar's skeleton model.
* @function Avatar.setSkeletonModelURL
* @param {string} url - The avatar's FST file.
@ -1257,7 +1257,7 @@ public:
}
virtual bool isCertifyFailed() const { return _verificationFailed; }
/**jsdoc
/*@jsdoc
* Gets information about the models currently attached to your avatar.
* @function Avatar.getAttachmentData
* @returns {AttachmentData[]} Information about all models attached to your avatar.
@ -1272,7 +1272,7 @@ public:
*/
Q_INVOKABLE virtual QVector<AttachmentData> getAttachmentData() const;
/**jsdoc
/*@jsdoc
* Sets all models currently attached to your avatar. For example, if you retrieve attachment data using
* {@link MyAvatar.getAttachmentData} or {@link Avatar.getAttachmentData}, make changes to it, and then want to update your avatar's attachments per the
* changed data. You can also remove all attachments by using setting <code>attachmentData</code> to <code>null</code>.
@ -1296,7 +1296,7 @@ public:
*/
Q_INVOKABLE virtual void setAttachmentData(const QVector<AttachmentData>& attachmentData);
/**jsdoc
/*@jsdoc
* Attaches a model to your avatar. For example, you can give your avatar a hat to wear, a guitar to hold, or a surfboard to
* stand on.
* @function Avatar.attach
@ -1340,7 +1340,7 @@ public:
float scale = 1.0f, bool isSoft = false,
bool allowDuplicates = false, bool useSaved = true);
/**jsdoc
/*@jsdoc
* Detaches the most recently attached instance of a particular model from either a specific joint or any joint.
* @function Avatar.detachOne
* @param {string} modelURL - The URL of the model to detach.
@ -1350,7 +1350,7 @@ public:
*/
Q_INVOKABLE virtual void detachOne(const QString& modelURL, const QString& jointName = QString());
/**jsdoc
/*@jsdoc
* Detaches all instances of a particular model from either a specific joint or all joints.
* @function Avatar.detachAll
* @param {string} modelURL - The URL of the model to detach.
@ -1394,7 +1394,7 @@ public:
AABox getGlobalBoundingBox() const { return AABox(_globalPosition + _globalBoundingBoxOffset - _globalBoundingBoxDimensions, _globalBoundingBoxDimensions); }
AABox getDefaultBubbleBox() const;
/**jsdoc
/*@jsdoc
* @comment Documented in derived classes' JSDoc because implementations are different.
*/
// Get avatar entity data with all property values. Used in API.
@ -1403,7 +1403,7 @@ public:
// Get avatar entity data with non-default property values. Used internally.
virtual AvatarEntityMap getAvatarEntityDataNonDefault() const;
/**jsdoc
/*@jsdoc
* @comment Documented in derived classes' JSDoc because implementations are different.
*/
Q_INVOKABLE virtual void setAvatarEntityData(const AvatarEntityMap& avatarEntityData);
@ -1411,7 +1411,7 @@ public:
void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; }
AvatarEntityIDs getAndClearRecentlyRemovedIDs();
/**jsdoc
/*@jsdoc
* Gets the transform from the user's real world to the avatar's size, orientation, and position in the virtual world.
* @function Avatar.getSensorToWorldMatrix
* @returns {Mat4} The scale, rotation, and translation transform from the user's real world to the avatar's size,
@ -1428,7 +1428,7 @@ public:
// thread safe
Q_INVOKABLE glm::mat4 getSensorToWorldMatrix() const;
/**jsdoc
/*@jsdoc
* Gets the scale that transforms dimensions in the user's real world to the avatar's size in the virtual world.
* @function Avatar.getSensorToWorldScale
* @returns {number} The scale that transforms dimensions in the user's real world to the avatar's size in the virtual
@ -1437,7 +1437,7 @@ public:
// thread safe
Q_INVOKABLE float getSensorToWorldScale() const;
/**jsdoc
/*@jsdoc
* Gets the rotation and translation of the left hand controller relative to the avatar.
* @function Avatar.getControllerLeftHandMatrix
* @returns {Mat4} The rotation and translation of the left hand controller relative to the avatar.
@ -1453,7 +1453,7 @@ public:
// thread safe
Q_INVOKABLE glm::mat4 getControllerLeftHandMatrix() const;
/**jsdoc
/*@jsdoc
* Gets the rotation and translation of the right hand controller relative to the avatar.
* @function Avatar.getControllerRightHandMatrix
* @returns {Mat4} The rotation and translation of the right hand controller relative to the avatar.
@ -1462,7 +1462,7 @@ public:
Q_INVOKABLE glm::mat4 getControllerRightHandMatrix() const;
/**jsdoc
/*@jsdoc
* Gets the amount of avatar mixer data being generated by the avatar.
* @function Avatar.getDataRate
* @param {AvatarDataRate} [rateName=""] - The type of avatar mixer data to get the data rate of.
@ -1470,7 +1470,7 @@ public:
*/
Q_INVOKABLE float getDataRate(const QString& rateName = QString("")) const;
/**jsdoc
/*@jsdoc
* Gets the update rate of avatar mixer data being generated by the avatar.
* @function Avatar.getUpdateRate
* @param {AvatarUpdateRate} [rateName=""] - The type of avatar mixer data to get the update rate of.
@ -1522,7 +1522,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>displayName</code> property value changes.
* @function Avatar.displayNameChanged
* @returns {Signal}
@ -1535,7 +1535,7 @@ signals:
*/
void displayNameChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>sessionDisplayName</code> property value changes.
* @function Avatar.sessionDisplayNameChanged
* @returns {Signal}
@ -1548,7 +1548,7 @@ signals:
*/
void sessionDisplayNameChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's model (i.e., <code>skeletonModelURL</code> property value) changes.
* @function Avatar.skeletonModelURLChanged
* @returns {Signal}
@ -1561,7 +1561,7 @@ signals:
*/
void skeletonModelURLChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>lookAtSnappingEnabled</code> property value changes.
* @function Avatar.lookAtSnappingChanged
* @param {boolean} enabled - <code>true</code> if look-at snapping is enabled, <code>false</code> if not.
@ -1575,7 +1575,7 @@ signals:
*/
void lookAtSnappingChanged(bool enabled);
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>sessionUUID</code> property value changes.
* @function Avatar.sessionUUIDChanged
* @returns {Signal}
@ -1590,7 +1590,7 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* @function Avatar.sendAvatarDataPacket
* @param {boolean} [sendAll=false] - Send all.
* @returns {number}
@ -1598,14 +1598,14 @@ public slots:
*/
virtual int sendAvatarDataPacket(bool sendAll = false);
/**jsdoc
/*@jsdoc
* @function Avatar.sendIdentityPacket
* @returns {number}
* @deprecated This function is deprecated and will be removed.
*/
int sendIdentityPacket();
/**jsdoc
/*@jsdoc
* @function Avatar.setSessionUUID
* @param {Uuid} sessionUUID - Session UUID.
* @deprecated This function is deprecated and will be removed.
@ -1622,7 +1622,7 @@ public slots:
}
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>Avatar</code> API.</p>
* @function Avatar.getAbsoluteJointRotationInObjectFrame
@ -1631,7 +1631,7 @@ public slots:
*/
virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>Avatar</code> API.</p>
* @function Avatar.getAbsoluteJointTranslationInObjectFrame
@ -1640,7 +1640,7 @@ public slots:
*/
virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override;
/**jsdoc
/*@jsdoc
* Sets the rotation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>Avatar</code> API.</p>
* @function Avatar.setAbsoluteJointRotationInObjectFrame
@ -1650,7 +1650,7 @@ public slots:
*/
virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; }
/**jsdoc
/*@jsdoc
* Sets the translation of a joint relative to the avatar.
* <p><strong>Warning:</strong> Not able to be used in the <code>Avatar</code> API.</p>
* @function Avatar.setAbsoluteJointTranslationInObjectFrame
@ -1660,7 +1660,7 @@ public slots:
*/
virtual bool setAbsoluteJointTranslationInObjectFrame(int index, const glm::vec3& translation) override { return false; }
/**jsdoc
/*@jsdoc
* Gets the target scale of the avatar without any restrictions on permissible values imposed by the domain. In contrast, the
* <code>scale</code> property's value may be limited by the domain's settings.
* @function Avatar.getTargetScale
@ -1673,7 +1673,7 @@ public slots:
*/
float getTargetScale() const { return _targetScale; } // why is this a slot?
/**jsdoc
/*@jsdoc
* @function Avatar.resetLastSent
* @deprecated This function is deprecated and will be removed.
*/

View file

@ -35,7 +35,7 @@
const int CLIENT_TO_AVATAR_MIXER_BROADCAST_FRAMES_PER_SECOND = 50;
const quint64 MIN_TIME_BETWEEN_MY_AVATAR_DATA_SENDS = USECS_PER_SECOND / CLIENT_TO_AVATAR_MIXER_BROADCAST_FRAMES_PER_SECOND;
/**jsdoc
/*@jsdoc
* The <code>AvatarList</code> API provides information about avatars within the current domain.
*
* <p><strong>Warning:</strong> An API named "<code>AvatarList</code>" is also provided for Interface, client entity, and avatar
@ -80,7 +80,7 @@ public:
// Currently, your own avatar will be included as the null avatar id.
/**jsdoc
/*@jsdoc
* Gets the IDs of all avatars in the domain.
* <p><strong>Warning:</strong> If the AC script is acting as an avatar (i.e., <code>Agent.isAvatar == true</code>) the
* avatar's ID is NOT included in results.</p>
@ -92,7 +92,7 @@ public:
*/
Q_INVOKABLE QVector<QUuid> getAvatarIdentifiers();
/**jsdoc
/*@jsdoc
* Gets the IDs of all avatars within a specified distance from a point.
* <p><strong>Warning:</strong> If the AC script is acting as an avatar (i.e., <code>Agent.isAvatar == true</code>) the
* avatar's ID is NOT included in results.</p>
@ -107,7 +107,7 @@ public:
*/
Q_INVOKABLE QVector<QUuid> getAvatarsInRange(const glm::vec3& position, float rangeMeters) const;
/**jsdoc
/*@jsdoc
* Gets information about an avatar.
* @function AvatarList.getAvatar
* @param {Uuid} avatarID - The ID of the avatar.
@ -126,7 +126,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when an avatar arrives in the domain.
* @function AvatarList.avatarAddedEvent
* @param {Uuid} sessionUUID - The ID of the avatar that arrived in the domain.
@ -140,7 +140,7 @@ signals:
*/
void avatarAddedEvent(const QUuid& sessionUUID);
/**jsdoc
/*@jsdoc
* Triggered when an avatar leaves the domain.
* @function AvatarList.avatarRemovedEvent
* @param {Uuid} sessionUUID - The ID of the avatar that left the domain.
@ -154,7 +154,7 @@ signals:
*/
void avatarRemovedEvent(const QUuid& sessionUUID);
/**jsdoc
/*@jsdoc
* Triggered when an avatar's session ID changes.
* @function AvatarList.avatarSessionChangedEvent
* @param {Uuid} newSessionUUID - The new session ID.
@ -171,7 +171,7 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* Checks whether there is an avatar within a specified distance from a point.
* @function AvatarList.isAvatarInRange
* @param {string} position - The test position.
@ -183,7 +183,7 @@ public slots:
protected slots:
/**jsdoc
/*@jsdoc
* @function AvatarList.sessionUUIDChanged
* @param {Uuid} sessionUUID - New session ID.
* @param {Uuid} oldSessionUUID - Old session ID.
@ -191,7 +191,7 @@ protected slots:
*/
void sessionUUIDChanged(const QUuid& sessionUUID, const QUuid& oldUUID);
/**jsdoc
/*@jsdoc
* @function AvatarList.processAvatarDataPacket
* @param {object} message - Message.
* @param {object} sendingNode - Sending node.
@ -199,7 +199,7 @@ protected slots:
*/
void processAvatarDataPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
/**jsdoc
/*@jsdoc
* @function AvatarList.processAvatarIdentityPacket
* @param {object} message - Message.
* @param {object} sendingNode - Sending node.
@ -207,7 +207,7 @@ protected slots:
*/
void processAvatarIdentityPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
/**jsdoc
/*@jsdoc
* @function AvatarList.processBulkAvatarTraits
* @param {object} message - Message.
* @param {object} sendingNode - Sending node.
@ -215,7 +215,7 @@ protected slots:
*/
void processBulkAvatarTraits(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
/**jsdoc
/*@jsdoc
* @function AvatarList.processKillAvatar
* @param {object} message - Message.
* @param {object} sendingNode - Sending node.

View file

@ -107,7 +107,7 @@ public:
//
QString getSkeletonModelURLFromScript() const;
/**jsdoc
/*@jsdoc
* Gets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the
* laser emanates from the tip of that finger, otherwise it emanates from the palm.
* @function ScriptAvatar.getHandState
@ -115,7 +115,7 @@ public:
*/
Q_INVOKABLE char getHandState() const;
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
* @function ScriptAvatar.getJointRotation
@ -125,7 +125,7 @@ public:
*/
Q_INVOKABLE glm::quat getJointRotation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -137,7 +137,7 @@ public:
*/
Q_INVOKABLE glm::vec3 getJointTranslation(int index) const;
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
* @function ScriptAvatar.getJointRotation
@ -147,7 +147,7 @@ public:
*/
Q_INVOKABLE glm::quat getJointRotation(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to its parent, in model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
* <p>For information on the joint hierarchy used, see
@ -159,7 +159,7 @@ public:
*/
Q_INVOKABLE glm::vec3 getJointTranslation(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the rotations of all joints in the avatar. Each joint's rotation is relative to its parent joint.
* @function ScriptAvatar.getJointRotations
* @returns {Quat[]} The rotations of all joints relative to each's parent, or <code>[]</code> if the avatar data aren't
@ -167,7 +167,7 @@ public:
*/
Q_INVOKABLE QVector<glm::quat> getJointRotations() const;
/**jsdoc
/*@jsdoc
* Gets the translations of all joints in the avatar. Each joint's translation is relative to its parent joint, in
* model coordinates.
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
@ -178,7 +178,7 @@ public:
*/
Q_INVOKABLE QVector<glm::vec3> getJointTranslations() const;
/**jsdoc
/*@jsdoc
* Checks that the data for a joint are valid.
* @function ScriptAvatar.isJointDataValid
* @param {number} index - The index of the joint.
@ -187,7 +187,7 @@ public:
*/
Q_INVOKABLE bool isJointDataValid(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the joint index for a named joint. The joint index value is the position of the joint in the array returned by
* {@linkScriptAvatar.getJointNames}.
* @function ScriptAvatar.getJointIndex
@ -196,14 +196,14 @@ public:
*/
Q_INVOKABLE int getJointIndex(const QString& name) const;
/**jsdoc
/*@jsdoc
* Gets the names of all the joints in the avatar.
* @function ScriptAvatar.getJointNames
* @returns {string[]} The joint names, or <code>[]</code> if the avatar data aren't available.
*/
Q_INVOKABLE QStringList getJointNames() const;
/**jsdoc
/*@jsdoc
* Gets information about the models currently attached to the avatar.
* @function ScriptAvatar.getAttachmentData
* @returns {AttachmentData[]} Information about all models attached to the avatar, or <code>[]</code> if the avatar data
@ -233,28 +233,28 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>displayName</code> property value changes.
* @function ScriptAvatar.displayNameChanged
* @returns {Signal}
*/
void displayNameChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>sessionDisplayName</code> property value changes.
* @function ScriptAvatar.sessionDisplayNameChanged
* @returns {Signal}
*/
void sessionDisplayNameChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's model (i.e., <code>skeletonModelURL</code> property value) changes.
* @function ScriptAvatar.skeletonModelURLChanged
* @returns {Signal}
*/
void skeletonModelURLChanged();
/**jsdoc
/*@jsdoc
* Triggered when the avatar's <code>lookAtSnappingEnabled</code> property value changes.
* @function ScriptAvatar.lookAtSnappingChanged
* @param {boolean} enabled - <code>true</code> if look-at snapping is enabled, <code>false</code> if not.
@ -264,7 +264,7 @@ signals:
public slots:
/**jsdoc
/*@jsdoc
* Gets the rotation of a joint relative to the avatar.
* @function ScriptAvatar.getAbsoluteJointRotationInObjectFrame
* @param {number} index - The index of the joint.
@ -273,7 +273,7 @@ public slots:
*/
glm::quat getAbsoluteJointRotationInObjectFrame(int index) const;
/**jsdoc
/*@jsdoc
* Gets the translation of a joint relative to the avatar.
* @function ScriptAvatar.getAbsoluteJointTranslationInObjectFrame
* @param {number} index - The index of the joint.

View file

@ -33,7 +33,7 @@ namespace controller {
return std::make_shared<ActionEndpoint>(input);
}
/**jsdoc
/*@jsdoc
* <p>The <code>Controller.Actions</code> object has properties representing predefined actions on the user's avatar and
* Interface. The property values are integer IDs, uniquely identifying each action. <em>Read-only.</em></p>
* <p>These actions can be used as end points in the routes of a {@link MappingObject}. The data item routed to each action

View file

@ -32,7 +32,7 @@ namespace controller {
class Endpoint;
using EndpointPointer = std::shared_ptr<Endpoint>;
/**jsdoc
/*@jsdoc
* <p>Some controller actions may be associated with one or both hands:</p>
* <table>
* <thead>
@ -52,7 +52,7 @@ enum Hand {
BOTH
};
/**jsdoc
/*@jsdoc
* <p>The <code>Controller.Hardware</code> object has properties representing standard and hardware-specific controller and
* computer outputs, plus predefined actions on Interface and the user's avatar. <em>Read-only.</em></p>
* <p>The outputs can be mapped to actions or functions in a {@link RouteObject} mapping. Additionally, hardware-specific

View file

@ -30,7 +30,7 @@ namespace controller {
velocity == right.getVelocity() && angularVelocity == right.getAngularVelocity();
}
/**jsdoc
/*@jsdoc
* The pose of a joint or other item relative to the world or a parent.
* @typedef {object} Pose
* @property {Vec3} translation - Translation.

View file

@ -72,7 +72,7 @@ namespace controller {
ScriptingInterface();
virtual ~ScriptingInterface() {};
/**jsdoc
/*@jsdoc
* Gets a list of all available actions.
* @function Controller.getAllActions
* @returns {Action[]} All available actions.
@ -81,7 +81,7 @@ namespace controller {
// FIXME: This function causes a JavaScript crash: https://highfidelity.manuscript.com/f/cases/edit/13921
Q_INVOKABLE QVector<Action> getAllActions();
/**jsdoc
/*@jsdoc
* Gets a list of all available inputs for a hardware device.
* @function Controller.getAvailableInputs
* @param {number} deviceID - Integer ID of the hardware device.
@ -91,7 +91,7 @@ namespace controller {
// FIXME: This function causes a JavaScript crash: https://highfidelity.manuscript.com/f/cases/edit/13922
Q_INVOKABLE QVector<Input::NamedPair> getAvailableInputs(unsigned int device);
/**jsdoc
/*@jsdoc
* Finds the name of a particular controller from its device ID.
* @function Controller.getDeviceName
* @param {number} deviceID - The integer ID of the device.
@ -105,7 +105,7 @@ namespace controller {
*/
Q_INVOKABLE QString getDeviceName(unsigned int device);
/**jsdoc
/*@jsdoc
* Gets the current value of an action.
* @function Controller.getActionValue
* @param {number} actionID - The integer ID of the action.
@ -120,7 +120,7 @@ namespace controller {
*/
Q_INVOKABLE float getActionValue(int action);
/**jsdoc
/*@jsdoc
* Finds the ID of a specific controller from its device name.
* @function Controller.findDevice
* @param {string} deviceName - The name of the device to find.
@ -131,7 +131,7 @@ namespace controller {
*/
Q_INVOKABLE int findDevice(QString name);
/**jsdoc
/*@jsdoc
* Gets the names of all currently available controller devices plus "Actions", "Application", and "Standard".
* @function Controller.getDeviceNames
* @returns {string[]} An array of device names.
@ -142,7 +142,7 @@ namespace controller {
*/
Q_INVOKABLE QVector<QString> getDeviceNames();
/**jsdoc
/*@jsdoc
* Finds the ID of an action from its name.
* @function Controller.findAction
* @param {string} actionName - The name of the action: one of the {@link Controller.Actions} property names.
@ -155,7 +155,7 @@ namespace controller {
*/
Q_INVOKABLE int findAction(QString actionName);
/**jsdoc
/*@jsdoc
* Gets the names of all actions available as properties of {@link Controller.Actions}.
* @function Controller.getActionNames
* @returns {string[]} An array of action names.
@ -166,7 +166,7 @@ namespace controller {
*/
Q_INVOKABLE QVector<QString> getActionNames() const;
/**jsdoc
/*@jsdoc
* Gets the value of a controller button or axis output. Note: Also gets the value of a controller axis output.
* @function Controller.getValue
* @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} item.
@ -185,7 +185,7 @@ namespace controller {
*/
Q_INVOKABLE float getValue(const int& source) const;
/**jsdoc
/*@jsdoc
* Gets the value of a controller axis output. Note: Also gets the value of a controller button output.
* @function Controller.getAxisValue
* @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} item.
@ -195,7 +195,7 @@ namespace controller {
// TODO: getAxisValue() should use const int& parameter? Or others shouldn't?
Q_INVOKABLE float getAxisValue(int source) const;
/**jsdoc
/*@jsdoc
* Gets the value of a controller pose output.
* @function Controller.getPoseValue
* @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} pose output.
@ -207,7 +207,7 @@ namespace controller {
*/
Q_INVOKABLE Pose getPoseValue(const int& source) const;
/**jsdoc
/*@jsdoc
* Triggers a haptic pulse on connected and enabled devices that have the capability.
* @function Controller.triggerHapticPulse
* @param {number} strength - The strength of the haptic pulse, range <code>0.0</code> &ndash; <code>1.0</code>.
@ -224,7 +224,7 @@ namespace controller {
*/
Q_INVOKABLE bool triggerHapticPulse(float strength, float duration, uint16_t index = 2) const;
/**jsdoc
/*@jsdoc
* Triggers a 250ms haptic pulse on connected and enabled devices that have the capability.
* @function Controller.triggerShortHapticPulse
* @param {number} strength - The strength of the haptic pulse, range <code>0.0</code> &ndash; <code>1.0</code>.
@ -235,7 +235,7 @@ namespace controller {
*/
Q_INVOKABLE bool triggerShortHapticPulse(float strength, uint16_t index = 2) const;
/**jsdoc
/*@jsdoc
* Triggers a haptic pulse on a particular device if connected and enabled and it has the capability.
* @function Controller.triggerHapticPulseOnDevice
* @param {number} deviceID - The ID of the device to trigger the haptic pulse on.
@ -255,7 +255,7 @@ namespace controller {
Q_INVOKABLE bool triggerHapticPulseOnDevice(unsigned int device, float strength, float duration,
uint16_t index = 2) const;
/**jsdoc
/*@jsdoc
* Triggers a 250ms haptic pulse on a particular device if connected and enabled and it has the capability.
* @function Controller.triggerShortHapticPulseOnDevice
* @param {number} deviceID - The ID of the device to trigger the haptic pulse on.
@ -267,7 +267,7 @@ namespace controller {
*/
Q_INVOKABLE bool triggerShortHapticPulseOnDevice(unsigned int device, float strength, uint16_t index = 2) const;
/**jsdoc
/*@jsdoc
* Creates a new controller mapping. Routes can then be added to the mapping using {@link MappingObject} methods and
* routed to <code>Standard</code> controls, <code>Actions</code>, or script functions using {@link RouteObject}
* methods. The mapping can then be enabled using {@link Controller.enableMapping|enableMapping} for it to take effect.
@ -288,7 +288,7 @@ namespace controller {
*/
Q_INVOKABLE QObject* newMapping(const QString& mappingName = QUuid::createUuid().toString());
/**jsdoc
/*@jsdoc
* Enables or disables a controller mapping. When enabled, the routes in the mapping have effect.
* @function Controller.enableMapping
* @param {string} mappingName - The name of the mapping.
@ -296,14 +296,14 @@ namespace controller {
*/
Q_INVOKABLE void enableMapping(const QString& mappingName, bool enable = true);
/**jsdoc
/*@jsdoc
* Disables a controller mapping. When disabled, the routes in the mapping have no effect.
* @function Controller.disableMapping
* @param {string} mappingName - The name of the mapping.
*/
Q_INVOKABLE void disableMapping(const QString& mappingName) { enableMapping(mappingName, false); }
/**jsdoc
/*@jsdoc
* Creates a new controller mapping from a {@link Controller.MappingJSON|MappingJSON} string. Use
* {@link Controller.enableMapping|enableMapping} to enable the mapping for it to take effect.
* @function Controller.parseMapping
@ -326,7 +326,7 @@ namespace controller {
*/
Q_INVOKABLE QObject* parseMapping(const QString& json);
/**jsdoc
/*@jsdoc
* Creates a new controller mapping from a {@link Controller.MappingJSON|MappingJSON} JSON file at a URL. Use
* {@link Controller.enableMapping|enableMapping} to enable the mapping for it to take effect.
* <p><strong>Warning:</strong> This function is not yet implemented; it doesn't load a mapping and just returns
@ -338,7 +338,7 @@ namespace controller {
Q_INVOKABLE QObject* loadMapping(const QString& jsonUrl);
/**jsdoc
/*@jsdoc
* Gets the {@link Controller.Hardware} property tree. Calling this function is the same as using the {@link Controller}
* property, <code>Controller.Hardware</code>.
* @function Controller.getHardware
@ -346,7 +346,7 @@ namespace controller {
*/
Q_INVOKABLE const QVariantMap getHardware() { return _hardware; }
/**jsdoc
/*@jsdoc
* Gets the {@link Controller.Actions} property tree. Calling this function is the same as using the {@link Controller}
* property, <code>Controller.Actions</code>.
* @function Controller.getActions
@ -354,7 +354,7 @@ namespace controller {
*/
Q_INVOKABLE const QVariantMap getActions() { return _actions; } //undefined
/**jsdoc
/*@jsdoc
* Gets the {@link Controller.Standard} property tree. Calling this function is the same as using the {@link Controller}
* property, <code>Controller.Standard</code>.
* @function Controller.getStandard
@ -363,7 +363,7 @@ namespace controller {
Q_INVOKABLE const QVariantMap getStandard() { return _standard; }
/**jsdoc
/*@jsdoc
* Starts making a recording of currently active controllers.
* @function Controller.startInputRecording
* @example <caption>Make a controller recording.</caption>
@ -383,13 +383,13 @@ namespace controller {
*/
Q_INVOKABLE void startInputRecording();
/**jsdoc
/*@jsdoc
* Stops making a recording started by {@link Controller.startInputRecording|startInputRecording}.
* @function Controller.stopInputRecording
*/
Q_INVOKABLE void stopInputRecording();
/**jsdoc
/*@jsdoc
* Plays back the current recording from the beginning. The current recording may have been recorded by
* {@link Controller.startInputRecording|startInputRecording} and
* {@link Controller.stopInputRecording|stopInputRecording}, or loaded by
@ -412,13 +412,13 @@ namespace controller {
*/
Q_INVOKABLE void startInputPlayback();
/**jsdoc
/*@jsdoc
* Stops play back of a recording started by {@link Controller.startInputPlayback|startInputPlayback}.
* @function Controller.stopInputPlayback
*/
Q_INVOKABLE void stopInputPlayback();
/**jsdoc
/*@jsdoc
* Saves the current recording to a file. The current recording may have been recorded by
* {@link Controller.startInputRecording|startInputRecording} and
* {@link Controller.stopInputRecording|stopInputRecording}, or loaded by
@ -428,21 +428,21 @@ namespace controller {
*/
Q_INVOKABLE void saveInputRecording();
/**jsdoc
/*@jsdoc
* Loads an input recording, ready for play back.
* @function Controller.loadInputRecording
* @param {string} file - The path to the recording file, prefixed by <code>"file:///"</code>.
*/
Q_INVOKABLE void loadInputRecording(const QString& file);
/**jsdoc
/*@jsdoc
* Gets the directory in which input recordings are saved.
* @function Controller.getInputRecorderSaveDirectory
* @returns {string} The directory in which input recordings are saved.
*/
Q_INVOKABLE QString getInputRecorderSaveDirectory();
/**jsdoc
/*@jsdoc
* Gets the names of all the active and running (enabled) input devices.
* @function Controller.getRunningInputDevices
* @returns {string[]} The list of current active and running input devices.
@ -458,7 +458,7 @@ namespace controller {
public slots:
/**jsdoc
/*@jsdoc
* Disables processing of mouse "move", "press", "double-press", and "release" events into
* {@link Controller.Hardware|Controller.Hardware.Keyboard} outputs.
* @function Controller.captureMouseEvents
@ -486,7 +486,7 @@ namespace controller {
*/
virtual void captureMouseEvents() { _mouseCaptured = true; }
/**jsdoc
/*@jsdoc
* Enables processing of mouse "move", "press", "double-press", and "release" events into
* {@link Controller.Hardware-Keyboard|Controller.Hardware.Keyboard} outputs that were disabled using
* {@link Controller.captureMouseEvents|captureMouseEvents}.
@ -495,7 +495,7 @@ namespace controller {
virtual void releaseMouseEvents() { _mouseCaptured = false; }
/**jsdoc
/*@jsdoc
* Disables processing of touch "begin", "update", and "end" events into
* {@link Controller.Hardware|Controller.Hardware.Keyboard},
* {@link Controller.Hardware|Controller.Hardware.Touchscreen}, and
@ -504,7 +504,7 @@ namespace controller {
*/
virtual void captureTouchEvents() { _touchCaptured = true; }
/**jsdoc
/*@jsdoc
* Enables processing of touch "begin", "update", and "end" events into
* {@link Controller.Hardware|Controller.Hardware.Keyboard},
* {@link Controller.Hardware|Controller.Hardware.Touchscreen}, and
@ -515,14 +515,14 @@ namespace controller {
virtual void releaseTouchEvents() { _touchCaptured = false; }
/**jsdoc
/*@jsdoc
* Disables processing of mouse wheel rotation events into {@link Controller.Hardware|Controller.Hardware.Keyboard}
* outputs.
* @function Controller.captureWheelEvents
*/
virtual void captureWheelEvents() { _wheelCaptured = true; }
/**jsdoc
/*@jsdoc
* Enables processing of mouse wheel rotation events into {@link Controller.Hardware|Controller.Hardware.Keyboard}
* outputs that wer disabled using {@link Controller.captureWheelEvents|captureWheelEvents}.
* @function Controller.releaseWheelEvents
@ -530,7 +530,7 @@ namespace controller {
virtual void releaseWheelEvents() { _wheelCaptured = false; }
/**jsdoc
/*@jsdoc
* Disables translating and rotating the user's avatar in response to keyboard and controller controls.
* @function Controller.captureActionEvents
* @example <caption>Disable avatar translation and rotation for a short period.</caption>
@ -544,14 +544,14 @@ namespace controller {
*/
virtual void captureActionEvents() { _actionsCaptured = true; }
/**jsdoc
/*@jsdoc
* Enables translating and rotating the user's avatar in response to keyboard and controller controls that were disabled
* using {@link Controller.captureActionEvents|captureActionEvents}.
* @function Controller.releaseActionEvents
*/
virtual void releaseActionEvents() { _actionsCaptured = false; }
/**jsdoc
/*@jsdoc
* @function Controller.updateRunningInputDevices
* @param {string} deviceName - Device name.
* @param {boolean} isRunning - Is running.
@ -561,7 +561,7 @@ namespace controller {
void updateRunningInputDevices(const QString& deviceName, bool isRunning, const QStringList& runningDevices);
signals:
/**jsdoc
/*@jsdoc
* Triggered when an action occurs.
* @function Controller.actionEvent
* @param {number} actionID - The ID of the action, per {@link Controller.findAction|findAction}.
@ -586,7 +586,7 @@ namespace controller {
*/
void actionEvent(int action, float state);
/**jsdoc
/*@jsdoc
* Triggered when there is a new controller input event.
* @function Controller.inputEvent
* @param {number} action - The input action, per {@link Controller.Standard}.
@ -610,7 +610,7 @@ namespace controller {
*/
void inputEvent(int action, float state);
/**jsdoc
/*@jsdoc
* Triggered when a device is registered or unregistered by a plugin. Not all plugins generate
* <code>hardwareChanged</code> events: for example, connecting or disconnecting a mouse will not generate an event but
* connecting or disconnecting an Xbox controller will.
@ -619,7 +619,7 @@ namespace controller {
*/
void hardwareChanged();
/**jsdoc
/*@jsdoc
* Triggered when an input device starts or stops being active and running (enabled). For example, enabling or
* disabling the LeapMotion in Settings &gt; Controls &gt; Calibration will trigger this signal.
* @function Controller.inputDeviceRunningChanged

View file

@ -27,7 +27,7 @@ void StandardController::focusOutEvent() {
_buttonPressedMap.clear();
};
/**jsdoc
/*@jsdoc
* <p>The <code>Controller.Standard</code> object has properties representing standard controller outputs. Those for physical
* controllers are based on the XBox controller, with aliases for PlayStation. The property values are integer IDs, uniquely
* identifying each output. <em>Read-only.</em></p>

View file

@ -24,7 +24,7 @@ namespace controller {
class ScriptingInterface;
class UserInputMapper;
/**jsdoc
/*@jsdoc
* <p>A {@link Controller} mapping object that can contain a set of routes that map:</p>
* <ul>
* <li>{@link Controller.Standard} outputs to {@link Controller.Actions} actions or script functions.</li>
@ -61,7 +61,7 @@ class UserInputMapper;
* @hifi-avatar
*/
/**jsdoc
/*@jsdoc
* A {@link MappingObject} can be specified in JSON format. A simple example is provided below. Full examples &mdash; the
* default mappings provided in Interface &mdash; can be found at
* <a href="https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers">
@ -82,7 +82,7 @@ class UserInputMapper;
* }
*/
/**jsdoc
/*@jsdoc
* A route in a {@link Controller.MappingJSON}.
* @typedef {object} Controller.MappingJSONRoute
* @property {string|Controller.MappingJSONAxis} from - The name of a {@link Controller.Hardware} property or an axis made from
@ -97,7 +97,7 @@ class UserInputMapper;
* <code>"Controller."</code> can be omitted.
*/
/**jsdoc
/*@jsdoc
* An axis pair in a {@link Controller.MappingJSONRoute}.
* @typedef {object} Controller.MappingJSONAxis
* @property {string[][]} makeAxis - A two-member array of single-member arrays of {@link Controller.Hardware} property names.
@ -110,7 +110,7 @@ class UserInputMapper;
* }
*/
/**jsdoc
/*@jsdoc
* A filter in a {@link Controller.MappingJSONRoute}.
* @typedef {object} Controller.MappingJSONFilter
* @property {string} type - The name of the filter, being the name of the one of the {@link RouteObject}'s filter methods.
@ -134,7 +134,7 @@ public:
MappingBuilderProxy(UserInputMapper& parent, Mapping::Pointer mapping)
: _parent(parent), _mapping(mapping) { }
/**jsdoc
/*@jsdoc
* Creates a new {@link RouteObject} from a controller output, ready to be mapped to a standard control, action, or
* function.
* <p>This is a QML-specific version of {@link MappingObject#from|from}: use this version in QML files.</p>
@ -145,7 +145,7 @@ public:
*/
Q_INVOKABLE QObject* fromQml(const QJSValue& source);
/**jsdoc
/*@jsdoc
* Creates a new {@link RouteObject} from two numeric {@link Controller.Hardware} outputs, one applied in the negative
* direction and the other in the positive direction, ready to be mapped to a standard control, action, or function.
* <p>This is a QML-specific version of {@link MappingObject#makeAxis|makeAxis}: use this version in QML files.</p>
@ -157,7 +157,7 @@ public:
*/
Q_INVOKABLE QObject* makeAxisQml(const QJSValue& source1, const QJSValue& source2);
/**jsdoc
/*@jsdoc
* Creates a new {@link RouteObject} from a controller output, ready to be mapped to a standard control, action, or
* function.
* @function MappingObject#from
@ -167,7 +167,7 @@ public:
*/
Q_INVOKABLE QObject* from(const QScriptValue& source);
/**jsdoc
/*@jsdoc
* Creates a new {@link RouteObject} from two numeric {@link Controller.Hardware} outputs, one applied in the negative
* direction and the other in the positive direction, ready to be mapped to a standard control, action, or function.
* @function MappingObject#makeAxis
@ -189,7 +189,7 @@ public:
*/
Q_INVOKABLE QObject* makeAxis(const QScriptValue& source1, const QScriptValue& source2);
/**jsdoc
/*@jsdoc
* Enables or disables the mapping. When enabled, the routes in the mapping take effect.
* <p>Synonymous with {@link Controller.enableMapping}.</p>
* @function MappingObject#enable
@ -198,7 +198,7 @@ public:
*/
Q_INVOKABLE QObject* enable(bool enable = true);
/**jsdoc
/*@jsdoc
* Disables the mapping. When disabled, the routes in the mapping have no effect.
* <p>Synonymous with {@link Controller.disableMapping}.</p>
* @function MappingObject#disable

View file

@ -25,7 +25,7 @@ namespace controller {
class ScriptingInterface;
/**jsdoc
/*@jsdoc
* <p>A route in a {@link MappingObject} used by the {@link Controller} API.</p>
*
* <p>Create a route using {@link MappingObject} methods and apply this object's methods to process it, terminating with
@ -51,7 +51,7 @@ class RouteBuilderProxy : public QObject {
RouteBuilderProxy(UserInputMapper& parent, Mapping::Pointer mapping, Route::Pointer route)
: _parent(parent), _mapping(mapping), _route(route) { }
/**jsdoc
/*@jsdoc
* Terminates the route with a standard control, an action, or a script function. The output value from the route is
* sent to the specified destination.
* <p>This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files.</p>
@ -62,7 +62,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE void toQml(const QJSValue& destination);
/**jsdoc
/*@jsdoc
* Processes the route only if a condition is satisfied. The condition is evaluated before the route input is read, and
* the input is read only if the condition is <code>true</code>. Thus, if the condition is not met then subsequent
* routes using the same input are processed.
@ -81,7 +81,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* whenQml(const QJSValue& expression);
/**jsdoc
/*@jsdoc
* Terminates the route with a standard control, an action, or a script function. The output value from the route is
* sent to the specified destination.
* @function RouteObject#to
@ -117,7 +117,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE void to(const QScriptValue& destination);
/**jsdoc
/*@jsdoc
* Enables or disables writing debug information for a route to the program log.
* @function RouteObject#debug
* @param {boolean} [enable=true] - If <code>true</code> then writing debug information is enabled for the route,
@ -147,7 +147,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* debug(bool enable = true);
/**jsdoc
/*@jsdoc
* Processes the route without marking the controller output as having been read, so that other routes from the same
* controller output can also process.
* @function RouteObject#peek
@ -157,7 +157,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* peek(bool enable = true);
/**jsdoc
/*@jsdoc
* Processes the route only if a condition is satisfied. The condition is evaluated before the route input is read, and
* the input is read only if the condition is <code>true</code>. Thus, if the condition is not met then subsequent
* routes using the same input are processed.
@ -195,7 +195,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* when(const QScriptValue& expression);
/**jsdoc
/*@jsdoc
* Filters numeric route values to lie between two values; values outside this range are not passed on through the
* route.
* @function RouteObject#clamp
@ -216,7 +216,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* clamp(float min, float max);
/**jsdoc
/*@jsdoc
* Filters numeric route values such that they are rounded to <code>0</code> or <code>1</code> without output values
* flickering when the input value hovers around <code>0.5</code>. For example, this enables you to use an analog input
* as if it were a toggle.
@ -241,7 +241,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* hysteresis(float min, float max);
/**jsdoc
/*@jsdoc
* Filters numeric route values to send at a specified interval.
* @function RouteObject#pulse
* @param {number} interval - The interval between sending values, in seconds.
@ -260,7 +260,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* pulse(float interval);
/**jsdoc
/*@jsdoc
* Filters numeric and {@link Pose} route values to be scaled by a constant amount.
* @function RouteObject#scale
* @param {number} multiplier - The scale to multiply the value by.
@ -282,7 +282,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* scale(float multiplier);
/**jsdoc
/*@jsdoc
* Filters numeric and {@link Pose} route values to have the opposite sign, e.g., <code>0.5</code> is changed to
* <code>-0.5</code>.
* @function RouteObject#invert
@ -304,7 +304,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* invert();
/**jsdoc
/*@jsdoc
* Filters numeric route values such that they're sent only when the input value is outside a dead-zone. When the input
* passes the dead-zone value, output is sent starting at <code>0.0</code> and catching up with the input value. As the
* input returns toward the dead-zone value, output values reduce to <code>0.0</code> at the dead-zone value.
@ -326,7 +326,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* deadZone(float min);
/**jsdoc
/*@jsdoc
* Filters numeric route values such that they are rounded to <code>-1</code>, <code>0</code>, or <code>1</code>.
* For example, this enables you to use an analog input as if it were a toggle or, in the case of a bidirectional axis,
* a tri-state switch.
@ -347,7 +347,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* constrainToInteger();
/**jsdoc
/*@jsdoc
* Filters numeric route values such that they are rounded to <code>0</code> or <code>1</code>. For example, this
* enables you to use an analog input as if it were a toggle.
* @function RouteObject#constrainToPositiveInteger
@ -366,7 +366,7 @@ class RouteBuilderProxy : public QObject {
*/
Q_INVOKABLE QObject* constrainToPositiveInteger();
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to have a pre-translation applied.
* @function RouteObject#translate
* @param {Vec3} translate - The pre-translation to add to the pose.
@ -375,7 +375,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter not currently used.
Q_INVOKABLE QObject* translate(glm::vec3 translate);
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to have a pre-transform applied.
* @function RouteObject#transform
* @param {Mat4} transform - The pre-transform to apply.
@ -384,7 +384,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter not currently used.
Q_INVOKABLE QObject* transform(glm::mat4 transform);
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to have a post-transform applied.
* @function RouteObject#postTransform
* @param {Mat4} transform - The post-transform to apply.
@ -393,7 +393,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter not currently used.
Q_INVOKABLE QObject* postTransform(glm::mat4 transform);
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to have a pre-rotation applied.
* @function RouteObject#rotate
* @param {Quat} rotation - The pre-rotation to add to the pose.
@ -402,7 +402,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter not currently used.
Q_INVOKABLE QObject* rotate(glm::quat rotation);
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to be smoothed by a low velocity filter. The filter's rotation and translation
* values are calculated as: <code>(1 - f) * currentValue + f * previousValue</code> where
* <code>f = currentVelocity / filterConstant</code>. At low velocities, the filter value is largely the previous
@ -417,7 +417,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter not currently used.
Q_INVOKABLE QObject* lowVelocity(float rotationConstant, float translationConstant);
/**jsdoc
/*@jsdoc
* Filters {@link Pose} route values to be smoothed by an exponential decay filter. The filter's rotation and
* translation values are calculated as: <code>filterConstant * currentValue + (1 - filterConstant) *
* previousValue</code>. Values near 1 are less smooth with lower latency; values near 0 are more smooth with higher
@ -430,7 +430,7 @@ class RouteBuilderProxy : public QObject {
// No JSDoc example because filter used only in Vive.json.
Q_INVOKABLE QObject* exponentialSmoothing(float rotationConstant, float translationConstant);
/**jsdoc
/*@jsdoc
* Filters numeric route values such that a value of <code>0.0</code> is changed to <code>1.0</code>, and other values
* are changed to <code>0.0</code>.
* @function RouteObject#logicalNot

View file

@ -33,14 +33,14 @@ public:
virtual bool isMounted() const = 0;
signals:
/**jsdoc
/*@jsdoc
* Triggered when the <code>HMD.ipdScale</code> property value changes.
* @function HMD.IPDScaleChanged
* @returns {Signal}
*/
void IPDScaleChanged();
/**jsdoc
/*@jsdoc
* Triggered when Interface's display mode changes and when the user puts on or takes off their HMD.
* @function HMD.displayModeChanged
* @param {boolean} isHMDMode - <code>true</code> if the display mode is HMD, otherwise <code>false</code>. This is the
@ -56,7 +56,7 @@ signals:
*/
void displayModeChanged(bool isHMDMode);
/**jsdoc
/*@jsdoc
* Triggered when the <code>HMD.mounted</code> property value changes.
* @function HMD.mountedChanged
* @returns {Signal}

View file

@ -175,7 +175,7 @@ private:
ReticleInterface* _reticleInterface { nullptr };
};
/**jsdoc
/*@jsdoc
* The <code>Reticle</code> API provides access to the mouse cursor. The cursor may be an arrow or a reticle circle, depending
* on Interface settings. The mouse cursor is visible in HMD mode if controllers aren't being used.
*
@ -221,7 +221,7 @@ class ReticleInterface : public QObject {
public:
ReticleInterface(CompositorHelper* outer) : QObject(outer), _compositor(outer) {}
/**jsdoc
/*@jsdoc
* Checks whether the mouse cursor is captured, displaying only in Interface and not on the rest of the desktop. The mouse
* cursor is captured when in HMD mode and the Interface window content (excluding menu items) has focus, if capturing is
* enabled (<code>allowMouseCapture</code> property value is <code>true</code>).
@ -231,7 +231,7 @@ public:
*/
Q_INVOKABLE bool isMouseCaptured() { return _compositor->shouldCaptureMouse(); }
/**jsdoc
/*@jsdoc
* Gets whether the mouse cursor will be captured when in HMD mode and the Interface window content (excluding menu items)
* has focus. When captured, the mouse cursor displays only in Interface, not on the rest of the desktop.
* @function Reticle.getAllowMouseCapture
@ -240,7 +240,7 @@ public:
*/
Q_INVOKABLE bool getAllowMouseCapture() { return _compositor->getAllowMouseCapture(); }
/**jsdoc
/*@jsdoc
* Sets whether the mouse cursor will be captured when in HMD mode and the Interface window content (excluding menu items)
* has focus. When captured, the mouse cursor displays only in Interface, not on the rest of desktop.
* @function Reticle.setAllowMouseCapture
@ -249,7 +249,7 @@ public:
*/
Q_INVOKABLE void setAllowMouseCapture(bool value) { return _compositor->setAllowMouseCapture(value); }
/**jsdoc
/*@jsdoc
* Gets whether the mouse cursor is pointing at UI in the Interface window in desktop mode or on the HUD surface in HMD
* mode.
* @function Reticle.isPointingAtSystemOverlay
@ -258,7 +258,7 @@ public:
*/
Q_INVOKABLE bool isPointingAtSystemOverlay() { return !_compositor->getReticleOverDesktop(); }
/**jsdoc
/*@jsdoc
* Gets whether the reticle circle is visible in desktop mode, or the arrow or reticle circle are visible in HMD mode.
* @function Reticle.getVisible
* @returns {boolean} <code>true</code> if the reticle circle is visible in desktop mode, and the arrow or
@ -267,7 +267,7 @@ public:
*/
Q_INVOKABLE bool getVisible() { return _compositor->getReticleVisible(); }
/**jsdoc
/*@jsdoc
* Sets whether the reticle circle is visible in desktop mode, or the arrow or reticle circle are visible in HMD mode.
* @function Reticle.setVisible
* @param {boolean} visible - <code>true</code> if the reticle circle is visible in desktop mode, and the arrow or reticle
@ -276,21 +276,21 @@ public:
*/
Q_INVOKABLE void setVisible(bool visible) { _compositor->setReticleVisible(visible); }
/**jsdoc
/*@jsdoc
* Gets the depth (distance) that the reticle is displayed at relative to the HMD view, in HMD mode.
* @function Reticle.getDepth
* @returns {number} The depth (distance) that the reticle is displayed at relative to the HMD view, in HMD mode.
*/
Q_INVOKABLE float getDepth() { return _compositor->getReticleDepth(); }
/**jsdoc
/*@jsdoc
* Sets the depth (distance) that the reticle is displayed at relative to the HMD view, in HMD mode.
* @function Reticle.setDepth
* @param {number} depth - The depth (distance) that the reticle is displayed at relative to the HMD view, in HMD mode.
*/
Q_INVOKABLE void setDepth(float depth) { _compositor->setReticleDepth(depth); }
/**jsdoc
/*@jsdoc
* Gets the scale of the reticle circle in desktop mode, and the arrow and reticle circle in HMD mode. (Does not affect the
* size of the arrow in desktop mode.) The default scale is <code>1.0</code>.
* @function Reticle.getScale
@ -298,7 +298,7 @@ public:
*/
Q_INVOKABLE float getScale() const;
/**jsdoc
/*@jsdoc
* Sets the scale of the reticle circle in desktop mode, and the arrow and reticle circle in HMD mode. (Does not affect the
* size of the arrow in desktop mode.) The default scale is <code>1.0</code>.
* @function Reticle.setScale
@ -306,7 +306,7 @@ public:
*/
Q_INVOKABLE void setScale(float scale);
/**jsdoc
/*@jsdoc
* Gets the position of the cursor. This is the position relative to the Interface window in desktop mode, and the HUD
* surface in HMD mode.
* <p><strong>Note:</strong> The position values may be negative.</p>
@ -315,7 +315,7 @@ public:
*/
Q_INVOKABLE QVariant getPosition() const;
/**jsdoc
/*@jsdoc
* Sets the position of the cursor. This is the position relative to the Interface window in desktop mode, and the HUD
* surface in HMD mode.
* <p><strong>Note:</strong> The position values may be negative.</p>
@ -324,7 +324,7 @@ public:
*/
Q_INVOKABLE void setPosition(QVariant position);
/**jsdoc
/*@jsdoc
* Gets the maximum reticle coordinates on the display device in desktop mode or the HUD surface in HMD mode. (The minimum
* reticle coordinates on the desktop display device or HUD surface are <code>0</code>, <code>0</code>.)
* @function Reticle.getMaximumPosition

View file

@ -27,7 +27,7 @@ class OctreePacketData;
class EntityTreeElementExtraEncodeData;
class ReadBitstreamToTreeParams;
/**jsdoc
/*@jsdoc
* Ambient light is defined by the following properties:
* @typedef {object} Entities.AmbientLight
* @property {number} ambientIntensity=0.5 - The intensity of the light.

View file

@ -47,7 +47,7 @@ bool operator!=(const AnimationPropertyGroup& a, const AnimationPropertyGroup& b
}
/**jsdoc
/*@jsdoc
* An animation is configured by the following properties:
* @typedef {object} Entities.AnimationProperties
* @property {string} url="" - The URL of the glTF or FBX file that has the animation. glTF files may be in JSON or binary

View file

@ -30,7 +30,7 @@ static const float INITIAL_BLOOM_INTENSITY { 0.25f };
static const float INITIAL_BLOOM_THRESHOLD { 0.7f };
static const float INITIAL_BLOOM_SIZE { 0.9f };
/**jsdoc
/*@jsdoc
* Bloom is defined by the following properties:
* @typedef {object} Entities.Bloom
* @property {number} bloomIntensity=0.25 - The intensity of the bloom effect.

View file

@ -93,7 +93,7 @@ variables. These argument variables are used by the code which is run when bull
#include "EntityItem.h"
/**jsdoc
/*@jsdoc
* <p>An entity action may be one of the following types:</p>
* <table>
* <thead>

View file

@ -664,7 +664,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
return changedProperties;
}
/**jsdoc
/*@jsdoc
* Different entity types have different properties: some common to all entities (listed in the table) and some specific to
* each {@link Entities.EntityType|EntityType} (linked to below).
*
@ -871,7 +871,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* @see {@link Entities.EntityProperties-Zone|EntityProperties-Zone}
*/
/**jsdoc
/*@jsdoc
* The <code>"Box"</code> {@link Entities.EntityType|EntityType} is the same as the <code>"Shape"</code>
* {@link Entities.EntityType|EntityType} except that its <code>shape</code> value is always set to <code>"Cube"</code>
* when the entity is created. If its <code>shape</code> property value is subsequently changed then the entity's
@ -882,7 +882,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* @see {@link Entities.EntityProperties-Shape|EntityProperties-Shape}
*/
/**jsdoc
/*@jsdoc
* The <code>"Light"</code> {@link Entities.EntityType|EntityType} adds local lighting effects. It has properties in addition
* to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -911,7 +911,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Line"</code> {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more
* points. It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
* <p class=important>Deprecated: Use {@link Entities.EntityProperties-PolyLine|PolyLine} entities instead.</p>
@ -939,7 +939,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Material"</code> {@link Entities.EntityType|EntityType} modifies existing materials on entities and avatars. It
* has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
* <p>To apply a material to an entity, set the material entity's <code>parentID</code> property to the entity ID.
@ -1005,7 +1005,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Model"</code> {@link Entities.EntityType|EntityType} displays a glTF, FBX, or OBJ model. When adding an entity,
* if no <code>dimensions</code> value is specified then the model is automatically sized to its
* <code>{@link Entities.EntityProperties|naturalDimensions}</code>. It has properties in addition to the common
@ -1077,7 +1077,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"ParticleEffect"</code> {@link Entities.EntityType|EntityType} displays a particle system that can be used to
* simulate things such as fire, smoke, snow, magic spells, etc. The particles emanate from an ellipsoid or part thereof.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
@ -1194,7 +1194,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"PolyLine"</code> {@link Entities.EntityType|EntityType} draws textured, straight lines between a sequence of
* points. It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1244,7 +1244,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"PolyVox"</code> {@link Entities.EntityType|EntityType} displays a set of textured voxels.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
* If you have two or more neighboring PolyVox entities of the same size abutting each other, you can display them as joined by
@ -1298,7 +1298,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* Entities.setVoxelSphere(polyVox, position, 0.8, 255);
*/
/**jsdoc
/*@jsdoc
* The <code>"Shape"</code> {@link Entities.EntityType|EntityType} displays an entity of a specified <code>shape</code>.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1319,7 +1319,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Sphere"</code> {@link Entities.EntityType|EntityType} is the same as the <code>"Shape"</code>
* {@link Entities.EntityType|EntityType} except that its <code>shape</code> value is always set to <code>"Sphere"</code>
* when the entity is created. If its <code>shape</code> property value is subsequently changed then the entity's
@ -1330,7 +1330,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* @see {@link Entities.EntityProperties-Shape|EntityProperties-Shape}
*/
/**jsdoc
/*@jsdoc
* The <code>"Text"</code> {@link Entities.EntityType|EntityType} displays a 2D rectangle of text in the domain.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1376,7 +1376,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Web"</code> {@link Entities.EntityType|EntityType} displays a browsable web page. Each user views their own copy
* of the web page: if one user navigates to another page on the entity, other users do not see the change; if a video is being
* played, users don't see it in sync. It has properties in addition to the common
@ -1430,7 +1430,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Zone"</code> {@link Entities.EntityType|EntityType} is a volume of lighting effects and avatar permissions.
* Avatar interaction events such as {@link Entities.enterEntity} are also often used with a Zone entity. It has properties in
* addition to the common {@link Entities.EntityProperties|EntityProperties}.
@ -1496,7 +1496,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Image"</code> {@link Entities.EntityType|EntityType} displays an image on a 2D rectangle in the domain.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1531,7 +1531,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Grid"</code> {@link Entities.EntityType|EntityType} displays a grid on a 2D plane.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1559,7 +1559,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* });
*/
/**jsdoc
/*@jsdoc
* The <code>"Gizmo"</code> {@link Entities.EntityType|EntityType} displays an entity that could be used as UI.
* It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}.
*
@ -1943,7 +1943,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool
_ring.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties);
}
/**jsdoc
/*@jsdoc
* The axis-aligned bounding box of an entity.
* @typedef {object} Entities.BoundingBox
* @property {Vec3} brn - The bottom right near (minimum axes values) corner of the AA box.
@ -1978,7 +1978,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool
QScriptValue renderInfo = engine->newObject();
/**jsdoc
/*@jsdoc
* Information on how an entity is rendered. Properties are only filled in for <code>Model</code> entities; other
* entity types have an empty object, <code>{}</code>.
* @typedef {object} Entities.RenderInfo
@ -3005,7 +3005,7 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr
return false;
}
/**jsdoc
/*@jsdoc
* Information about an entity property.
* @typedef {object} Entities.EntityPropertyInfo
* @property {number} propertyEnum - The internal number of the property.

View file

@ -16,7 +16,7 @@
#include <NodeList.h>
/**jsdoc
/*@jsdoc
* The <code>EntityScriptServerLog</code> API makes server log file output written by server entity scripts available to client
* scripts.
*
@ -34,7 +34,7 @@ public:
signals:
/**jsdoc
/*@jsdoc
* Triggered when one or more lines are written to the server log by server entity scripts.
* @function EntityScriptServerLog.receivedNewLogLines
* @param {string} logLines - The server log lines written by server entity scripts. If there are multiple lines they are

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more