Merge pull request #16224 from ctrlaltdavid/DOC-111

DOC-110, DOC-111, DOC-167: JSDoc fixes and tidying
This commit is contained in:
Shannon Romano 2019-10-08 10:01:21 -07:00 committed by GitHub
commit 7aa28f29d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 375 additions and 335 deletions

View file

@ -20,7 +20,7 @@ class FancyCamera : public Camera {
/**jsdoc /**jsdoc
* The <code>Camera</code> API provides access to the "camera" that defines your view in desktop and HMD display modes. * The <code>Camera</code> API provides access to the "camera" that defines your view in desktop and HMD display modes.
* The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, </code>-z</code> = forward. * The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
* *
* @namespace Camera * @namespace Camera
* *

View file

@ -2553,7 +2553,7 @@ void MyAvatar::clearWornAvatarEntities() {
} }
/**jsdoc /**jsdoc
* Information about an avatar entity. * <p>Information about an avatar entity.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Property</th><th>Type</th><th>Description</th></tr> * <tr><th>Property</th><th>Type</th><th>Description</th></tr>

View file

@ -170,10 +170,12 @@ class MyAvatar : public Avatar {
* collision. It can be a mono or stereo 16-bit WAV file running at either 24kHz or 48kHz. The latter is down-sampled * collision. It can be a mono or stereo 16-bit WAV file running at either 24kHz or 48kHz. The latter is down-sampled
* by the audio mixer, so all audio effectively plays back at a 24khz. 48kHz RAW files are also supported. * by the audio mixer, so all audio effectively plays back at a 24khz. 48kHz RAW files are also supported.
* @property {number} audioListenerMode=0 - Specifies the listening position when hearing spatialized audio. Must be one * @property {number} audioListenerMode=0 - Specifies the listening position when hearing spatialized audio. Must be one
* of the following property values:<br /> * of the following property values:
* <code>Myavatar.audioListenerModeHead</code><br /> * <ul>
* <code>Myavatar.audioListenerModeCamera</code><br /> * <li><code>MyAvatar.audioListenerModeHead</code></li>
* <code>Myavatar.audioListenerModeCustom</code> * <li><code>MyAvatar.audioListenerModeCamera</code></li>
* <li><code>MyAvatar.audioListenerModeCustom</code></li>
* </ul>
* @property {number} audioListenerModeHead=0 - The audio listening position is at the avatar's head. <em>Read-only.</em> * @property {number} audioListenerModeHead=0 - The audio listening position is at the avatar's head. <em>Read-only.</em>
* @property {number} audioListenerModeCamera=1 - The audio listening position is at the camera. <em>Read-only.</em> * @property {number} audioListenerModeCamera=1 - The audio listening position is at the camera. <em>Read-only.</em>
* @property {number} audioListenerModeCustom=2 - The audio listening position is at a the position specified by set by the * @property {number} audioListenerModeCustom=2 - The audio listening position is at a the position specified by set by the
@ -182,8 +184,8 @@ class MyAvatar : public Avatar {
* property value is <code>audioListenerModeCustom</code>. * property value is <code>audioListenerModeCustom</code>.
* @property {Quat} customListenOrientation=Quat.IDENTITY - The listening orientation used when the * @property {Quat} customListenOrientation=Quat.IDENTITY - The listening orientation used when the
* <code>audioListenerMode</code> property value is <code>audioListenerModeCustom</code>. * <code>audioListenerMode</code> property value is <code>audioListenerModeCustom</code>.
* @property {boolean} hasScriptedBlendshapes=false - <code>true</code> to transmit blendshapes over the network.<br /> * @property {boolean} hasScriptedBlendshapes=false - <code>true</code> to transmit blendshapes over the network.
* <strong>Note:</strong> Currently doesn't work. Use {@link MyAvatar.setForceFaceTrackerConnected} instead. * <p><strong>Note:</strong> Currently doesn't work. Use {@link MyAvatar.setForceFaceTrackerConnected} instead.</p>
* @property {boolean} hasProceduralBlinkFaceMovement=true - <code>true</code> if procedural blinking is turned on. * @property {boolean} hasProceduralBlinkFaceMovement=true - <code>true</code> if procedural blinking is turned on.
* @property {boolean} hasProceduralEyeFaceMovement=true - <code>true</code> if procedural eye movement is turned on. * @property {boolean} hasProceduralEyeFaceMovement=true - <code>true</code> if procedural eye movement is turned on.
* @property {boolean} hasAudioEnabledFaceMovement=true - <code>true</code> to move the mouth blendshapes with voice audio * @property {boolean} hasAudioEnabledFaceMovement=true - <code>true</code> to move the mouth blendshapes with voice audio
@ -241,8 +243,8 @@ class MyAvatar : public Avatar {
* @property {boolean} useAdvancedMovementControls - Returns and sets the value of the Interface setting, Settings > * @property {boolean} useAdvancedMovementControls - Returns and sets the value of the Interface setting, Settings >
* Controls > Walking. Note: Setting the value has no effect unless Interface is restarted. * Controls > Walking. Note: Setting the value has no effect unless Interface is restarted.
* @property {boolean} showPlayArea - Returns and sets the value of the Interface setting, Settings > Controls > Show room * @property {boolean} showPlayArea - Returns and sets the value of the Interface setting, Settings > Controls > Show room
* boundaries while teleporting.<br /> * boundaries while teleporting.
* <strong>Note:</strong> Setting the value has no effect unless Interface is restarted. * <p><strong>Note:</strong> Setting the value has no effect unless Interface is restarted.</p>
* *
* @property {number} yawSpeed=75 - The mouse X sensitivity value in Settings > General. <em>Read-only.</em> * @property {number} yawSpeed=75 - The mouse X sensitivity value in Settings > General. <em>Read-only.</em>
* @property {number} pitchSpeed=50 - The mouse Y sensitivity value in Settings > General. <em>Read-only.</em> * @property {number} pitchSpeed=50 - The mouse Y sensitivity value in Settings > General. <em>Read-only.</em>
@ -491,9 +493,10 @@ public:
* <tr><td><code>2</code></td><td>Auto</td><td>Interface detects when the user is standing or seated in the real world. * <tr><td><code>2</code></td><td>Auto</td><td>Interface detects when the user is standing or seated in the real world.
* Avatar leaning is disabled when the user is sitting (i.e., avatar always recenters), and avatar leaning is enabled * Avatar leaning is disabled when the user is sitting (i.e., avatar always recenters), and avatar leaning is enabled
* when the user is standing (i.e., avatar leans, then if leans too far it recenters).</td></tr> * when the user is standing (i.e., avatar leans, then if leans too far it recenters).</td></tr>
* <tr><td><code>3</code></td><td>DisableHMDLean</td><td>Both avatar leaning and recentering are disabled regardless of * <tr><td><code>3</code></td><td>DisableHMDLean</td><td><p>Both avatar leaning and recentering are disabled regardless of
* what the user is doing in the real world and no matter what their avatar is doing in the virtual world. Enables * what the user is doing in the real world and no matter what their avatar is doing in the virtual world. Enables
* the avatar to sit on the floor when the user sits on the floor.<br /><strong>Note:</strong> Experimental.</td></tr> * the avatar to sit on the floor when the user sits on the floor.</p>
* <p><strong>Note:</strong> Experimental.</p></td></tr>
* </tbody> * </tbody>
* </table> * </table>
* @typedef {number} MyAvatar.SitStandModelType * @typedef {number} MyAvatar.SitStandModelType
@ -782,7 +785,7 @@ public:
* additional properties specified when adding the different handlers.</p> * additional properties specified when adding the different handlers.</p>
* <p>A handler may change a value from <code>animStateDictionaryIn</code> or add different values in the * <p>A handler may change a value from <code>animStateDictionaryIn</code> or add different values in the
* <code>animStateDictionaryOut</code> returned. Any property values set in <code>animStateDictionaryOut</code> will * <code>animStateDictionaryOut</code> returned. Any property values set in <code>animStateDictionaryOut</code> will
* override those of the internal animation machinery.</p. * override those of the internal animation machinery.</p>
* @function MyAvatar.addAnimationStateHandler * @function MyAvatar.addAnimationStateHandler
* @param {function} handler - The animation state handler function to add. * @param {function} handler - The animation state handler function to add.
* @param {Array<string>|null} propertiesList - The list of {@link MyAvatar.AnimStateDictionary|AnimStateDictionary} * @param {Array<string>|null} propertiesList - The list of {@link MyAvatar.AnimStateDictionary|AnimStateDictionary}

View file

@ -78,17 +78,17 @@ PickFilter getPickFilter(unsigned int filter) {
* @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should * @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should
* start disabled. Disabled picks do not update their pick results. * start disabled. Disabled picks do not update their pick results.
* @property {FilterFlags} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property * @property {FilterFlags} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property
* values (e.g., <code>Picks.PICK_DOMAIN_ENTTITIES</code>) combined with <code>|</code> (bitwise OR) operators. * values (e.g., <code>Picks.PICK_DOMAIN_ENTITIES</code>) combined with <code>|</code> (bitwise OR) operators.
* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code> * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code>
* means no maximum. * means no maximum.
* @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick. * @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick.
* @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint. * @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint.
* A value of <code>0</code> means no joint.<br /> * A value of <code>0</code> means no joint.
* <em>Used only if <code>parentID</code> is specified.</em> * <p><em>Used only if <code>parentID</code> is specified.</em></p>
* @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to * @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to
* the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not * the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not
* parented to anything.<br /> * parented to anything.
* <em>Used only if <code>parentID</code> is not specified.</em> * <p><em>Used only if <code>parentID</code> is not specified.</em></p>
* @property {Vec3} [position=Vec3.ZERO] - The offset of the ray origin from its parent if parented, otherwise the ray origin * @property {Vec3} [position=Vec3.ZERO] - The offset of the ray origin from its parent if parented, otherwise the ray origin
* in world coordinates. * in world coordinates.
* @property {Vec3} [posOffset] - Synonym for <code>position</code>. * @property {Vec3} [posOffset] - Synonym for <code>position</code>.
@ -164,7 +164,7 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildRayPick(const QVariantMa
* @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should * @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should
* start disabled. Disabled picks do not update their pick results. * start disabled. Disabled picks do not update their pick results.
* @property {number} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property * @property {number} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property
* values (e.g., <code>Picks.PICK_DOMAIN_ENTTITIES</code>) combined with <code>|</code> (bitwise OR) operators. * values (e.g., <code>Picks.PICK_DOMAIN_ENTITIES</code>) combined with <code>|</code> (bitwise OR) operators.
* <p><strong>Note:</strong> Stylus picks do not intersect avatars or the HUD.</p> * <p><strong>Note:</strong> Stylus picks do not intersect avatars or the HUD.</p>
* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code> * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code>
* means no maximum. * means no maximum.
@ -212,17 +212,17 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildStylusPick(const QVarian
* @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should * @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should
* start disabled. Disabled picks do not update their pick results. * start disabled. Disabled picks do not update their pick results.
* @property {number} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property * @property {number} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property
* values (e.g., <code>Picks.PICK_DOMAIN_ENTTITIES</code>) combined with <code>|</code> (bitwise OR) operators. * values (e.g., <code>Picks.PICK_DOMAIN_ENTITIES</code>) combined with <code>|</code> (bitwise OR) operators.
* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code> * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code>
* means no maximum. * means no maximum.
* @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick. * @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick.
* @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint. * @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint.
* A value of <code>0</code> means no joint.<br /> * A value of <code>0</code> means no joint.
* <em>Used only if <code>parentID</code> is specified.</em> * <p><em>Used only if <code>parentID</code> is specified.</em></p>
* @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to * @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to
* the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not * the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not
* parented to anything. * parented to anything.
* <em>Used only if <code>parentID</code> is not specified.</em> * <p><em>Used only if <code>parentID</code> is not specified.</em></p>
* @property {Vec3} [position=Vec3.ZERO] - The offset of the parabola origin from its parent if parented, otherwise the * @property {Vec3} [position=Vec3.ZERO] - The offset of the parabola origin from its parent if parented, otherwise the
* parabola origin in world coordinates. * parabola origin in world coordinates.
* @property {Vec3} [posOffset] - Synonym for <code>position</code>. * @property {Vec3} [posOffset] - Synonym for <code>position</code>.
@ -321,18 +321,18 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildParabolaPick(const QVari
* @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should * @property {boolean} [enabled=false] - <code>true</code> if this pick should start enabled, <code>false</code> if it should
* start disabled. Disabled picks do not update their pick results. * start disabled. Disabled picks do not update their pick results.
* @property {FilterFlags} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property * @property {FilterFlags} [filter=0] - The filter for this pick to use. Construct using {@link Picks} FilterFlags property
* values (e.g., <code>Picks.PICK_DOMAIN_ENTTITIES</code>) combined with <code>|</code> (bitwise OR) operators. * values (e.g., <code>Picks.PICK_DOMAIN_ENTITIES</code>) combined with <code>|</code> (bitwise OR) operators.
* <p><strong>Note:</strong> Collision picks do not intersect the HUD.</p> * <p><strong>Note:</strong> Collision picks do not intersect the HUD.</p>
* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code> * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of <code>0.0</code>
* means no maximum. * means no maximum.
* @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick. * @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick.
* @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint. * @property {number} [parentJointIndex=0] - The joint of the parent to parent to, for example, an avatar joint.
* A value of <code>0</code> means no joint.<br /> * A value of <code>0</code> means no joint.
* <em>Used only if <code>parentID</code> is specified.</em> * <p><em>Used only if <code>parentID</code> is specified.</em></p>
* @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to * @property {string} [joint] - <code>"Mouse"</code> parents the pick to the mouse; <code>"Avatar"</code> parents the pick to
* the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not * the user's avatar head; a joint name parents to the joint in the user's avatar; otherwise, the pick is "static", not
* parented to anything.<br /> * parented to anything.
* <em>Used only if <code>parentID</code> is not specified.</em> * <p><em>Used only if <code>parentID</code> is not specified.</em></p>
* @property {boolean} [scaleWithParent=true] - <code>true</code> to scale the pick's dimensions and threshold according to the * @property {boolean} [scaleWithParent=true] - <code>true</code> to scale the pick's dimensions and threshold according to the
* scale of the parent. * scale of the parent.
* *
@ -344,9 +344,11 @@ std::shared_ptr<PickQuery> PickScriptingInterface::buildParabolaPick(const QVari
* the collision region. The depth is in world coordinates but scales with the parent if defined. * the collision region. The depth is in world coordinates but scales with the parent if defined.
* @property {CollisionMask} [collisionGroup=8] - The type of objects the collision region collides as. Objects whose collision * @property {CollisionMask} [collisionGroup=8] - The type of objects the collision region collides as. Objects whose collision
* masks overlap with the region's collision group are considered to be colliding with the region. * masks overlap with the region's collision group are considered to be colliding with the region.
* @property {PickType} pickType - The type of pick when getting these properties from {@link Picks.getPickProperties} or {@link Picks.getPickScriptParameters}. A collision pick's type is {@link PickType.Collision}. * @property {PickType} pickType - The type of pick when getting these properties from {@link Picks.getPickProperties} or
* @property {Vec3} baseScale - Returned from {@link Picks.getPickProperties} when the pick has a parent with varying scale (usually an avatar or an entity). * {@link Picks.getPickScriptParameters}. A collision pick's type is {@link PickType.Collision}.
* Its value is the original scale of the parent at the moment the pick was created, and is used to rescale the pick, and/or the pointer which owns this pick, if any. * @property {Vec3} baseScale - Returned from {@link Picks.getPickProperties} when the pick has a parent with varying scale
* (usually an avatar or an entity). Its value is the original scale of the parent at the moment the pick was created, and
* is used to rescale the pick, and/or the pointer which owns this pick, if any.
*/ */
std::shared_ptr<PickQuery> PickScriptingInterface::buildCollisionPick(const QVariantMap& propMap) { std::shared_ptr<PickQuery> PickScriptingInterface::buildCollisionPick(const QVariantMap& propMap) {
bool enabled = false; bool enabled = false;

View file

@ -287,7 +287,7 @@ public slots:
/**jsdoc /**jsdoc
* @function Picks.PICK_ENTITIES * @function Picks.PICK_ENTITIES
* @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_DOMAIN_ENTITIES | * @deprecated This function is deprecated and will be removed. Use the <code>Picks.PICK_DOMAIN_ENTITIES |
* Picks.PICK_AVATAR_ENTITIES</cpode> properties expression instead. * Picks.PICK_AVATAR_ENTITIES</code> properties expression instead.
* @returns {number} * @returns {number}
*/ */
static constexpr unsigned int PICK_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); } static constexpr unsigned int PICK_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); }

View file

@ -41,7 +41,7 @@ public:
* @property {Controller.Standard|Controller.Actions|function} action - The controller output or function that triggers the * @property {Controller.Standard|Controller.Actions|function} action - The controller output or function that triggers the
* events on the entity or overlay. If a function, it must return a number <code>&gt;= 1.0</code> to start the action * events on the entity or overlay. If a function, it must return a number <code>&gt;= 1.0</code> to start the action
* and <code>&lt; 1.0</code> to terminate the action. * and <code>&lt; 1.0</code> to terminate the action.
* @property {string} button - Which button to trigger. * @property {string} button - Which button to trigger:
* <ul> * <ul>
* <li><code>"Primary"</code>, <code>"Secondary"</code>, and <code>"Tertiary"</code> cause {@link Entities} and * <li><code>"Primary"</code>, <code>"Secondary"</code>, and <code>"Tertiary"</code> cause {@link Entities} and
* {@link Overlays} mouse pointer events. Other button names also cause mouse events but the <code>button</code> * {@link Overlays} mouse pointer events. Other button names also cause mouse events but the <code>button</code>

View file

@ -50,11 +50,13 @@ class AccountServicesScriptingInterface : public QObject {
* <code>"Unknown user"</code>. <em>Read-only.</em> * <code>"Unknown user"</code>. <em>Read-only.</em>
* @property {boolean} loggedIn - <code>true</code> if the user is logged in, otherwise <code>false</code>. * @property {boolean} loggedIn - <code>true</code> if the user is logged in, otherwise <code>false</code>.
* <em>Read-only.</em> * <em>Read-only.</em>
* @property {string} findableBy - The user's visibility to other users:<br /> * @property {string} findableBy - The user's visibility to other users:
* <code>"none"</code> - user appears offline.<br /> * <ul>
* <code>"friends"</code> - user is visible only to friends.<br /> * <li><code>"none"</code> &mdash; user appears offline.</li>
* <code>"connections"</code> - user is visible to friends and connections.<br /> * <li><code>"friends"</code> &mdash; user is visible only to friends.</li>
* <code>"all"</code> - user is visible to everyone. * <li><code>"connections"</code> &mdash; user is visible to friends and connections.</li>
* <li><code>"all"</code> &mdash; user is visible to everyone.</li>
* </ul>
* @property {string} metaverseServerURL - The metaverse server that the user is authenticated against when logged in * @property {string} metaverseServerURL - The metaverse server that the user is authenticated against when logged in
* &mdash; typically <code>"https://metaverse.highfidelity.com"</code>. <em>Read-only.</em> * &mdash; typically <code>"https://metaverse.highfidelity.com"</code>. <em>Read-only.</em>
*/ */
@ -160,11 +162,13 @@ signals:
/**jsdoc /**jsdoc
* Triggered when the user's visibility to others changes. * Triggered when the user's visibility to others changes.
* @function AccountServices.findableByChanged * @function AccountServices.findableByChanged
* @param {string} findableBy - The user's visibility to other people:<br /> * @param {string} findableBy - The user's visibility to other people:
* <code>"none"</code> - user appears offline.<br /> * <ul>
* <code>"friends"</code> - user is visible only to friends.<br /> * <li><code>"none"</code> &mdash; user appears offline.</li>
* <code>"connections"</code> - user is visible to friends and connections.<br /> * <li><code>"friends"</code> &mdash; user is visible only to friends.</li>
* <code>"all"</code> - user is visible to everyone. * <li><code>"connections"</code> &mdash; user is visible to friends and connections.</li>
* <li><code>"all"</code> &mdash; user is visible to everyone.</li>
* </ul>
* @returns {Signal} * @returns {Signal}
* @example <caption>Report when your visiblity changes.</caption> * @example <caption>Report when your visiblity changes.</caption>
* AccountServices.findableByChanged.connect(function (findableBy) { * AccountServices.findableByChanged.connect(function (findableBy) {

View file

@ -168,7 +168,6 @@ class ScriptEngine;
* <td><code>startFarTrigger</code><br /><code>continueFarTrigger</code><br /><code>stopFarTrigger</code></td> * <td><code>startFarTrigger</code><br /><code>continueFarTrigger</code><br /><code>stopFarTrigger</code></td>
* <td>These methods are called when a user is more than 0.3m away from the entity, the entity is triggerable, and the * <td>These methods are called when a user is more than 0.3m away from the entity, the entity is triggerable, and the
* user starts, continues, or stops squeezing the trigger.</td> * user starts, continues, or stops squeezing the trigger.</td>
* </td>
* <td>A light switch that can be toggled on and off from a distance.</td> * <td>A light switch that can be toggled on and off from a distance.</td>
* </tr> * </tr>
* <tr> * <tr>
@ -217,25 +216,25 @@ class ScriptEngine;
* *
* @property {Controller.Actions} Actions - Predefined actions on Interface and the user's avatar. These can be used as end * @property {Controller.Actions} Actions - Predefined actions on Interface and the user's avatar. These can be used as end
* points in a {@link RouteObject} mapping. A synonym for <code>Controller.Hardware.Actions</code>. * points in a {@link RouteObject} mapping. A synonym for <code>Controller.Hardware.Actions</code>.
* <em>Read-only.</em><br /><br /> * <em>Read-only.</em>
* Default mappings are provided from the <code>Controller.Hardware.Keyboard</code> and <code>Controller.Standard</code> to * <p>Default mappings are provided from the <code>Controller.Hardware.Keyboard</code> and <code>Controller.Standard</code>
* actions in * to actions in
* <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/keyboardMouse.json"> * <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/keyboardMouse.json">
* keyboardMouse.json</a> and * keyboardMouse.json</a> and
* <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/standard.json"> * <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/standard.json">
* standard.json</a>, respectively. * standard.json</a>, respectively.</p>
* *
* @property {Controller.Hardware} Hardware - Standard and hardware-specific controller and computer outputs, plus predefined * @property {Controller.Hardware} Hardware - Standard and hardware-specific controller and computer outputs, plus predefined
* actions on Interface and the user's avatar. The outputs can be mapped to <code>Actions</code> or functions in a * actions on Interface and the user's avatar. The outputs can be mapped to <code>Actions</code> or functions in a
* {@link RouteObject} mapping. Additionally, hardware-specific controller outputs can be mapped to <code>Standard</code> * {@link RouteObject} mapping. Additionally, hardware-specific controller outputs can be mapped to
* controller outputs. <em>Read-only.</em> * <code>Controller.Standard</code> controller outputs. <em>Read-only.</em>
* *
* @property {Controller.Standard} Standard - Standard controller outputs that can be mapped to <code>Actions</code> or * @property {Controller.Standard} Standard - Standard controller outputs that can be mapped to <code>Actions</code> or
* functions in a {@link RouteObject} mapping. <em>Read-only.</em><br /><br /> * functions in a {@link RouteObject} mapping. <em>Read-only.</em>
* Each hardware device has a mapping from its outputs to <code>Controller.Standard</code> items, specified in a JSON file. * <p>Each hardware device has a mapping from its outputs to <code>Controller.Standard</code> items, specified in a JSON file.
* For example, <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/leapmotion.json"> * For example, <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/leapmotion.json">
* leapmotion.json</a> and * leapmotion.json</a> and
* <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/vive.json">vive.json</a>. * <a href="https://github.com/highfidelity/hifi/blob/master/interface/resources/controllers/vive.json">vive.json</a>.</p>
*/ */
/// handles scripting of input controller commands from JS /// handles scripting of input controller commands from JS

View file

@ -31,10 +31,10 @@
* @property {InteractiveWindow.DockArea} RIGHT - Dock to the right edge of the Interface window. * @property {InteractiveWindow.DockArea} RIGHT - Dock to the right edge of the Interface window.
*/ */
/**jsdoc /**jsdoc
* A docking location of an <code>InteractiveWindow</code>. * <p>A docking location of an <code>InteractiveWindow</code>.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Name</p><th>Description</th> * <tr><th>Value</th><th>Name</th><th>Description</th></tr>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code></td><td>TOP</td><td>Dock to the top edge of the Interface window.</td></tr> * <tr><td><code>0</code></td><td>TOP</td><td>Dock to the top edge of the Interface window.</td></tr>
@ -73,10 +73,10 @@ int DesktopScriptingInterface::getHeight() {
* own separate window. * own separate window.
*/ */
/**jsdoc /**jsdoc
* A display mode for an <code>InteractiveWindow</code>. * <p>A display mode for an <code>InteractiveWindow</code>.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Name</p><th>Description</th> * <tr><th>Value</th><th>Name</th><th>Description</th></tr>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code></td><td>VIRTUAL</td><td>The window is displayed inside Interface: in the desktop window in * <tr><td><code>0</code></td><td>VIRTUAL</td><td>The window is displayed inside Interface: in the desktop window in

View file

@ -24,7 +24,8 @@ class MenuItemProperties;
* <h3>Groupings</h3> * <h3>Groupings</h3>
* *
* <p>A "grouping" provides a way to group a set of menus or menu items together so that they can all be set visible or invisible * <p>A "grouping" provides a way to group a set of menus or menu items together so that they can all be set visible or invisible
* as a group.</p> There is currently only one available group: <code>"Developer"</code>. This grouping can be toggled in the * as a group.</p>
* <p>There is currently only one available group: <code>"Developer"</code>. This grouping can be toggled in the
* "Settings" menu.</p> * "Settings" menu.</p>
* <p>If a menu item doesn't belong to a group, it is always displayed.</p> * <p>If a menu item doesn't belong to a group, it is always displayed.</p>
* *

View file

@ -44,7 +44,7 @@ SelectionScriptingInterface::SelectionScriptingInterface() {
} }
/**jsdoc /**jsdoc
* The type of a specific item in a selection list. * <p>The type of a specific item in a selection list.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Description</th></tr> * <tr><th>Value</th><th>Description</th></tr>

View file

@ -42,7 +42,7 @@ public:
* @property {WalletScriptingInterface.WalletStatus} walletStatus - The status of the user's wallet. <em>Read-only.</em> * @property {WalletScriptingInterface.WalletStatus} walletStatus - The status of the user's wallet. <em>Read-only.</em>
* @property {boolean} limitedCommerce - <code>true</code> if Interface is running in limited commerce mode. In limited commerce * @property {boolean} limitedCommerce - <code>true</code> if Interface is running in limited commerce mode. In limited commerce
* mode, certain Interface functionalities are disabled, e.g., users can't buy items that are not free from the Marketplace. * mode, certain Interface functionalities are disabled, e.g., users can't buy items that are not free from the Marketplace.
* The Oculus Store version of Interface runs in limited commerce mode. <em>Read-only.</em> * The Oculus Store and Steam versions of Interface run in limited commerce mode. <em>Read-only.</em>
*/ */
class WalletScriptingInterface : public QObject, public Dependency { class WalletScriptingInterface : public QObject, public Dependency {
Q_OBJECT Q_OBJECT
@ -73,9 +73,9 @@ public:
/**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 * 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 * the {@link WalletScriptingInterface.ownershipVerificationSuccess|ownershipVerificationSuccess} and
* {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals.<br /> * {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals.
* <strong>Warning:</strong> Neither of these signals are triggered if the entity is not an avatar entity or is not * <p><strong>Warning:</strong> Neither of these signals are triggered if the entity is not an avatar entity or is not
* certified. * certified.</p>
* @function WalletScriptingInterface.proveAvatarEntityOwnershipVerification * @function WalletScriptingInterface.proveAvatarEntityOwnershipVerification
* @param {Uuid} entityID - The avatar entity's ID. * @param {Uuid} entityID - The avatar entity's ID.
* @example <caption>Check the ownership of all nearby certified avatar entities.</caption> * @example <caption>Check the ownership of all nearby certified avatar entities.</caption>

View file

@ -326,10 +326,10 @@ public slots:
* full resolution is used (window dimensions in desktop mode; HMD display dimensions in HMD mode), otherwise one of the * full resolution is used (window dimensions in desktop mode; HMD display dimensions in HMD mode), otherwise one of the
* dimensions is adjusted in order to match the aspect ratio. * dimensions is adjusted in order to match the aspect ratio.
* @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user
* name&gt-on-YYYY-MM-DD_HH-MM-SS".<br /> * name&gt;-on-YYYY-MM-DD_HH-MM-SS".
* Still images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>, * <p>Still images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>,
* <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of * <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of
* <code>".jpg"</code>. Animated images are saved in GIF format. * <code>".jpg"</code>. Animated images are saved in GIF format.</p>
* *
* @example <caption>Using the snapshot function and signals.</caption> * @example <caption>Using the snapshot function and signals.</caption>
* function onStillSnapshotTaken(path, notify) { * function onStillSnapshotTaken(path, notify) {
@ -365,10 +365,10 @@ public slots:
* @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken} * @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken}
* signal. * signal.
* @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user
* name&gt-on-YYYY-MM-DD_HH-MM-SS".<br /> * name&gt;-on-YYYY-MM-DD_HH-MM-SS".
* Images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>, * <p>Images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>,
* <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of * <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of
* <code>".jpg"</code>. * <code>".jpg"</code>.</p>
*/ */
void takeSecondaryCameraSnapshot(const bool& notify = true, const QString& filename = QString()); void takeSecondaryCameraSnapshot(const bool& notify = true, const QString& filename = QString());
@ -384,10 +384,10 @@ public slots:
* @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken} * @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken}
* signal. * signal.
* @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-&lt;user
* name&gt-on-YYYY-MM-DD_HH-MM-SS".<br /> * name&gt;-on-YYYY-MM-DD_HH-MM-SS".
* Images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>, * <p>Images are saved in JPEG or PNG format according to the extension provided &mdash; <code>".jpg"</code>,
* <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of * <code>".jpeg"</code>, or <code>".png"</code> &mdash; or if not provided then in JPEG format with an extension of
* <code>".jpg"</code>. * <code>".jpg"</code>.</p>
*/ */
void takeSecondaryCamera360Snapshot(const glm::vec3& cameraPosition, const bool& cubemapOutputFormat = false, const bool& notify = true, const QString& filename = QString()); void takeSecondaryCamera360Snapshot(const glm::vec3& cameraPosition, const bool& cubemapOutputFormat = false, const bool& notify = true, const QString& filename = QString());
@ -515,13 +515,13 @@ public slots:
/**jsdoc /**jsdoc
* Opens a URL in the Interface window or other application, depending on the URL's scheme. The following schemes are * Opens a URL in the Interface window or other application, depending on the URL's scheme. The following schemes are
* supported:<br /> * supported:
* <ul> * <ul>
* <li><code>hifi</code>: Navigate to the URL in Interface.</li> * <li><code>hifi</code>: Navigate to the URL in Interface.</li>
* <li><code>hifiapp</code>: Open a system app in Interface.</li> * <li><code>hifiapp</code>: Open a system app in Interface.</li>
* </ul> * </ul>
* Other schemes will either be handled by the OS (e.g. <code>http</code>, <code>https</code>, or <code>mailto</code>) or * <p>Other schemes will either be handled by the OS (e.g. <code>http</code>, <code>https</code>, or <code>mailto</code>) or
* will display a dialog asking the user to confirm that they want to try to open the URL. * will display a dialog asking the user to confirm that they want to try to open the URL.</p>
* @function Window.openUrl * @function Window.openUrl
* @param {string} url - The URL to open. * @param {string} url - The URL to open.
*/ */
@ -623,8 +623,8 @@ private slots:
signals: signals:
/**jsdoc /**jsdoc
* Triggered when you change the domain you're visiting. <strong>Warning:</strong> Is not emitted if you go to a domain * Triggered when you change the domain you're visiting.
* that isn't running. * <p><strong>Warning:</strong> Is not emitted if you go to a domain that isn't running.</p>
* @function Window.domainChanged * @function Window.domainChanged
* @param {string} domainURL - The domain's URL. * @param {string} domainURL - The domain's URL.
* @returns {Signal} * @returns {Signal}

View file

@ -56,8 +56,8 @@ namespace InteractiveWindowEnums {
Q_NAMESPACE Q_NAMESPACE
/**jsdoc /**jsdoc
* A set of flags controlling <code>InteractiveWindow</code> behavior. The value is constructed by using the * <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.<br /> * <code>|</code> (bitwise OR) operator on the individual flag values.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Flag Name</th><th>Value</th><th>Description</th></tr> * <tr><th>Flag Name</th><th>Value</th><th>Description</th></tr>

View file

@ -1346,49 +1346,48 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <td>Some text.</td> * <td>Some text.</td>
* <td>{@link Overlays.OverlayProperties-Text|OverlayProperties-Text}</td></tr> * <td>{@link Overlays.OverlayProperties-Text|OverlayProperties-Text}</td></tr>
* <tr><td><code>"cube"</code></td><td>3D</td> * <tr><td><code>"cube"</code></td><td>3D</td>
* <td>A cube. A <code>"shape"</code> overlay can also be used to create a cube.<br/> * <td><p>A cube. A <code>"shape"</code> overlay can also be used to create a cube.</p>
* <span class="important">Deprecated.</span> * <p class="important">Deprecated.</p></td>
* </td>
* <td>{@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube}</td></tr> * <td>{@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube}</td></tr>
* <tr><td><code>"sphere"</code></td><td>3D</td> * <tr><td><code>"sphere"</code></td><td>3D</td>
* <td>A sphere. A <code>"shape"</code> overlay can also be used to create a sphere.<br/> * <td><p>A sphere. A <code>"shape"</code> overlay can also be used to create a sphere.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere}</td></tr> * <td>{@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere}</td></tr>
* <tr><td><code>"shape"</code></td><td>3D</td> * <tr><td><code>"shape"</code></td><td>3D</td>
* <td>A geometric shape, such as a cube, sphere, or cylinder.<br/> * <td><p>A geometric shape, such as a cube, sphere, or cylinder.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape}</td></tr> * <td>{@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape}</td></tr>
* <tr><td><code>"model"</code></td><td>3D</td> * <tr><td><code>"model"</code></td><td>3D</td>
* <td>A model.<br/> * <td><p>A model.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Model|OverlayProperties-Model}</td></tr> * <td>{@link Overlays.OverlayProperties-Model|OverlayProperties-Model}</td></tr>
* <tr><td><code>"image3d"</code></td><td>3D</td> * <tr><td><code>"image3d"</code></td><td>3D</td>
* <td>An image. Synonym: <code>"billboard"</code>.<br/> * <td><p>An image. Synonym: <code>"billboard"</code>.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D}</td></tr>
* <tr><td><code>"rectangle3d"</code></td><td>3D</td> * <tr><td><code>"rectangle3d"</code></td><td>3D</td>
* <td>A rectangle.<br/> * <td><p>A rectangle.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D}</td></tr>
* <tr><td><code>"text3d"</code></td><td>3D</td> * <tr><td><code>"text3d"</code></td><td>3D</td>
* <td>Some text.<br/> * <td><p>Some text.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D}</td></tr>
* <tr><td><code>"web3d"</code></td><td>3D</td> * <tr><td><code>"web3d"</code></td><td>3D</td>
* <td>Web content.<br/> * <td><p>Web content.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D}</td></tr>
* <tr><td><code>"line3d"</code></td><td>3D</td> * <tr><td><code>"line3d"</code></td><td>3D</td>
* <td>A line.<br/> * <td><p>A line.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D}</td></tr>
* <tr><td><code>"grid"</code></td><td>3D</td> * <tr><td><code>"grid"</code></td><td>3D</td>
* <td>A grid of lines in a plane.<br/> * <td><p>A grid of lines in a plane.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid}</td></tr> * <td>{@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid}</td></tr>
* <tr><td><code>"circle3d"</code></td><td>3D</td> * <tr><td><code>"circle3d"</code></td><td>3D</td>
* <td>A circle.<br/> * <td><p>A circle.</p>
* <span class="important">Deprecated.</span></td> * <p class="important">Deprecated.</p></td>
* <td>{@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D}</td></tr> * <td>{@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D}</td></tr>
* </tbody> * </tbody>
* </table> * </table>
@ -1410,17 +1409,17 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @see {@link Overlays.OverlayProperties-Rectangle|OverlayProperties-Rectangle} * @see {@link Overlays.OverlayProperties-Rectangle|OverlayProperties-Rectangle}
* @see {@link Overlays.OverlayProperties-Image|OverlayProperties-Image} * @see {@link Overlays.OverlayProperties-Image|OverlayProperties-Image}
* @see {@link Overlays.OverlayProperties-Text|OverlayProperties-Text} * @see {@link Overlays.OverlayProperties-Text|OverlayProperties-Text}
* @see {@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Model|OverlayProperties-Model} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Model|OverlayProperties-Model} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid} &mdash; <span class="important">Deprecated.</span>
* @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} <span class="important">Deprecated.</span> * @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} &mdash; <span class="important">Deprecated.</span>
*/ */
/**jsdoc /**jsdoc
@ -1502,11 +1501,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1520,7 +1519,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>. * <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>.
* @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is * @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is
* rendered as a wire frame. * rendered as a wire frame.
* Synonyms: <ode>solid</code>, <code>isFilled</code>, and <code>filled</code>. * Synonyms: <code>solid</code>, <code>isFilled</code>, and <code>filled</code>.
* Antonyms: <code>isWire</code> and <code>wire</code>. * Antonyms: <code>isWire</code> and <code>wire</code>.
* @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code> * @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code>
* if they don't. * if they don't.
@ -1550,11 +1549,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1568,7 +1567,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>. * <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>.
* @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is * @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is
* rendered as a wire frame. * rendered as a wire frame.
* Synonyms: <ode>solid</code>, <code>isFilled</code>, and <code>filled</code>. * Synonyms: <code>solid</code>, <code>isFilled</code>, and <code>filled</code>.
* Antonyms: <code>isWire</code> and <code>wire</code>. * Antonyms: <code>isWire</code> and <code>wire</code>.
* @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code> * @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code>
* if they don't. * if they don't.
@ -1599,11 +1598,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1617,7 +1616,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>. * <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>.
* @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is * @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is
* rendered as a wire frame. * rendered as a wire frame.
* Synonyms: <ode>solid</code>, <code>isFilled</code>, and <code>filled</code>. * Synonyms: <code>solid</code>, <code>isFilled</code>, and <code>filled</code>.
* Antonyms: <code>isWire</code> and <code>wire</code>. * Antonyms: <code>isWire</code> and <code>wire</code>.
* @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code> * @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code>
* if they don't. * if they don't.
@ -1641,7 +1640,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <tr><th>Value</th><th>Dimensions</th><th>Description</th></tr> * <tr><th>Value</th><th>Dimensions</th><th>Description</th></tr>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>"Circle"</code></td><td>2D</td><td>A circle oriented in 3D.</td></td></tr> * <tr><td><code>"Circle"</code></td><td>2D</td><td>A circle oriented in 3D.</td></tr>
* <tr><td><code>"Cone"</code></td><td>3D</td><td></td></tr> * <tr><td><code>"Cone"</code></td><td>3D</td><td></td></tr>
* <tr><td><code>"Cube"</code></td><td>3D</td><td></td></tr> * <tr><td><code>"Cube"</code></td><td>3D</td><td></td></tr>
* <tr><td><code>"Cylinder"</code></td><td>3D</td><td></td></tr> * <tr><td><code>"Cylinder"</code></td><td>3D</td><td></td></tr>
@ -1674,11 +1673,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1692,7 +1691,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>. * <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>.
* @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is * @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is
* rendered as a wire frame. * rendered as a wire frame.
* Synonyms: <ode>solid</code>, <code>isFilled</code>, and <code>filled</code>. * Synonyms: <code>solid</code>, <code>isFilled</code>, and <code>filled</code>.
* Antonyms: <code>isWire</code> and <code>wire</code>. * Antonyms: <code>isWire</code> and <code>wire</code>.
* @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code> * @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code>
* if they don't. * if they don't.
@ -1761,17 +1760,17 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {Color} color=255,255,255 - The color of the overlay text. Synonym: <code>textColor</code>. * @property {Color} color=255,255,255 - The color of the overlay text. Synonym: <code>textColor</code>.
* @property {number} alpha=0.7 - The opacity of the overlay text, <code>0.0</code> &ndash; <code>1.0</code>. * @property {number} alpha=0.7 - The opacity of the overlay text, <code>0.0</code> &ndash; <code>1.0</code>.
* <p><em>Currently not used; use <code>textAlpha</code> instead.</em></p> * <p><em>Currently not used; use <code>textAlpha</code> instead.</em></p>
* <CURRENTLY BROKEN> * @comment CURRENTLY BROKEN
* @property {number} pulseMax=0 - The maximum value of the pulse multiplier. * @property {number} pulseMax=0 - The maximum value of the pulse multiplier.
* @property {number} pulseMin=0 - The minimum value of the pulse multiplier. * @property {number} pulseMin=0 - The minimum value of the pulse multiplier.
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1811,11 +1810,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1857,11 +1856,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -1916,41 +1915,45 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* HUD surface. * HUD surface.
* @property {boolean} grabbable=false - <code>true</code> if the overlay can be grabbed, <code>false</code> if it can't be. * @property {boolean} grabbable=false - <code>true</code> if the overlay can be grabbed, <code>false</code> if it can't be.
* @property {Uuid} parentID=null - The avatar, entity, or overlay that the overlay is parented to. * @property {Uuid} parentID=null - The avatar, entity, or overlay that the overlay is parented to.
* <p><em>Currently doesn't work.</em></p>
* @comment CURRENTLY BROKEN
* @property {number} parentJointIndex=65535 - Integer value specifying the joint of the entity or avatar that the entity is * @property {number} parentJointIndex=65535 - Integer value specifying the joint of the entity or avatar that the entity is
* parented to if <code>parentID</code> is set. Use 65535 or -1 to parent to the parent's position and orientation rather * parented to if <code>parentID</code> is set. Use 65535 or -1 to parent to the parent's position and orientation rather
* than a joint. * than a joint.
* *
* @property {Uuid} endParentID=null - The avatar, entity, or overlay that the end point of the line is parented to. * @property {Uuid} endParentID=null - The avatar, entity, or overlay that the end point of the line is parented to.
* <p><em>Currently doesn't work.</em></p> * <p><em>Currently doesn't work.</em></p>
* <CURRENTLY BROKEN> * @comment CURRENTLY BROKEN
* @property {number} endParentJointIndex=65535 - Integer value specifying the skeleton joint that the end point of the line is * @property {number} endParentJointIndex=65535 - Integer value specifying the skeleton joint that the end point of the line is
* attached to if <code>parentID</code> is an avatar skeleton. A value of <code>65535</code> means "no joint". * attached to if <code>parentID</code> is an avatar skeleton. A value of <code>65535</code> means "no joint".
* <p><em>Currently doesn't work.</em></p> * <p><em>Currently doesn't work.</em></p>
* <CURRENTLY BROKEN> * @comment CURRENTLY BROKEN
* @property {Vec3} start - The start point of the line. Synonyms: <code>startPoint</code> and <code>p1</code>. * @property {Vec3} start - The start point of the line. Synonyms: <code>startPoint</code> and <code>p1</code>.
* <p><em>If <code>parentID<code> is set, use <code>localStart</code> to set the local position of the start point.</em></p> * <p><strong>Note:</strong> If <code>parentID</code> is set, use <code>localStart</code> to set the local position of the
* <CURRENTLY BROKEN> * start point.</p>
* @property {Vec3} end - The end point of the line. Synonyms: <code>endPoint</code> and <code>p2</code>. * @property {Vec3} end - The end point of the line. Synonyms: <code>endPoint</code> and <code>p2</code>.
* <p><em>If <code>parentID<code> is set, use <code>localEnd</code> to set the local position of the end point.</em></p> * <p><strong>Note:</strong> If <code>parentID</code> is set, use <code>localEnd</code> to set the local position of the
* <CURRENTLY BROKEN> * end point.</p>
* @property {Vec3} localStart - The local position of the overlay relative to its parent if the overlay has a * @property {Vec3} localStart - The local position of the overlay relative to its parent if the overlay has a
* <code>parentID</code> set, otherwise the same value as <code>start</code>. * <code>parentID</code> set, otherwise the same value as <code>start</code>.
* <CURRENTLY BROKEN> * <p><em>Currently doesn't work.</em></p>
* @comment CURRENTLY BROKEN
* @property {Vec3} localEnd - The local position of the overlay relative to its parent if the overlay has a * @property {Vec3} localEnd - The local position of the overlay relative to its parent if the overlay has a
* <code>endParentID</code> set, otherwise the same value as <code>end</code>. * <code>endParentID</code> set, otherwise the same value as <code>end</code>.
* <CURRENTLY BROKEN> * <p><em>Currently doesn't work.</em></p>
* @comment CURRENTLY BROKEN
* @property {number} length - The length of the line, in meters. This can be set after creating a line with start and end * @property {number} length - The length of the line, in meters. This can be set after creating a line with start and end
* points. * points.
* <p><em>Currently doesn't work.</em></p> * <p><em>Currently doesn't work.</em></p>
* <CURRENTLY BROKEN> * @comment CURRENTLY BROKEN
* @property {number} glow=0 - If <code>glow > 0</code>, the line is rendered with a glow. * @property {number} glow=0 - If <code>glow > 0</code>, the line is rendered with a glow.
* @property {number} lineWidth=0.02 - Width of the line, in meters. * @property {number} lineWidth=0.02 - Width of the line, in meters.
* <p><em>You can set this property's value but currently cannot retrieve its value. Use the <code>strokeWidths</code> * <p><em>You can set this property's value but currently cannot retrieve its value. Use the <code>strokeWidths</code>
* property to retrieve its value instead.</p> * property to retrieve its value instead.</em></p>
*/ */
/**jsdoc /**jsdoc
@ -1967,11 +1970,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -2010,11 +2013,11 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from * @property {number} pulsePeriod=1 - The duration of the color and alpha pulse, in seconds. A pulse multiplier value goes from
* <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period. * <code>pulseMin</code> to <code>pulseMax</code>, then <code>pulseMax</code> to <code>pulseMin</code> in one period.
* @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the * @property {number} alphaPulse=0 - If non-zero, the alpha of the overlay is pulsed: the alpha value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the * @property {number} colorPulse=0 - If non-zero, the color of the overlay is pulsed: the color value is multiplied by the
* current pulse multiplier value each frame. If > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * current pulse multiplier value each frame. If &gt; 0 the pulse multiplier is applied in phase with the pulse period; if &lt; 0
* the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise
* used.) * used.)
* *
@ -2029,7 +2032,7 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) {
* <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>. * <code>parentID</code> set, otherwise the same value as <code>rotation</code>. Synonym: <code>localOrientation</code>.
* @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is * @property {boolean} isSolid=false - <code>true</code> if the overlay is rendered as a solid, <code>false</code> if it is
* rendered as a wire frame. * rendered as a wire frame.
* Synonyms: <ode>solid</code>, <code>isFilled</code>, and <code>filled</code>. * Synonyms: <code>solid</code>, <code>isFilled</code>, and <code>filled</code>.
* Antonyms: <code>isWire</code> and <code>wire</code>. * Antonyms: <code>isWire</code> and <code>wire</code>.
* @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code> * @property {boolean} ignorePickIntersection=false - <code>true</code> if {@link Picks} ignore the overlay, <code>false</code>
* if they don't. * if they don't.

View file

@ -63,7 +63,7 @@ public:
* <p>Specifies the initial conditions of the IK solver.</p> * <p>Specifies the initial conditions of the IK solver.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Name</p><th>Description</th> * <tr><th>Value</th><th>Name</th><th>Description</th>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code></td><td>RelaxToUnderPoses</td><td>This is a blend: it is 15/16 <code>PreviousSolution</code> * <tr><td><code>0</code></td><td>RelaxToUnderPoses</td><td>This is a blend: it is 15/16 <code>PreviousSolution</code>
@ -73,12 +73,14 @@ public:
* <tr><td><code>1</code></td><td>RelaxToLimitCenterPoses</td><td>This is a blend: it is 15/16 * <tr><td><code>1</code></td><td>RelaxToLimitCenterPoses</td><td>This is a blend: it is 15/16
* <code>PreviousSolution</code> and 1/16 <code>LimitCenterPoses</code>. This should converge quickly because it is * <code>PreviousSolution</code> and 1/16 <code>LimitCenterPoses</code>. This should converge quickly because it is
* close to the previous solution, but still provides the benefits of avoiding limb locking.</td></tr> * close to the previous solution, but still provides the benefits of avoiding limb locking.</td></tr>
* <tr><td><code>2</code></td><td>PreviousSolution</td><td>The IK system will begin to solve from the same position and * <tr><td><code>2</code></td><td>PreviousSolution</td><td>
* orientations for each joint that was the result from the previous frame.<br /> * <p>The IK system will begin to solve from the same position and orientations for each joint that was the result
* Pros: As the end effectors typically do not move much from frame to frame, this is likely to converge quickly * from the previous frame.</p>
* to a valid solution.<br /> * <p>Pros: As the end effectors typically do not move much from frame to frame, this is likely to converge quickly
* Cons: If the previous solution resulted in an awkward or uncomfortable posture, the next frame will also be * to a valid solution.</p>
* awkward and uncomfortable. It can also result in locked elbows and knees.</td></tr> * <p>Cons: If the previous solution resulted in an awkward or uncomfortable posture, the next frame will also be
* awkward and uncomfortable. It can also result in locked elbows and knees.</p>
* </td></tr>
* <tr><td><code>3</code></td><td>UnderPoses</td><td>The IK occurs at one of the top-most layers. It has access to the * <tr><td><code>3</code></td><td>UnderPoses</td><td>The IK occurs at one of the top-most layers. It has access to the
* full posture that was computed via canned animations and blends. We call this animated set of poses the "under * full posture that was computed via canned animations and blends. We call this animated set of poses the "under
* pose". The under poses are what would be visible if IK was completely disabled. Using the under poses as the * pose". The under poses are what would be visible if IK was completely disabled. Using the under poses as the

View file

@ -28,7 +28,7 @@ public:
* <p>Specifies sets of joints.</p> * <p>Specifies sets of joints.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Name</p><th>Description</th> * <tr><th>Value</th><th>Name</th><th>Description</th>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code></td><td>FullBodyBoneSet</td><td>All joints.</td></tr> * <tr><td><code>0</code></td><td>FullBodyBoneSet</td><td>All joints.</td></tr>

View file

@ -20,14 +20,14 @@ public:
* <p>An IK target type.</p> * <p>An IK target type.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Name</p><th>Description</th> * <tr><th>Value</th><th>Name</th><th>Description</th>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code></td><td>RotationAndPosition</td><td>Attempt to reach the rotation and position end * <tr><td><code>0</code></td><td>RotationAndPosition</td><td>Attempt to reach the rotation and position end
* effector.</td></tr> * effector.</td></tr>
* <tr><td><code>1</code></td><td>RotationOnly</td><td>Attempt to reach the end effector rotation only.</td></tr> * <tr><td><code>1</code></td><td>RotationOnly</td><td>Attempt to reach the end effector rotation only.</td></tr>
* <tr><td><code>2</code></td><td>HmdHead</td><td>A special mode of IK that would attempt to prevent unnecessary * <tr><td><code>2</code></td><td>HmdHead</td><td>
* bending of the spine.<br /> * <p>A special mode of IK that would attempt to prevent unnecessary bending of the spine.</p>
* <p class="important">Deprecated: This target type is deprecated and will be removed.</p></td></tr> * <p class="important">Deprecated: This target type is deprecated and will be removed.</p></td></tr>
* <tr><td><code>3</code></td><td>HipsRelativeRotationAndPosition</td><td>Attempt to reach a rotation and position end * <tr><td><code>3</code></td><td>HipsRelativeRotationAndPosition</td><td>Attempt to reach a rotation and position end
* effector that is not in absolute rig coordinates but is offset by the avatar hips translation.</td></tr> * effector that is not in absolute rig coordinates but is offset by the avatar hips translation.</td></tr>

View file

@ -95,7 +95,7 @@ static const QString MAIN_STATE_MACHINE_RIGHT_HAND_POSITION("mainStateMachineRig
* <p><strong>Warning:</strong> These properties are subject to change. * <p><strong>Warning:</strong> These properties are subject to change.
* <table> * <table>
* <thead> * <thead>
* <tr><th>Name</th><th>Type</p><th>Description</th> * <tr><th>Name</th><th>Type</th><th>Description</th>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>userAnimNone</code></td><td>boolean</td><td><code>true</code> when no user overrideAnimation is * <tr><td><code>userAnimNone</code></td><td>boolean</td><td><code>true</code> when no user overrideAnimation is

View file

@ -545,7 +545,7 @@ void Avatar::relayJointDataToChildren() {
} }
/**jsdoc /**jsdoc
* An avatar has different types of data simulated at different rates, in Hz. * <p>An avatar has different types of data simulated at different rates, in Hz.</p>
* *
* <table> * <table>
* <thead> * <thead>

View file

@ -470,7 +470,7 @@ public:
/**jsdoc /**jsdoc
* Sets the joint of the entity or avatar that the avatar is parented to. * Sets the joint of the entity or avatar that the avatar is parented to.
* @function MyAvatar.setParentJointIndex * @function MyAvatar.setParentJointIndex
* @param {number} parentJointIndex - he joint of the entity or avatar that the avatar should be parented to. Use * @param {number} parentJointIndex - The joint of the entity or avatar that the avatar should be parented to. Use
* <code>65535</code> or <code>-1</code> to parent to the entity or avatar's position and orientation rather than a * <code>65535</code> or <code>-1</code> to parent to the entity or avatar's position and orientation rather than a
* joint. * joint.
*/ */

View file

@ -1445,7 +1445,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) {
} }
/**jsdoc /**jsdoc
* The avatar mixer data comprises different types of data, with the data rates of each being tracked in kbps. * <p>The avatar mixer data comprises different types of data, with the data rates of each being tracked in kbps.</p>
* *
* <table> * <table>
* <thead> * <thead>
@ -1550,7 +1550,7 @@ float AvatarData::getDataRate(const QString& rateName) const {
} }
/**jsdoc /**jsdoc
* The avatar mixer data comprises different types of data updated at different rates, in Hz. * <p>The avatar mixer data comprises different types of data updated at different rates, in Hz.</p>
* *
* <table> * <table>
* <thead> * <thead>

View file

@ -1277,9 +1277,9 @@ public:
* @param {number} [scale=1.0] - The scale to apply to the model. * @param {number} [scale=1.0] - The scale to apply to the model.
* @param {boolean} [isSoft=false] - If the model has a skeleton, set this to <code>true</code> so that the bones of the * @param {boolean} [isSoft=false] - If the model has a skeleton, set this to <code>true</code> so that the bones of the
* attached model's skeleton are rotated to fit the avatar's current pose. <code>isSoft</code> is used, for example, * attached model's skeleton are rotated to fit the avatar's current pose. <code>isSoft</code> is used, for example,
* to have clothing that moves with the avatar.<br /> * to have clothing that moves with the avatar.
* If <code>true</code>, the <code>translation</code>, <code>rotation</code>, and <code>scale</code> parameters are * <p>If <code>true</code>, the <code>translation</code>, <code>rotation</code>, and <code>scale</code> parameters are
* ignored. * ignored.</p>
* @param {boolean} [allowDuplicates=false] - If <code>true</code> then more than one copy of any particular model may be * @param {boolean} [allowDuplicates=false] - If <code>true</code> then more than one copy of any particular model may be
* attached to the same joint; if <code>false</code> then the same model cannot be attached to the same joint. * attached to the same joint; if <code>false</code> then the same model cannot be attached to the same joint.
* @param {boolean} [useSaved=true] - <em>Not used.</em> * @param {boolean} [useSaved=true] - <em>Not used.</em>

View file

@ -44,7 +44,7 @@ namespace controller {
* <tr><th>Property</th><th>Type</th><th>Data</th><th>Description</th></tr> * <tr><th>Property</th><th>Type</th><th>Data</th><th>Description</th></tr>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td colSpan=4><strong>Avatar Movement</strong></td> * <tr><td colSpan=4><strong>Avatar Movement</strong></td></tr>
* <tr><td><code>TranslateX</code></td><td>number</td><td>number</td><td>Move the user's avatar in the direction of its * <tr><td><code>TranslateX</code></td><td>number</td><td>number</td><td>Move the user's avatar in the direction of its
* x-axis, if the camera isn't in independent or mirror modes.</td></tr> * x-axis, if the camera isn't in independent or mirror modes.</td></tr>
* <tr><td><code>TranslateY</code></td><td>number</td><td>number</td><td>Move the user's avatar in the direction of its * <tr><td><code>TranslateY</code></td><td>number</td><td>number</td><td>Move the user's avatar in the direction of its
@ -71,7 +71,7 @@ namespace controller {
* step increment, if the camera isn't in independent or mirror modes.</td></tr> * step increment, if the camera isn't in independent or mirror modes.</td></tr>
* <tr><td><code>StepRoll</code></td><td>number</td><td>number</td><td>No action.</td></tr> * <tr><td><code>StepRoll</code></td><td>number</td><td>number</td><td>No action.</td></tr>
* *
* <tr><td colSpan=4><strong>Avatar Skeleton</strong></td> * <tr><td colSpan=4><strong>Avatar Skeleton</strong></td></tr>
* <tr><td><code>Hips</code></td><td>number</td><td>{@link Pose}</td><td>Set the hips pose of the user's avatar. * <tr><td><code>Hips</code></td><td>number</td><td>{@link Pose}</td><td>Set the hips pose of the user's avatar.
* </td></tr> * </td></tr>
* <tr><td><code>Spine2</code></td><td>number</td><td>{@link Pose}</td><td>Set the spine2 pose of the user's avatar. * <tr><td><code>Spine2</code></td><td>number</td><td>{@link Pose}</td><td>Set the spine2 pose of the user's avatar.
@ -171,7 +171,7 @@ namespace controller {
* <tr><td><code>RightFoot</code></td><td>number</td><td>{@link Pose}</td><td>Set the right foot pose of the user's * <tr><td><code>RightFoot</code></td><td>number</td><td>{@link Pose}</td><td>Set the right foot pose of the user's
* avatar.</td></tr> * avatar.</td></tr>
* *
* <tr><td colSpan=4><strong><strong>Application</strong></td> * <tr><td colSpan=4><strong>Application</strong></td></tr>
* <tr><td><code>BoomIn</code></td><td>number</td><td>number</td><td>Zoom camera in from third person toward first * <tr><td><code>BoomIn</code></td><td>number</td><td>number</td><td>Zoom camera in from third person toward first
* person view.</td></tr> * person view.</td></tr>
* <tr><td><code>BoomOut</code></td><td>number</td><td>number</td><td>Zoom camera out from first person to third * <tr><td><code>BoomOut</code></td><td>number</td><td>number</td><td>Zoom camera out from first person to third
@ -212,7 +212,7 @@ namespace controller {
* <tr><td><code>SecondaryAction</code></td><td>number</td><td>number</td><td><span class="important">Deprecated: This * <tr><td><code>SecondaryAction</code></td><td>number</td><td>number</td><td><span class="important">Deprecated: This
* action is deprecated and will be removed. It takes no action.</span></td></tr> * action is deprecated and will be removed. It takes no action.</span></td></tr>
* *
* <tr><td colSpan=4><strong>Aliases</strong></td> * <tr><td colSpan=4><strong>Aliases</strong></td></tr>
* <tr><td><code>Backward</code></td><td>number</td><td>number</td><td>Alias for <code>TranslateZ</code> in the * <tr><td><code>Backward</code></td><td>number</td><td>number</td><td>Alias for <code>TranslateZ</code> in the
* positive direction.</td></tr> * positive direction.</td></tr>
* <tr><td><code>Forward</code></td><td>number</td><td>number</td><td>Alias for <code>TranslateZ</code> in the negative * <tr><td><code>Forward</code></td><td>number</td><td>number</td><td>Alias for <code>TranslateZ</code> in the negative
@ -234,7 +234,7 @@ namespace controller {
* <tr><td><code>YawRight</code></td><td>number</td><td>number</td><td>Alias for <code>Yaw</code> in the negative * <tr><td><code>YawRight</code></td><td>number</td><td>number</td><td>Alias for <code>Yaw</code> in the negative
* direction.</td></tr> * direction.</td></tr>
* *
* <tr><td colSpan=4><strong>Deprecated Aliases</strong></td> * <tr><td colSpan=4><strong>Deprecated Aliases</strong></td></tr>
* <tr><td><code>LEFT_HAND</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: This * <tr><td><code>LEFT_HAND</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: This
* action is deprecated and will be removed. Use <code>LeftHand</code> instead.</span></td></tr> * action is deprecated and will be removed. Use <code>LeftHand</code> instead.</span></td></tr>
* <tr><td><code>RIGHT_HAND</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: This * <tr><td><code>RIGHT_HAND</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: This
@ -282,7 +282,7 @@ namespace controller {
* <tr><td><code>ACTION2</code></td><td>number</td><td>number</td><td><span class="important">Deprecated: This * <tr><td><code>ACTION2</code></td><td>number</td><td>number</td><td><span class="important">Deprecated: This
* action is deprecated and will be removed. Use <code>SecondaryAction</code> instead.</span></td></tr> * action is deprecated and will be removed. Use <code>SecondaryAction</code> instead.</span></td></tr>
* *
* <tr><td colSpan=4><strong>Deprecated Trackers</strong></td> * <tr><td colSpan=4><strong>Deprecated Trackers</strong></td><tr>
* <tr><td><code>TrackedObject00</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: * <tr><td><code>TrackedObject00</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated:
* This action is deprecated and will be removed. It takes no action.</span></td></tr> * This action is deprecated and will be removed. It takes no action.</span></td></tr>
* <tr><td><code>TrackedObject01</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated: * <tr><td><code>TrackedObject01</code></td><td>number</td><td>{@link Pose}</td><td><span class="important">Deprecated:

View file

@ -33,7 +33,7 @@ void StandardController::focusOutEvent() {
* identifying each output. <em>Read-only.</em></p> * identifying each output. <em>Read-only.</em></p>
* <p>These outputs can be mapped to actions or functions in a {@link RouteObject} mapping. The data value provided by each * <p>These outputs can be mapped to actions or functions in a {@link RouteObject} mapping. The data value provided by each
* control is either a number or a {@link Pose}. Numbers are typically normalized to <code>0.0</code> or <code>1.0</code> for * control is either a number or a {@link Pose}. Numbers are typically normalized to <code>0.0</code> or <code>1.0</code> for
* button states, the range <code>0.0</code> &ndash; </code>1.0</code> for unidirectional scales, and the range * button states, the range <code>0.0</code> &ndash; <code>1.0</code> for unidirectional scales, and the range
* <code>-1.0</code> &ndash; <code>1.0</code> for bidirectional scales.</p> * <code>-1.0</code> &ndash; <code>1.0</code> for bidirectional scales.</p>
* <p>Each hardware device has a mapping from its outputs to a subset of <code>Controller.Standard</code> items, specified in a * <p>Each hardware device has a mapping from its outputs to a subset of <code>Controller.Standard</code> items, specified in a
* JSON file. For example, * JSON file. For example,
@ -118,8 +118,7 @@ void StandardController::focusOutEvent() {
* button.</td></tr> * button.</td></tr>
* <tr><td><code>RightThumbUp</code></td><td>number</td><td>number</td><td>Right thumb not touching primary or secondary * <tr><td><code>RightThumbUp</code></td><td>number</td><td>number</td><td>Right thumb not touching primary or secondary
* thumb buttons.</td></tr> * thumb buttons.</td></tr>
* <tr><td><code>LeftPrimaryIndex</code></td><td>number</td><td>number</td><td>Left primary index control * <tr><td><code>LeftPrimaryIndex</code></td><td>number</td><td>number</td><td>Left primary index control pressed.</td></tr>
* pressed.</em></td></tr>
* <tr><td><code>LeftSecondaryIndex</code></td><td>number</td><td>number</td><td>Left secondary index control pressed. * <tr><td><code>LeftSecondaryIndex</code></td><td>number</td><td>number</td><td>Left secondary index control pressed.
* </td></tr> * </td></tr>
* <tr><td><code>RightPrimaryIndex</code></td><td>number</td><td>number</td><td>Right primary index control pressed. * <tr><td><code>RightPrimaryIndex</code></td><td>number</td><td>number</td><td>Right primary index control pressed.

View file

@ -86,7 +86,7 @@ class UserInputMapper;
* @typedef {object} Controller.MappingJSONRoute * @typedef {object} Controller.MappingJSONRoute
* @property {string|Controller.MappingJSONAxis} from - The name of a {@link Controller.Hardware} property or an axis made from * @property {string|Controller.MappingJSONAxis} from - The name of a {@link Controller.Hardware} property or an axis made from
* them. If a property name, the leading <code>"Controller.Hardware."</code> can be omitted. * them. If a property name, the leading <code>"Controller.Hardware."</code> can be omitted.
* @property {boolean} [peek=false] - If <codd>true</code>, then peeking is enabled per {@link RouteObject#peek}. * @property {boolean} [peek=false] - If <code>true</code>, then peeking is enabled per {@link RouteObject#peek}.
* @property {boolean} [debug=false] - If <code>true</code>, then debug is enabled per {@link RouteObject#debug}. * @property {boolean} [debug=false] - If <code>true</code>, then debug is enabled per {@link RouteObject#debug}.
* @property {string|string[]} [when=[]] - One or more numeric {@link Controller.Hardware} property names which are evaluated * @property {string|string[]} [when=[]] - One or more numeric {@link Controller.Hardware} property names which are evaluated
* as booleans and ANDed together. Prepend a property name with a <code>!</code> to do a logical NOT. The leading * as booleans and ANDed together. Prepend a property name with a <code>!</code> to do a logical NOT. The leading
@ -135,8 +135,8 @@ public:
/**jsdoc /**jsdoc
* Creates a new {@link RouteObject} from a controller output, ready to be mapped to a standard control, action, or * Creates a new {@link RouteObject} from a controller output, ready to be mapped to a standard control, action, or
* function.<br /> * function.
* This is a QML-specific version of {@link MappingObject#from|from}: use this version in QML files. * <p>This is a QML-specific version of {@link MappingObject#from|from}: use this version in QML files.</p>
* @function MappingObject#fromQml * @function MappingObject#fromQml
* @param {Controller.Standard|Controller.Hardware|function} source - The controller output or function that is the source * @param {Controller.Standard|Controller.Hardware|function} source - The controller output or function that is the source
* of the route data. If a function, it must return a number or a {@link Pose} value as the route data. * of the route data. If a function, it must return a number or a {@link Pose} value as the route data.
@ -146,8 +146,8 @@ public:
/**jsdoc /**jsdoc
* Creates a new {@link RouteObject} from two numeric {@link Controller.Hardware} outputs, one applied in the negative * 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.<br /> * direction and the other in the positive direction, ready to be mapped to a standard control, action, or function.
* This is a QML-specific version of {@link MappingObject#makeAxis|makeAxis}: use this version in QML files. * <p>This is a QML-specific version of {@link MappingObject#makeAxis|makeAxis}: use this version in QML files.</p>
* @function MappingObject#makeAxisQml * @function MappingObject#makeAxisQml
* @param {Controller.Hardware} source1 - The first, negative-direction controller output. * @param {Controller.Hardware} source1 - The first, negative-direction controller output.
* @param {Controller.Hardware} source2 - The second, positive-direction controller output. * @param {Controller.Hardware} source2 - The second, positive-direction controller output.
@ -189,8 +189,8 @@ public:
Q_INVOKABLE QObject* makeAxis(const QScriptValue& source1, const QScriptValue& source2); 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.<br /> * Enables or disables the mapping. When enabled, the routes in the mapping take effect.
* Synonymous with {@link Controller.enableMapping}. * <p>Synonymous with {@link Controller.enableMapping}.</p>
* @function MappingObject#enable * @function MappingObject#enable
* @param {boolean} enable=true - If <code>true</code> then the mapping is enabled, otherwise it is disabled. * @param {boolean} enable=true - If <code>true</code> then the mapping is enabled, otherwise it is disabled.
* @returns {MappingObject} The mapping object, so that further routes can be added. * @returns {MappingObject} The mapping object, so that further routes can be added.
@ -198,8 +198,8 @@ public:
Q_INVOKABLE QObject* enable(bool enable = true); Q_INVOKABLE QObject* enable(bool enable = true);
/**jsdoc /**jsdoc
* Disables the mapping. When disabled, the routes in the mapping have no effect.<br /> * Disables the mapping. When disabled, the routes in the mapping have no effect.
* Synonymous with {@link Controller.disableMapping}. * <p>Synonymous with {@link Controller.disableMapping}.</p>
* @function MappingObject#disable * @function MappingObject#disable
* @returns {MappingObject} The mapping object, so that further routes can be added. * @returns {MappingObject} The mapping object, so that further routes can be added.
*/ */

View file

@ -52,8 +52,8 @@ class RouteBuilderProxy : public QObject {
/**jsdoc /**jsdoc
* Terminates the route with a standard control, an action, or a script function. The output value from the route is * 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.<br /> * sent to the specified destination.
* This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files. * <p>This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files.</p>
* @function RouteObject#toQml * @function RouteObject#toQml
* @param {Controller.Standard|Controller.Actions|function} destination - The standard control, action, or JavaScript * @param {Controller.Standard|Controller.Actions|function} destination - The standard control, action, or JavaScript
* function that the route output is mapped to. For a function, the parameter can be either the name of the function or * function that the route output is mapped to. For a function, the parameter can be either the name of the function or
@ -64,8 +64,8 @@ class RouteBuilderProxy : public QObject {
/**jsdoc /**jsdoc
* Processes the route only if a condition is satisfied. The condition is evaluated before the route input is read, and * 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 * 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.<br /> * routes using the same input are processed.
* This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files. * <p>This is a QML-specific version of {@link MappingObject#when|when}: use this version in QML files.</p>
* @function RouteObject#whenQml * @function RouteObject#whenQml
* @param {condition|condition[]} expression - <p>A <code>condition</code> may be a:</p> * @param {condition|condition[]} expression - <p>A <code>condition</code> may be a:</p>
* <ul> * <ul>

View file

@ -130,8 +130,8 @@ variables. These argument variables are used by the code which is run when bull
* <tr><td><code>"ball-socket"</code></td><td>Object constraint</td> * <tr><td><code>"ball-socket"</code></td><td>Object constraint</td>
* <td>Connects two entities with a ball and socket joint.</td> * <td>Connects two entities with a ball and socket joint.</td>
* <td>{@link Entities.ActionArguments-BallSocket}</td></tr> * <td>{@link Entities.ActionArguments-BallSocket}</td></tr>
* <tr><td><code>"spring"</code></td><td colspan="3">Synonym for <code>"tractor"</code>. * <tr><td><code>"spring"</code></td><td>&nbsp;</td><td>Synonym for <code>"tractor"</code>.
* <span class="important">Deprecated.</span></td></tr> * <p class="important">Deprecated.</p></td><td>&nbsp;</td></tr>
* </tbody> * </tbody>
* </table> * </table>
* @typedef {string} Entities.ActionType * @typedef {string} Entities.ActionType

View file

@ -940,7 +940,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* @property {number} materialMappingRot=0 - How much to rotate the material within the parent's UV-space, in degrees. * @property {number} materialMappingRot=0 - How much to rotate the material within the parent's UV-space, in degrees.
* @property {boolean} materialRepeat=true - <code>true</code> if the material repeats, <code>false</code> if it doesn't. If * @property {boolean} materialRepeat=true - <code>true</code> if the material repeats, <code>false</code> if it doesn't. If
* <code>false</code>, fragments outside of texCoord 0 &ndash; 1 will be discarded. Works in both <code>"uv"</code> and * <code>false</code>, fragments outside of texCoord 0 &ndash; 1 will be discarded. Works in both <code>"uv"</code> and
* </code>"projected"</code> modes. * <code>"projected"</code> modes.
* @example <caption>Color a sphere using a Material entity.</caption> * @example <caption>Color a sphere using a Material entity.</caption>
* var entityID = Entities.addEntity({ * var entityID = Entities.addEntity({
* type: "Sphere", * type: "Sphere",
@ -1213,10 +1213,10 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* <code>dimensions / voxelVolumesize</code>. * <code>dimensions / voxelVolumesize</code>.
* @property {string} voxelData="ABAAEAAQAAAAHgAAEAB42u3BAQ0AAADCoPdPbQ8HFAAAAPBuEAAAAQ==" - Base-64 encoded compressed dump of * @property {string} voxelData="ABAAEAAQAAAAHgAAEAB42u3BAQ0AAADCoPdPbQ8HFAAAAPBuEAAAAQ==" - Base-64 encoded compressed dump of
* the PolyVox data. This property is typically not used in scripts directly; rather, functions that manipulate a PolyVox * the PolyVox data. This property is typically not used in scripts directly; rather, functions that manipulate a PolyVox
* entity update it.<br /> * entity update it.
* The size of this property increases with the size and complexity of the PolyVox entity, with the size depending on how * <p>The size of this property increases with the size and complexity of the PolyVox entity, with the size depending on how
* the particular entity's voxels compress. Because this property value has to fit within a High Fidelity datagram packet, * the particular entity's voxels compress. Because this property value has to fit within a High Fidelity datagram packet,
* there is a limit to the size and complexity of a PolyVox entity; edits which would result in an overflow are rejected. * there is a limit to the size and complexity of a PolyVox entity; edits which would result in an overflow are rejected.</p>
* @property {Entities.PolyVoxSurfaceStyle} voxelSurfaceStyle=2 - The style of rendering the voxels' surface and how * @property {Entities.PolyVoxSurfaceStyle} voxelSurfaceStyle=2 - The style of rendering the voxels' surface and how
* neighboring PolyVox entities are joined. * neighboring PolyVox entities are joined.
* @property {string} xTextureURL="" - The URL of the texture to map to surfaces perpendicular to the entity's local x-axis. * @property {string} xTextureURL="" - The URL of the texture to map to surfaces perpendicular to the entity's local x-axis.
@ -1305,7 +1305,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* @property {number} bottomMargin=0.0 - The bottom margin, in meters. * @property {number} bottomMargin=0.0 - The bottom margin, in meters.
* @property {boolean} unlit=false - <code>true</code> if the entity is unaffected by lighting, <code>false</code> if it is lit * @property {boolean} unlit=false - <code>true</code> if the entity is unaffected by lighting, <code>false</code> if it is lit
* by the key light and local lights. * by the key light and local lights.
* @property {string} font="" - The font to render the text with. It can be one of the following: <code>"Courier"</code, * @property {string} font="" - The font to render the text with. It can be one of the following: <code>"Courier"</code>,
* <code>"Inconsolata"</code>, <code>"Roboto"</code>, <code>"Timeless"</code>, or a path to a .sdff file. * <code>"Inconsolata"</code>, <code>"Roboto"</code>, <code>"Timeless"</code>, or a path to a .sdff file.
* @property {Entities.TextEffect} textEffect="none" - The effect that is applied to the text. * @property {Entities.TextEffect} textEffect="none" - The effect that is applied to the text.
* @property {Color} textEffectColor=255,255,255 - The color of the effect. * @property {Color} textEffectColor=255,255,255 - The color of the effect.

View file

@ -1872,7 +1872,7 @@ public slots:
/**jsdoc /**jsdoc
* Called when a {@link Entities.getMeshes} call is complete. * Called when a {@link Entities.getMeshes} call is complete.
* @callback Entities~getMeshesCallback * @callback Entities~getMeshesCallback
* @param {MeshProxy[]} meshes - If <code>success<</code> is <code>true</code>, a {@link MeshProxy} per mesh in the * @param {MeshProxy[]} meshes - If <code>success</code> is <code>true</code>, a {@link MeshProxy} per mesh in the
* <code>Model</code> or <code>PolyVox</code> entity; otherwise <code>undefined</code>. * <code>Model</code> or <code>PolyVox</code> entity; otherwise <code>undefined</code>.
* @param {boolean} success - <code>true</code> if the {@link Entities.getMeshes} call was successful, <code>false</code> * @param {boolean} success - <code>true</code> if the {@link Entities.getMeshes} call was successful, <code>false</code>
* otherwise. The call may be unsuccessful if the requested entity could not be found. * otherwise. The call may be unsuccessful if the requested entity could not be found.

View file

@ -46,18 +46,18 @@ public:
* See also, the <code>"Box"</code> and <code>"Sphere"</code> entity types.</td> * See also, the <code>"Box"</code> and <code>"Sphere"</code> entity types.</td>
* <td>{@link Entities.EntityProperties-Shape|EntityProperties-Shape}</td></tr> * <td>{@link Entities.EntityProperties-Shape|EntityProperties-Shape}</td></tr>
* <tr><td><code>"Box"</code></td><td>A rectangular prism. This is a synonym of <code>"Shape"</code> for the case * <tr><td><code>"Box"</code></td><td>A rectangular prism. This is a synonym of <code>"Shape"</code> for the case
* where the entity's <code>shape</code> property value is <code>"Cube"</code>.<br /> * where the entity's <code>shape</code> property value is <code>"Cube"</code>.
* If an entity is created with its <code>type</code> * <p>If an entity is created with its <code>type</code>
* set to <code>"Box"</code> it will always be created with a <code>shape</code> property value of * set to <code>"Box"</code> it will always be created with a <code>shape</code> property value of
* <code>"Cube"</code>. If an entity of type <code>Shape</code> or <code>Sphere</code> has its <code>shape</code> set * <code>"Cube"</code>. If an entity of type <code>Shape</code> or <code>Sphere</code> has its <code>shape</code> set
* to <code>"Cube"</code> then its <code>type</code> will be reported as <code>"Box"</code>. * to <code>"Cube"</code> then its <code>type</code> will be reported as <code>"Box"</code>.</p></td>
* <td>{@link Entities.EntityProperties-Box|EntityProperties-Box}</td></tr> * <td>{@link Entities.EntityProperties-Box|EntityProperties-Box}</td></tr>
* <tr><td><code>"Sphere"</code></td><td>A sphere. This is a synonym of <code>"Shape"</code> for the case * <tr><td><code>"Sphere"</code></td><td>A sphere. This is a synonym of <code>"Shape"</code> for the case
* where the entity's <code>shape</code> property value is <code>"Sphere"</code>.<br /> * where the entity's <code>shape</code> property value is <code>"Sphere"</code>.
* If an entity is created with its <code>type</code> * <p>If an entity is created with its <code>type</code>
* set to <code>"Sphere"</code> it will always be created with a <code>shape</code> property value of * set to <code>"Sphere"</code> it will always be created with a <code>shape</code> property value of
* <code>"Sphere"</code>. If an entity of type <code>Box</code> or <code>Shape</code> has its <code>shape</code> set * <code>"Sphere"</code>. If an entity of type <code>Box</code> or <code>Shape</code> has its <code>shape</code> set
* to <code>"Sphere"</code> then its <code>type</code> will be reported as <code>"Sphere"</code>. * to <code>"Sphere"</code> then its <code>type</code> will be reported as <code>"Sphere"</code>.</td>
* <td>{@link Entities.EntityProperties-Sphere|EntityProperties-Sphere}</td></tr> * <td>{@link Entities.EntityProperties-Sphere|EntityProperties-Sphere}</td></tr>
* <tr><td><code>"Model"</code></td><td>A mesh model from a glTF, FBX, or OBJ file.</td> * <tr><td><code>"Model"</code></td><td>A mesh model from a glTF, FBX, or OBJ file.</td>
* <td>{@link Entities.EntityProperties-Model|EntityProperties-Model}</td></tr> * <td>{@link Entities.EntityProperties-Model|EntityProperties-Model}</td></tr>

View file

@ -225,7 +225,7 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic
* *
* <table> * <table>
* <thead> * <thead>
* <tr><th>Property</th><th>Type</th><td>Data</th><th>Description</th></tr> * <tr><th>Property</th><th>Type</th><th>Data</th><th>Description</th></tr>
* </thead> * </thead>
* <tbody> * <tbody>
* <tr><td><code>0</code> &ndash; <code>9</code></td><td>number</td><td>number</td><td>A "0" &ndash; "1" key on the * <tr><td><code>0</code> &ndash; <code>9</code></td><td>number</td><td>number</td><td>A "0" &ndash; "1" key on the
@ -275,13 +275,15 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic
* <tr><td><code>MouseWheelLeft</code></td><td>number</td><td>number</td><td>The mouse wheel rotated left. The data value * <tr><td><code>MouseWheelLeft</code></td><td>number</td><td>number</td><td>The mouse wheel rotated left. The data value
* is the number of units rotated (typically <code>1.0</code>).</td></tr> * is the number of units rotated (typically <code>1.0</code>).</td></tr>
* <tr><td><code>MouseWheelUp</code></td><td>number</td><td>number</td><td>The mouse wheel rotated up. The data value * <tr><td><code>MouseWheelUp</code></td><td>number</td><td>number</td><td>The mouse wheel rotated up. The data value
* is the number of units rotated (typically <code>1.0</code>).<br /> * is the number of units rotated (typically <code>1.0</code>).
* <strong>Warning:</strong> The mouse wheel in an ordinary mouse generates left/right wheel events instead of * <p><strong>Warning:</strong> The mouse wheel in an ordinary mouse generates left/right wheel events instead of
* up/down.</td></tr> * up/down.</p>
* </td></tr>
* <tr><td><code>MouseWheelDown</code></td><td>number</td><td>number</td><td>The mouse wheel rotated down. The data value * <tr><td><code>MouseWheelDown</code></td><td>number</td><td>number</td><td>The mouse wheel rotated down. The data value
* is the number of units rotated (typically <code>1.0</code>).<br /> * is the number of units rotated (typically <code>1.0</code>).
* <strong>Warning:</strong> The mouse wheel in an ordinary mouse generates left/right wheel events instead of * <p><strong>Warning:</strong> The mouse wheel in an ordinary mouse generates left/right wheel events instead of
* up/down.</td></tr> * up/down.</p>
* </td></tr>
* <tr><td><code>TouchpadRight</code></td><td>number</td><td>number</td><td>The average touch on a touch-enabled device * <tr><td><code>TouchpadRight</code></td><td>number</td><td>number</td><td>The average touch on a touch-enabled device
* moved right. The data value is how far the average position of all touch points moved.</td></tr> * moved right. The data value is how far the average position of all touch points moved.</td></tr>
* <tr><td><code>TouchpadLeft</code></td><td>number</td><td>number</td><td>The average touch on a touch-enabled device * <tr><td><code>TouchpadLeft</code></td><td>number</td><td>number</td><td>The average touch on a touch-enabled device

View file

@ -23,7 +23,7 @@
/**jsdoc /**jsdoc
* The <code>Midi</code> API provides the ability to connect Interface with musical instruments and other external or virtual * The <code>Midi</code> API provides the ability to connect Interface with musical instruments and other external or virtual
* devices via the MIDI protocol. For further information and examples, see the tutorial: * devices via the MIDI protocol. For further information and examples, see the tutorial:
* <a href="https://docs.highfidelity.com/en/rc81/script/midi-tutorial.html">Use MIDI to Control Your Environment</a>.</p> * <a href="https://docs.highfidelity.com/script/midi-tutorial.html">Use MIDI to Control Your Environment</a>.
* *
* <p><strong>Note:</strong> Only works on Windows.</p> * <p><strong>Note:</strong> Only works on Windows.</p>
* *

View file

@ -188,7 +188,7 @@ public slots:
/**jsdoc /**jsdoc
* Takes you to a specified metaverse address. * Takes you to a specified metaverse address.
* @function location.handleLookupString * @function location.handleLookupString
* @param {string} address - The address to go to: a <code>"hifi://"<code> address, an IP address (e.g., * @param {string} address - The address to go to: a <code>"hifi://"</code> address, an IP address (e.g.,
* <code>"127.0.0.1"</code> or <code>"localhost"</code>), a domain name, a named path on a domain (starts with * <code>"127.0.0.1"</code> or <code>"localhost"</code>), a domain name, a named path on a domain (starts with
* <code>"/"</code>), a position or position and orientation, or a user (starts with <code>"@"</code>). * <code>"/"</code>), a position or position and orientation, or a user (starts with <code>"@"</code>).
* @param {boolean} [fromSuggestions=false] - Set to <code>true</code> if the address is obtained from the "Goto" dialog. * @param {boolean} [fromSuggestions=false] - Set to <code>true</code> if the address is obtained from the "Goto" dialog.
@ -259,7 +259,7 @@ public slots:
/**jsdoc /**jsdoc
* Checks if going back to the previous location is possible. * Checks if going back to the previous location is possible.
* @function location.canGoBack * @function location.canGoBack
* @returns <code>true</code> if going back is possible, <code>false</code> if it isn't. * @returns {boolean} <code>true</code> if going back is possible, <code>false</code> if it isn't.
*/ */
bool canGoBack() const; bool canGoBack() const;

View file

@ -57,10 +57,10 @@ public:
* @param {string} channel - The channel to send the message on. * @param {string} channel - The channel to send the message on.
* @param {string} message - The message to send. * @param {string} message - The message to send.
* @param {boolean} [localOnly=false] - If <code>false</code> then the message is sent to all Interface, client entity, * @param {boolean} [localOnly=false] - If <code>false</code> then the message is sent to all Interface, client entity,
* server entity, and assignment client scripts in the domain.<br /> * server entity, and assignment client scripts in the domain.
* If <code>true</code> then: if sent from an Interface or client entity script it is received by all Interface and * <p>If <code>true</code> then: if sent from an Interface or client entity script it is received by all Interface and
* client entity scripts; if sent from a server entity script it is received by all entity server scripts; and if sent * client entity scripts; if sent from a server entity script it is received by all entity server scripts; and if sent
* from an assignment client script it is received only by that same assignment client script. * from an assignment client script it is received only by that same assignment client script.</p>
* @example <caption>Send and receive a message.</caption> * @example <caption>Send and receive a message.</caption>
* // Receiving script. * // Receiving script.
* var channelName = "com.highfidelity.example.messages-example"; * var channelName = "com.highfidelity.example.messages-example";
@ -105,10 +105,10 @@ public:
* @param {object} data - The data to send. The data is handled as a byte stream, for example, as may be provided via a * @param {object} data - The data to send. The data is handled as a byte stream, for example, as may be provided via a
* JavaScript <code>Int8Array</code> object. * JavaScript <code>Int8Array</code> object.
* @param {boolean} [localOnly=false] - If <code>false</code> then the message is sent to all Interface, client entity, * @param {boolean} [localOnly=false] - If <code>false</code> then the message is sent to all Interface, client entity,
* server entity, and assignment client scripts in the domain.<br /> * server entity, and assignment client scripts in the domain.
* If <code>true</code> then: if sent from an Interface or client entity script it is received by all Interface and * <p>If <code>true</code> then: if sent from an Interface or client entity script it is received by all Interface and
* client entity scripts; if sent from a server entity script it is received by all entity server scripts; and if sent * client entity scripts; if sent from a server entity script it is received by all entity server scripts; and if sent
* from an assignment client script it is received only by that same assignment client script. * from an assignment client script it is received only by that same assignment client script.</p>
* @example <caption>Send and receive data.</caption> * @example <caption>Send and receive data.</caption>
* // Receiving script. * // Receiving script.
* var channelName = "com.highfidelity.example.messages-example"; * var channelName = "com.highfidelity.example.messages-example";

View file

@ -223,7 +223,7 @@ public slots:
/**jsdoc /**jsdoc
* Gets the "front" direction that the camera would face if its orientation was set to the quaternion value. * Gets the "front" direction that the camera would face if its orientation was set to the quaternion value.
* This is a synonym for {@link Quat(0).getForward|Quat.getForward}. * This is a synonym for {@link Quat(0).getForward|Quat.getForward}.
* The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, </code>-z</code> = forward. * The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
* @function Quat(0).getFront * @function Quat(0).getFront
* @param {Quat} orientation - A quaternion representing an orientation. * @param {Quat} orientation - A quaternion representing an orientation.
* @returns {Vec3} The negative z-axis rotated by <code>orientation</code>. * @returns {Vec3} The negative z-axis rotated by <code>orientation</code>.
@ -233,7 +233,7 @@ public slots:
/**jsdoc /**jsdoc
* Gets the "forward" direction that the camera would face if its orientation was set to the quaternion value. * Gets the "forward" direction that the camera would face if its orientation was set to the quaternion value.
* This is a synonym for {@link Quat(0).getFront|Quat.getFront}. * This is a synonym for {@link Quat(0).getFront|Quat.getFront}.
* The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, </code>-z</code> = forward. * The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
* @function Quat(0).getForward * @function Quat(0).getForward
* @param {Quat} orientation - A quaternion representing an orientation. * @param {Quat} orientation - A quaternion representing an orientation.
* @returns {Vec3} The negative z-axis rotated by <code>orientation</code>. * @returns {Vec3} The negative z-axis rotated by <code>orientation</code>.
@ -245,7 +245,7 @@ public slots:
/**jsdoc /**jsdoc
* Gets the "right" direction that the camera would have if its orientation was set to the quaternion value. * Gets the "right" direction that the camera would have if its orientation was set to the quaternion value.
* The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, </code>-z</code> = forward. * The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
* @function Quat(0).getRight * @function Quat(0).getRight
* @param {Quat} orientation - A quaternion representing an orientation. * @param {Quat} orientation - A quaternion representing an orientation.
* @returns {Vec3} The x-axis rotated by <code>orientation</code>. * @returns {Vec3} The x-axis rotated by <code>orientation</code>.
@ -254,7 +254,7 @@ public slots:
/**jsdoc /**jsdoc
* Gets the "up" direction that the camera would have if its orientation was set to the quaternion value. * Gets the "up" direction that the camera would have if its orientation was set to the quaternion value.
* The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, </code>-z</code> = forward. * The High Fidelity camera has axes <code>x</code> = right, <code>y</code> = up, <code>-z</code> = forward.
* @function Quat(0).getUp * @function Quat(0).getUp
* @param {Quat} orientation - A quaternion representing an orientation. * @param {Quat} orientation - A quaternion representing an orientation.
* @returns {Vec3} The y-axis rotated by <code>orientation</code>. * @returns {Vec3} The y-axis rotated by <code>orientation</code>.
@ -405,8 +405,9 @@ public slots:
void print(const QString& label, const glm::quat& q, bool asDegrees = false); void print(const QString& label, const glm::quat& q, bool asDegrees = false);
/**jsdoc /**jsdoc
* Tests whether two quaternions are equal. <strong>Note:</strong> The quaternions must be exactly equal in order for * Tests whether two quaternions are equal.
* <code>true</code> to be returned; it is often better to use {@link Quat(0).dot|Quat.dot} and test for closeness to +/-1. * <p><strong>Note:</strong> The quaternions must be exactly equal in order for <code>true</code> to be returned; it is
* often better to use {@link Quat(0).dot|Quat.dot} and test for closeness to +/-1.</p>
* @function Quat(0).equal * @function Quat(0).equal
* @param {Quat} q1 - The first quaternion. * @param {Quat} q1 - The first quaternion.
* @param {Quat} q2 - The second quaternion. * @param {Quat} q2 - The second quaternion.

View file

@ -1027,8 +1027,8 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString&
}; };
/**jsdoc /**jsdoc
* The name of an entity event. When the entity event occurs, any function that has been registered for that event via * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event via
* {@link Script.addEventHandler} is called with parameters per the entity event. * {@link Script.addEventHandler} is called with parameters per the entity event.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Event Name</th><th>Entity Event</th></tr> * <tr><th>Event Name</th><th>Entity Event</th></tr>

View file

@ -69,7 +69,7 @@ class TabletScriptingInterface : public QObject, public Dependency {
public: public:
/**jsdoc /**jsdoc
* Standard tablet sounds. * <p>Standard tablet sounds.</p>
* <table> * <table>
* <thead> * <thead>
* <tr><th>Value</th><th>Description</th></tr> * <tr><th>Value</th><th>Description</th></tr>

View file

@ -96,7 +96,7 @@ h6
.paramHeading, .typeDef h3.propsHeading, h3.subHeading .paramHeading, .typeDef h3.propsHeading, h3.subHeading
{ {
font-size: .9rem; font-size: 1rem;
font-family: "Proxima Nova"; font-family: "Proxima Nova";
font-weight: bold; font-weight: bold;
border-bottom: solid 1px #ddd; border-bottom: solid 1px #ddd;
@ -108,9 +108,9 @@ h4.name
padding-bottom: 0px; padding-bottom: 0px;
} }
h5, .container-overview .subsection-title h5, .container-overview .subsection-title {
{ font-size: 1rem;
font-size: 13px; font-family: "Proxima Nova";
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
} }
@ -143,6 +143,14 @@ td {
border: solid #c7cccb 1px; border: solid #c7cccb 1px;
} }
td > p:first-child, td > ul:first-child {
margin-top: 0;
}
td > p:last-child, td > ul:last-child {
margin-bottom: 0;
}
article table thead tr th, article table tbody tr td, article table tbody tr td p { article table thead tr th, article table tbody tr td, article table tbody tr td p {
font-size: .89rem; font-size: .89rem;
line-height: 20px; line-height: 20px;
@ -538,7 +546,7 @@ header {
.prettyprint code .prettyprint code
{ {
font-size: 0.9em; font-size: .95em;
line-height: 18px; line-height: 18px;
display: block; display: block;
padding: 4px 12px; padding: 4px 12px;
@ -596,11 +604,6 @@ header {
font-size: 100%; font-size: 100%;
} }
.params td.description > p:first-child, .props td.description > p:first-child {
margin-top: 0;
padding-top: 0;
}
span.param-type, .params td .param-type, .param-type dd { span.param-type, .params td .param-type, .param-type dd {
color: #606; color: #606;
font-family: Consolas, Monaco, 'Andale Mono', monospace font-family: Consolas, Monaco, 'Andale Mono', monospace

View file

@ -63,11 +63,13 @@
<section> <section>
<article> <article>
<div class="container-overview"> <div class="container-overview">
<?js if (doc.kind === 'module' && doc.modules) { ?> <?js if (isGlobalPage) { ?>
<?js } else if (doc.kind === 'module' && doc.modules) { ?>
<?js if (doc.description) { ?> <?js if (doc.description) { ?>
<h3>Description</h3> <h3>Description</h3>
<p><?js= doc.description ?></p> <div><?js= doc.description ?></div>
<?js } ?> <?js } ?>
<?js doc.modules.forEach(function(module) { ?> <?js doc.modules.forEach(function(module) { ?>
@ -75,7 +77,8 @@
<?js }) ?> <?js }) ?>
<?js } else if (doc.kind === 'class' || (doc.kind === 'namespace' && doc.signature)) { ?> <?js } else if (doc.kind === 'class' || (doc.kind === 'namespace' && doc.signature)) { ?>
<h3>Description</h3> <h3>Description</h3>
<p><?js= doc.description ?></p> <div><?js= doc.description ?></div>
<?js= self.partial('details.tmpl', doc) ?>
<table> <table>
<thead> <thead>
<tr> <tr>
@ -84,15 +87,15 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><code><?js= (doc.kind === 'class' ? 'new ' : '') + doc.name + (doc.signature || '') ?></code><p /> <td><code><?js= (doc.kind === 'class' ? 'new ' : '') + doc.name + (doc.signature || '') ?></code>
<?js if (doc.params) { ?> <?js if (doc.params) { ?>
<h3 class="paramHeading">Parameters</h3> <h3 class="paramHeading">Parameters</h3>
<?js= self.partial('params.tmpl', doc.params) ?> <?js= self.partial('params.tmpl', doc.params) ?>
<?js } ?> <?js } ?>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<?js= self.partial('details.tmpl', doc) ?>
<?js if (doc.examples && doc.examples.length) { ?> <?js if (doc.examples && doc.examples.length) { ?>
<h3>Example<?js= doc.examples.length > 1? 's':'' ?></h3> <h3>Example<?js= doc.examples.length > 1? 's':'' ?></h3>
@ -101,7 +104,7 @@
<?js } else { ?> <?js } else { ?>
<h3>Description</h3> <h3>Description</h3>
<?js if (doc.description) { ?> <?js if (doc.description) { ?>
<p><?js= doc.description ?></p> <div><?js= doc.description ?></div>
<?js } ?> <?js } ?>
<?js if (doc.examples && doc.examples.length) { ?> <?js if (doc.examples && doc.examples.length) { ?>
@ -264,6 +267,7 @@
<?js methods.forEach(function(m) { ?> <?js methods.forEach(function(m) { ?>
<?js= self.partial('method.tmpl', m) ?> <?js= self.partial('method.tmpl', m) ?>
<?js }); ?> <?js }); ?>
</div>
<?js } ?> <?js } ?>
<?js <?js
@ -276,12 +280,10 @@
<?js signals.forEach(function(s) { ?> <?js signals.forEach(function(s) { ?>
<?js= self.partial('signal.tmpl', s) ?> <?js= self.partial('signal.tmpl', s) ?>
<?js }); ?> <?js }); ?>
</div>
<?js } ?> <?js } ?>
</article> </article>
</section> </section>
<?js } ?> <?js } ?>
<?js }); ?> <?js }); ?>

View file

@ -0,0 +1,15 @@
<?js
var description = obj;
var self = this;
var descriptionRegExp = new RegExp('<(p|ul|div|table)[^>]*>', 'i');
var descriptionIndex = description.search(descriptionRegExp);
?>
<?js if (descriptionIndex === -1) { ?>
<p><?js= description ?></p>
<?js } else if (descriptionIndex !== 0) { ?>
<p><?js= description.slice(0, descriptionIndex) ?></p>
<?js= description.slice(descriptionIndex) ?>
<?js } else { ?>
<?js= description ?>
<?js } ?>

View file

@ -31,113 +31,113 @@ if (data.defaultvalue && (data.defaultvaluetype === 'object' || data.defaultvalu
<?js if (data.version) {?> <?js if (data.version) {?>
<p>Version:</p> <p>Version:</p>
<p><ul class="dummy"><li><?js= version ?></li></ul></p> <div><ul class="dummy"><li><?js= version ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.since) {?> <?js if (data.since) {?>
<p>Since:</p> <p>Since:</p>
<p><ul class="dummy"><li><?js= since ?></li></ul></p> <div><ul class="dummy"><li><?js= since ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.inherited && data.inherits && !data.overrides) { ?> <?js if (data.inherited && data.inherits && !data.overrides) { ?>
<p>Inherited From:</p> <p>Inherited From:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?> <?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.overrides) { ?> <?js if (data.overrides) { ?>
<p>Overrides:</p> <p>Overrides:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= this.linkto(data.overrides, this.htmlsafe(data.overrides)) ?> <?js= this.linkto(data.overrides, this.htmlsafe(data.overrides)) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.implementations && data.implementations.length) { ?> <?js if (data.implementations && data.implementations.length) { ?>
<p>Implementations:</p> <p>Implementations:</p>
<p><ul> <div><ul>
<?js data.implementations.forEach(function(impl) { ?> <?js data.implementations.forEach(function(impl) { ?>
<li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li> <li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.implements && data.implements.length) { ?> <?js if (data.implements && data.implements.length) { ?>
<p>Implements:</p> <p>Implements:</p>
<p><ul> <div><ul>
<?js data.implements.forEach(function(impl) { ?> <?js data.implements.forEach(function(impl) { ?>
<li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li> <li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.mixes && data.mixes.length) { ?> <?js if (data.mixes && data.mixes.length) { ?>
<p>Mixes In:</p> <p>Mixes In:</p>
<p><ul> <div><ul>
<?js data.mixes.forEach(function(a) { ?> <?js data.mixes.forEach(function(a) { ?>
<li><?js= self.linkto(a, a) ?></li> <li><?js= self.linkto(a, a) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.author && author.length) {?> <?js if (data.author && author.length) {?>
<p>Author:</p> <p>Author:</p>
<p> <div>
<ul><?js author.forEach(function(a) { ?> <ul><?js author.forEach(function(a) { ?>
<li><?js= self.resolveAuthorLinks(a) ?></li> <li><?js= self.resolveAuthorLinks(a) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.copyright) {?> <?js if (data.copyright) {?>
<p>Copyright:</p> <p>Copyright:</p>
<p><ul class="dummy"><li><?js= copyright ?></li></ul></p> <div><ul class="dummy"><li><?js= copyright ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.license) {?> <?js if (data.license) {?>
<p>License:</p> <p>License:</p>
<p><ul class="dummy"><li><?js= license ?></li></ul></p> <div><ul class="dummy"><li><?js= license ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.defaultvalue) {?> <?js if (data.defaultvalue) {?>
<p>Default Value:</p> <p>Default Value:</p>
<p><ul class="dummy"> <div><ul class="dummy">
<li<?js= defaultObjectClass ?>><?js= data.defaultvalue ?></li> <li><?js= defaultObjectClass ?>><?js= data.defaultvalue ?></li>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.meta && self.outputSourceFiles) {?> <?js if (data.meta && self.outputSourceFiles) {?>
<p>Source:</p> <p>Source:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= self.linkto(meta.shortpath) ?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?> <?js= self.linkto(meta.shortpath) ?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.tutorials && tutorials.length) {?> <?js if (data.tutorials && tutorials.length) {?>
<p>Tutorials:</p> <p>Tutorials:</p>
<p> <div>
<ul><?js tutorials.forEach(function(t) { ?> <ul><?js tutorials.forEach(function(t) { ?>
<li><?js= self.tutoriallink(t) ?></li> <li><?js= self.tutoriallink(t) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.see && see.length) {?> <?js if (data.see && see.length) {?>
<p class="see">See:</p> <p class="see">See:</p>
<p> <div>
<ul><?js see.forEach(function(s) { ?> <ul><?js see.forEach(function(s) { ?>
<li><?js= self.linkto(s) ?></li> <li><?js= self.linkto(s) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.todo && todo.length) {?> <?js if (data.todo && todo.length) {?>
<p>To Do:</p> <p>To Do:</p>
<p> <div>
<ul><?js todo.forEach(function(t) { ?> <ul><?js todo.forEach(function(t) { ?>
<li><?js= t ?></li> <li><?js= t ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>

View file

@ -29,113 +29,113 @@ if (data.defaultvalue && (data.defaultvaluetype === 'object' || data.defaultvalu
<?js if (data.version) {?> <?js if (data.version) {?>
<p>Version:</p> <p>Version:</p>
<p><ul class="dummy"><li><?js= version ?></li></ul></p> <div><ul class="dummy"><li><?js= version ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.since) {?> <?js if (data.since) {?>
<p>Since:</p> <p>Since:</p>
<p><ul class="dummy"><li><?js= since ?></li></ul></p> <div><ul class="dummy"><li><?js= since ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.inherited && data.inherits && !data.overrides) { ?> <?js if (data.inherited && data.inherits && !data.overrides) { ?>
<p>Inherited From:</p> <p>Inherited From:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?> <?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.overrides) { ?> <?js if (data.overrides) { ?>
<p>Overrides:</p> <p>Overrides:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= this.linkto(data.overrides, this.htmlsafe(data.overrides)) ?> <?js= this.linkto(data.overrides, this.htmlsafe(data.overrides)) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.implementations && data.implementations.length) { ?> <?js if (data.implementations && data.implementations.length) { ?>
<p>Implementations:</p> <p>Implementations:</p>
<p><ul> <div><ul>
<?js data.implementations.forEach(function(impl) { ?> <?js data.implementations.forEach(function(impl) { ?>
<li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li> <li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.implements && data.implements.length) { ?> <?js if (data.implements && data.implements.length) { ?>
<p>Implements:</p> <p>Implements:</p>
<p><ul> <div><ul>
<?js data.implements.forEach(function(impl) { ?> <?js data.implements.forEach(function(impl) { ?>
<li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li> <li><?js= self.linkto(impl, self.htmlsafe(impl)) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.mixes && data.mixes.length) { ?> <?js if (data.mixes && data.mixes.length) { ?>
<p>Mixes In:</p> <p>Mixes In:</p>
<p><ul> <div><ul>
<?js data.mixes.forEach(function(a) { ?> <?js data.mixes.forEach(function(a) { ?>
<li><?js= self.linkto(a, a) ?></li> <li><?js= self.linkto(a, a) ?></li>
<?js }); ?> <?js }); ?>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.author && author.length) {?> <?js if (data.author && author.length) {?>
<p>Author:</p> <p>Author:</p>
<p> <div>
<ul><?js author.forEach(function(a) { ?> <ul><?js author.forEach(function(a) { ?>
<li><?js= self.resolveAuthorLinks(a) ?></li> <li><?js= self.resolveAuthorLinks(a) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.copyright) {?> <?js if (data.copyright) {?>
<p>Copyright:</p> <p>Copyright:</p>
<p><ul class="dummy"><li><?js= copyright ?></li></ul></p> <div><ul class="dummy"><li><?js= copyright ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.license) {?> <?js if (data.license) {?>
<p>License:</p> <p>License:</p>
<p><ul class="dummy"><li><?js= license ?></li></ul></p> <div><ul class="dummy"><li><?js= license ?></li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.defaultvalue) {?> <?js if (data.defaultvalue) {?>
<p>Default Value:</p> <p>Default Value:</p>
<p><ul class="dummy"> <div><ul class="dummy">
<li<?js= defaultObjectClass ?>><?js= data.defaultvalue ?></li> <li><?js= defaultObjectClass ?>><?js= data.defaultvalue ?></li>
</ul></p> </ul></div>
<?js } ?> <?js } ?>
<?js if (data.meta && self.outputSourceFiles) {?> <?js if (data.meta && self.outputSourceFiles) {?>
<p>Source:</p> <p>Source:</p>
<p><ul class="dummy"><li> <div><ul class="dummy"><li>
<?js= self.linkto(meta.shortpath) ?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?> <?js= self.linkto(meta.shortpath) ?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?>
</li></ul></p> </li></ul></div>
<?js } ?> <?js } ?>
<?js if (data.tutorials && tutorials.length) {?> <?js if (data.tutorials && tutorials.length) {?>
<p>Tutorials:</p> <p>Tutorials:</p>
<p> <div>
<ul><?js tutorials.forEach(function(t) { ?> <ul><?js tutorials.forEach(function(t) { ?>
<li><?js= self.tutoriallink(t) ?></li> <li><?js= self.tutoriallink(t) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.see && see.length) {?> <?js if (data.see && see.length) {?>
<p class="see">See:</p> <p class="see">See:</p>
<p> <div>
<ul><?js see.forEach(function(s) { ?> <ul><?js see.forEach(function(s) { ?>
<li><?js= self.linkto(s) ?></li> <li><?js= self.linkto(s) ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>
<?js if (data.todo && todo.length) {?> <?js if (data.todo && todo.length) {?>
<p>To Do:</p> <p>To Do:</p>
<p> <div>
<ul><?js todo.forEach(function(t) { ?> <ul><?js todo.forEach(function(t) { ?>
<li><?js= t ?></li> <li><?js= t ?></li>
<?js }); ?></ul> <?js }); ?></ul>
</p> </div>
<?js } ?> <?js } ?>

View file

@ -16,7 +16,7 @@ var self = this;
<tr> <tr>
<td> <td>
<?js if (data.description) { ?> <?js if (data.description) { ?>
<p><?js= data.description ?></p> <?js= self.partial('description.tmpl', data.description) ?>
<?js } else { ?> <?js } else { ?>
<p style="color:red;">&nbsp;</p> <p style="color:red;">&nbsp;</p>
<?js } ?> <?js } ?>

View file

@ -12,8 +12,9 @@ var self = this;
Returns: <span style="font-weight: normal;"> Returns: <span style="font-weight: normal;">
<?js returns.forEach(function(r) { ?> <?js returns.forEach(function(r) { ?>
<?js= self.partial('returns.tmpl', r) ?> <?js= self.partial('returns.tmpl', r) ?>
<?js }); <?js }); ?>
} ?></span> </span>
<?js } ?>
<?js if (data.kind === 'typedef' && data.type && data.type.names) { ?> <?js if (data.kind === 'typedef' && data.type && data.type.names) { ?>
<br />Type: <?js= self.partial('type.tmpl', data.type.names) ?> <br />Type: <?js= self.partial('type.tmpl', data.type.names) ?>
<?js } ?> <?js } ?>
@ -24,23 +25,23 @@ var self = this;
<tr> <tr>
<td> <td>
<?js if (data.kind !== 'module' && !data.hideconstructor) { ?> <?js if (data.kind !== 'module' && !data.hideconstructor) { ?>
<p> <?js if (data.description) { ?>
<?js= data.description ?> <?js= self.partial('description.tmpl', data.description) ?>
<?js } ?>
<?js= this.partial('details.tmpl', data) ?> <?js= this.partial('details.tmpl', data) ?>
</p>
<?js } else { ?> <?js } else { ?>
<p style="color:red;">&nbsp;</p> <p style="color:red;">&nbsp;</p>
<?js } ?> <?js } ?>
<?js if (data.exceptions && exceptions.length) { ?> <?js if (data.exceptions && exceptions.length) { ?>
<h3 class="subHeading">Throws:</h3> <h3 class="subHeading">Throws</h3>
<?js if (exceptions.length > 1) { ?><ul><?js <?js if (exceptions.length > 1) { ?><ul><?js
exceptions.forEach(function(r) { ?> exceptions.forEach(function(r) { ?>
<li><?js= self.partial('exceptions.tmpl', r) ?></li> <li><?js= self.partial('exceptions.tmpl', r) ?></li>
<?js }); <?js });
?></ul><?js } else { ?></ul><?js } else {
exceptions.forEach(function(r) { ?> exceptions.forEach(function(r) { ?>
<p><?js= self.partial('exceptions.tmpl', r) ?></p> <?js= self.partial('exceptions.tmpl', r) ?>
<?js }); <?js });
} } ?> } } ?>

View file

@ -29,11 +29,9 @@ var self = this;
</td> </td>
<td> <td>
<?js if (data.description) { ?> <?js if (data.description) { ?>
<?js= description ?> <?js= this.partial('description.tmpl', data.description) ?>
<?js= this.partial('details.tmpl', data) ?>
<?js } else { ?>
<?js= this.partial('details.tmpl', data) ?>
<?js } ?> <?js } ?>
<?js= this.partial('details.tmpl', data) ?>
</td> </td>
</tr> </tr>
<?js } ?> <?js } ?>

View file

@ -120,10 +120,15 @@
</td> </td>
<?js } ?> <?js } ?>
<td class="description last"><?js= param.description ?><?js if (param.subparams) { ?> <td class="description last">
<?js if (param.description) { ?>
<?js= self.partial('description.tmpl', param.description) ?>
<?js } ?>
<?js if (param.subparams) { ?>
<h6>Properties</h6> <h6>Properties</h6>
<?js= self.partial('params.tmpl', param.subparams) ?> <?js= self.partial('params.tmpl', param.subparams) ?>
<?js } ?></td> <?js } ?>
</td>
</tr> </tr>
<?js }); ?> <?js }); ?>

View file

@ -87,7 +87,9 @@
<?js } ?> <?js } ?>
<td class="description last"> <td class="description last">
<?js= prop.description ?> <?js if (prop.description) { ?>
<?js= self.partial('description.tmpl', prop.description) ?>
<?js } ?>
<?js if (props.hasDefault) {?> <?js if (props.hasDefault) {?>
<?js if (typeof prop.defaultvalue !== 'undefined') { ?> <?js if (typeof prop.defaultvalue !== 'undefined') { ?>
<p><b>Default Value:</b> <?js= self.htmlsafe(prop.defaultvalue) ?> </p> <p><b>Default Value:</b> <?js= self.htmlsafe(prop.defaultvalue) ?> </p>

View file

@ -25,23 +25,23 @@ var self = this;
<tr> <tr>
<td> <td>
<?js if (data.kind !== 'module' && !data.hideconstructor) { ?> <?js if (data.kind !== 'module' && !data.hideconstructor) { ?>
<p> <?js if (data.description) { ?>
<?js= data.description ?> <?js= self.partial('description.tmpl', data.description) ?>
<?js } ?>
<?js= this.partial('details.tmpl', data) ?> <?js= this.partial('details.tmpl', data) ?>
</p>
<?js } else { ?> <?js } else { ?>
<p style="color:red;">&nbsp;</p> <p style="color:red;">&nbsp;</p>
<?js } ?> <?js } ?>
<?js if (data.exceptions && exceptions.length) { ?> <?js if (data.exceptions && exceptions.length) { ?>
<h3 class="subHeading">Throws:</h3> <h3 class="subHeading">Throws</h3>
<?js if (exceptions.length > 1) { ?><ul><?js <?js if (exceptions.length > 1) { ?><ul><?js
exceptions.forEach(function(r) { ?> exceptions.forEach(function(r) { ?>
<li><?js= self.partial('exceptions.tmpl', r) ?></li> <li><?js= self.partial('exceptions.tmpl', r) ?></li>
<?js }); <?js });
?></ul><?js } else { ?></ul><?js } else {
exceptions.forEach(function(r) { ?> exceptions.forEach(function(r) { ?>
<p><?js= self.partial('exceptions.tmpl', r) ?></p> <?js= self.partial('exceptions.tmpl', r) ?>
<?js }); <?js });
} } ?> } } ?>

View file

@ -14,11 +14,9 @@ var self = this;
</td> </td>
<td> <td>
<?js if (data.description) { ?> <?js if (data.description) { ?>
<?js= description ?> <?js= this.partial('description.tmpl', description) ?>
<?js= this.partial('details.tmpl', data) ?>
<?js } else { ?>
<?js= this.partial('details.tmpl', data) ?>
<?js } ?> <?js } ?>
<?js= this.partial('details.tmpl', data) ?>
</td> </td>
</tr> </tr>
<?js } ?> <?js } ?>