From 43a0ed48fd05204bf696a6fa1de7f9f234358bd6 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 17 Sep 2019 16:25:34 +1200 Subject: [PATCH 01/22] Fix JSDoc template HTML issues --- .../hifi-jsdoc-template/tmpl/container.tmpl | 17 +++--- .../hifi-jsdoc-template/tmpl/details.tmpl | 54 +++++++++---------- .../hifi-jsdoc-template/tmpl/example.tmpl | 54 +++++++++---------- .../hifi-jsdoc-template/tmpl/members.tmpl | 2 +- .../hifi-jsdoc-template/tmpl/method.tmpl | 13 ++--- .../hifi-jsdoc-template/tmpl/signal.tmpl | 8 +-- 6 files changed, 75 insertions(+), 73 deletions(-) diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl index 5c149fa434..c2aa955b80 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl @@ -63,11 +63,12 @@
+

Description

-

+
@@ -75,7 +76,7 @@

Description

-

+
@@ -84,11 +85,12 @@ -

+

Parameters

+
@@ -101,7 +103,7 @@

Description

-

+
@@ -264,6 +266,7 @@ +
+ - -
- - +
diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/details.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/details.tmpl index 0661ee3e50..afb0e9464c 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/details.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/details.tmpl @@ -31,113 +31,113 @@ if (data.defaultvalue && (data.defaultvaluetype === 'object' || data.defaultvalu

Version:

-

+

Since:

-

+

Inherited From:

-

Overrides:

-

Implementations:

-

Implements:

-

Mixes In:

-

Author:

-

+

-

+

Copyright:

-

+

License:

-

+

Default Value:

-

+

Source:

-

Tutorials:

-

+

-

+

See:

-

+

-

+

To Do:

-

+

-

+
diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/example.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/example.tmpl index e1b06d0a46..ea70a150c5 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/example.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/example.tmpl @@ -29,113 +29,113 @@ if (data.defaultvalue && (data.defaultvaluetype === 'object' || data.defaultvalu

Version:

-

+

Since:

-

+

Inherited From:

-

Overrides:

-

Implementations:

-

Implements:

-

Mixes In:

-

Author:

-

+

-

+

Copyright:

-

+

License:

-

+

Default Value:

-

+

Source:

-

Tutorials:

-

+

-

+

See:

-

+

-

+

To Do:

-

+

-

+
diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl index eef64c1f3f..c97a3f6979 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl @@ -16,7 +16,7 @@ var self = this; -

+

 

diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl index 8db1df8a77..db52d8f0b5 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl @@ -12,8 +12,9 @@ var self = this; Returns: - + + +
Type: @@ -24,23 +25,23 @@ var self = this; -

+

-

+

 

-

Throws:

+

Throws

1) { ?> -

+ diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl index 00bf7122e1..ece03b9e36 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl @@ -25,23 +25,23 @@ var self = this; -

+

-

+

 

-

Throws:

+

Throws

1) { ?> -

+ From dff37a71eb2ebd2b85a5d3364205cf12713afd3f Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 17 Sep 2019 16:26:09 +1200 Subject: [PATCH 02/22] Fix JSDoc markup HTML issues --- interface/src/FancyCamera.h | 2 +- interface/src/avatar/MyAvatar.h | 2 +- .../src/raypick/PickScriptingInterface.h | 2 +- .../scripting/ControllerScriptingInterface.h | 1 - .../scripting/DesktopScriptingInterface.cpp | 4 +- .../src/scripting/MenuScriptingInterface.h | 3 +- .../src/scripting/WindowScriptingInterface.h | 6 +- interface/src/ui/overlays/Overlays.cpp | 70 +++++++++---------- .../animation/src/AnimInverseKinematics.h | 2 +- libraries/animation/src/AnimOverlay.h | 2 +- libraries/animation/src/IKTarget.h | 2 +- libraries/animation/src/Rig.cpp | 2 +- .../controllers/src/controllers/Actions.cpp | 2 +- .../src/controllers/StandardController.cpp | 5 +- .../controllers/impl/MappingBuilderProxy.h | 2 +- .../entities/src/EntityDynamicInterface.cpp | 4 +- .../entities/src/EntityItemProperties.cpp | 4 +- .../entities/src/EntityScriptingInterface.h | 2 +- .../src/input-plugins/KeyboardMouseDevice.cpp | 2 +- libraries/midi/src/Midi.h | 2 +- libraries/networking/src/AddressManager.h | 10 +-- libraries/script-engine/src/Quat.h | 8 +-- 22 files changed, 69 insertions(+), 70 deletions(-) diff --git a/interface/src/FancyCamera.h b/interface/src/FancyCamera.h index 0cfe147138..f7be71e053 100644 --- a/interface/src/FancyCamera.h +++ b/interface/src/FancyCamera.h @@ -20,7 +20,7 @@ class FancyCamera : public Camera { /**jsdoc * The Camera API provides access to the "camera" that defines your view in desktop and HMD display modes. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The High Fidelity camera has axes x = right, y = up, -z = forward. * * @namespace Camera * diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 0108fb5eda..a7ddb7a837 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -779,7 +779,7 @@ public: * additional properties specified when adding the different handlers.

*

A handler may change a value from animStateDictionaryIn or add different values in the * animStateDictionaryOut returned. Any property values set in animStateDictionaryOut will - * override those of the internal animation machinery. * @function MyAvatar.addAnimationStateHandler * @param {function} handler - The animation state handler function to add. * @param {Array|null} propertiesList - The list of {@link MyAvatar.AnimStateDictionary|AnimStateDictionary} diff --git a/interface/src/raypick/PickScriptingInterface.h b/interface/src/raypick/PickScriptingInterface.h index 72b28bbc47..e26b91b9a2 100644 --- a/interface/src/raypick/PickScriptingInterface.h +++ b/interface/src/raypick/PickScriptingInterface.h @@ -287,7 +287,7 @@ public slots: /**jsdoc * @function Picks.PICK_ENTITIES * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_DOMAIN_ENTITIES | - * Picks.PICK_AVATAR_ENTITIES properties expression instead. + * Picks.PICK_AVATAR_ENTITIES properties expression instead. * @returns {number} */ static constexpr unsigned int PICK_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); } diff --git a/interface/src/scripting/ControllerScriptingInterface.h b/interface/src/scripting/ControllerScriptingInterface.h index 4fb631463e..dbd172abe7 100644 --- a/interface/src/scripting/ControllerScriptingInterface.h +++ b/interface/src/scripting/ControllerScriptingInterface.h @@ -168,7 +168,6 @@ class ScriptEngine; * startFarTrigger
continueFarTrigger
stopFarTrigger * 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. - * * A light switch that can be toggled on and off from a distance. * * diff --git a/interface/src/scripting/DesktopScriptingInterface.cpp b/interface/src/scripting/DesktopScriptingInterface.cpp index 874b3fa42d..bb4ab89f2c 100644 --- a/interface/src/scripting/DesktopScriptingInterface.cpp +++ b/interface/src/scripting/DesktopScriptingInterface.cpp @@ -34,7 +34,7 @@ * A docking location of an InteractiveWindow. * * - * + * * * * @@ -76,7 +76,7 @@ int DesktopScriptingInterface::getHeight() { * A display mode for an InteractiveWindow. *
ValueName

Description
ValueNameDescription
0TOPDock to the top edge of the Interface window.
* - * + * * * * * * - * + * * * * @@ -1674,11 +1674,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1692,7 +1692,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * parentID set, otherwise the same value as rotation. Synonym: localOrientation. * @property {boolean} isSolid=false - true if the overlay is rendered as a solid, false if it is * rendered as a wire frame. - * Synonyms: solid, isFilled, and filled. + * Synonyms: solid, isFilled, and filled. * Antonyms: isWire and wire. * @property {boolean} ignorePickIntersection=false - true if {@link Picks} ignore the overlay, false * if they don't. @@ -1761,17 +1761,17 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @property {Color} color=255,255,255 - The color of the overlay text. Synonym: textColor. * @property {number} alpha=0.7 - The opacity of the overlay text, 0.01.0. *

Currently not used; use textAlpha instead.

- * + * @comment CURRENTLY BROKEN * @property {number} pulseMax=0 - The maximum 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1811,11 +1811,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1857,11 +1857,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1922,35 +1922,35 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * * @property {Uuid} endParentID=null - The avatar, entity, or overlay that the end point of the line is parented to. *

Currently doesn't work.

- * + * @comment CURRENTLY BROKEN * @property {number} endParentJointIndex=65535 - Integer value specifying the skeleton joint that the end point of the line is * attached to if parentID is an avatar skeleton. A value of 65535 means "no joint". *

Currently doesn't work.

- * + * @comment CURRENTLY BROKEN * @property {Vec3} start - The start point of the line. Synonyms: startPoint and p1. - *

If parentID is set, use localStart to set the local position of the start point.

- * + *

If parentID is set, use localStart to set the local position of the start point.

+ * @comment CURRENTLY BROKEN * @property {Vec3} end - The end point of the line. Synonyms: endPoint and p2. - *

If parentID is set, use localEnd to set the local position of the end point.

- * + *

If parentID is set, use localEnd to set the local position of the end point.

+ * @comment CURRENTLY BROKEN * @property {Vec3} localStart - The local position of the overlay relative to its parent if the overlay has a * parentID set, otherwise the same value as start. - * + * @comment CURRENTLY BROKEN * @property {Vec3} localEnd - The local position of the overlay relative to its parent if the overlay has a * endParentID set, otherwise the same value as end. - * + * @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 * points. *

Currently doesn't work.

- * + * @comment CURRENTLY BROKEN * @property {number} glow=0 - If glow > 0, the line is rendered with a glow. * @property {number} lineWidth=0.02 - Width of the line, in meters. *

You can set this property's value but currently cannot retrieve its value. Use the strokeWidths - * property to retrieve its value instead.

+ * property to retrieve its value instead.

*/ /**jsdoc @@ -1967,11 +1967,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -2010,11 +2010,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -2029,7 +2029,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * parentID set, otherwise the same value as rotation. Synonym: localOrientation. * @property {boolean} isSolid=false - true if the overlay is rendered as a solid, false if it is * rendered as a wire frame. - * Synonyms: solid
, isFilled, and filled. + * Synonyms: solid, isFilled, and filled. * Antonyms: isWire and wire. * @property {boolean} ignorePickIntersection=false - true if {@link Picks} ignore the overlay, false * if they don't. diff --git a/libraries/animation/src/AnimInverseKinematics.h b/libraries/animation/src/AnimInverseKinematics.h index 8d3f898e67..d184038815 100644 --- a/libraries/animation/src/AnimInverseKinematics.h +++ b/libraries/animation/src/AnimInverseKinematics.h @@ -63,7 +63,7 @@ public: *

Specifies the initial conditions of the IK solver.

*
ValueName

Description
ValueNameDescription
0VIRTUALThe window is displayed inside Interface: in the desktop window in diff --git a/interface/src/scripting/MenuScriptingInterface.h b/interface/src/scripting/MenuScriptingInterface.h index 6c2634b1de..110df8dd06 100644 --- a/interface/src/scripting/MenuScriptingInterface.h +++ b/interface/src/scripting/MenuScriptingInterface.h @@ -24,7 +24,8 @@ class MenuItemProperties; *

Groupings

* *

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.

There is currently only one available group: "Developer". This grouping can be toggled in the + * as a group.

+ *

There is currently only one available group: "Developer". This grouping can be toggled in the * "Settings" menu.

*

If a menu item doesn't belong to a group, it is always displayed.

* diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 6207b22cb8..83d7de56a5 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -326,7 +326,7 @@ public slots: * 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. * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
+ * name>-on-YYYY-MM-DD_HH-MM-SS".
* Still images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of * ".jpg". Animated images are saved in GIF format. @@ -365,7 +365,7 @@ public slots: * @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken} * signal. * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
+ * name>-on-YYYY-MM-DD_HH-MM-SS".
* Images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of * ".jpg". @@ -384,7 +384,7 @@ public slots: * @param {boolean} [notify=true] - This value is passed on through the {@link Window.stillSnapshotTaken|stillSnapshotTaken} * signal. * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
+ * name>-on-YYYY-MM-DD_HH-MM-SS".
* Images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of * ".jpg". diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 100711d69b..1f5bba86b2 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -1502,11 +1502,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1520,7 +1520,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * parentID set, otherwise the same value as rotation. Synonym: localOrientation. * @property {boolean} isSolid=false - true if the overlay is rendered as a solid, false if it is * rendered as a wire frame. - * Synonyms: solid, isFilled, and filled. + * Synonyms: solid, isFilled, and filled. * Antonyms: isWire and wire. * @property {boolean} ignorePickIntersection=false - true if {@link Picks} ignore the overlay, false * if they don't. @@ -1550,11 +1550,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1568,7 +1568,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * parentID set, otherwise the same value as rotation. Synonym: localOrientation. * @property {boolean} isSolid=false - true if the overlay is rendered as a solid, false if it is * rendered as a wire frame. - * Synonyms: solid, isFilled, and filled. + * Synonyms: solid, isFilled, and filled. * Antonyms: isWire and wire. * @property {boolean} ignorePickIntersection=false - true if {@link Picks} ignore the overlay, false * if they don't. @@ -1599,11 +1599,11 @@ QVector 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 * pulseMin to pulseMax, then pulseMax to pulseMin in one period. * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @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 > 0 the pulse multiplier is applied in phase with the pulse period; if < 0 * the pulse multiplier is applied out of phase with the pulse period. (The magnitude of the property isn't otherwise * used.) * @@ -1617,7 +1617,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * parentID set, otherwise the same value as rotation. Synonym: localOrientation. * @property {boolean} isSolid=false - true if the overlay is rendered as a solid, false if it is * rendered as a wire frame. - * Synonyms: solid, isFilled, and filled. + * Synonyms: solid, isFilled, and filled. * Antonyms: isWire and wire. * @property {boolean} ignorePickIntersection=false - true if {@link Picks} ignore the overlay, false * if they don't. @@ -1641,7 +1641,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { *
ValueDimensionsDescription
"Circle"2DA circle oriented in 3D.
"Circle"2DA circle oriented in 3D.
"Cone"3D
"Cube"3D
"Cylinder"3D
* - * + * * * * - * + * * * - * * diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 7f363dd36f..dacd479aef 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -517,7 +517,7 @@ void Avatar::relayJointDataToChildren() { } /**jsdoc - * An avatar has different types of data simulated at different rates, in Hz. + *

An avatar has different types of data simulated at different rates, in Hz.

* *
ValueName

Description
ValueNameDescription
0RelaxToUnderPosesThis is a blend: it is 15/16 PreviousSolution diff --git a/libraries/animation/src/AnimOverlay.h b/libraries/animation/src/AnimOverlay.h index 1ad4e100db..d5e114a2d2 100644 --- a/libraries/animation/src/AnimOverlay.h +++ b/libraries/animation/src/AnimOverlay.h @@ -28,7 +28,7 @@ public: *

Specifies sets of joints.

* * - * + * * * * diff --git a/libraries/animation/src/IKTarget.h b/libraries/animation/src/IKTarget.h index 331acedd4e..d0c060e44c 100644 --- a/libraries/animation/src/IKTarget.h +++ b/libraries/animation/src/IKTarget.h @@ -20,7 +20,7 @@ public: *

An IK target type.

*
ValueName

Description
ValueNameDescription
0FullBodyBoneSetAll joints.
* - * + * * * * * var entityID = Entities.addEntity({ * type: "Sphere", @@ -1309,7 +1309,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @property {number} bottomMargin=0.0 - The bottom margin, in meters. * @property {boolean} unlit=false - true if the entity is unaffected by lighting, false if it is lit * by the key light and local lights. - * @property {string} font="" - The font to render the text with. It can be one of the following: "Courier""Courier", * "Inconsolata", "Roboto", "Timeless", or a path to a .sdff file. * @property {Entities.TextEffect} textEffect="none" - The effect that is applied to the text. * @property {Color} textEffectColor=255,255,255 - The color of the effect. diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 52470e56c4..5b6f74e5bc 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -1870,7 +1870,7 @@ public slots: /**jsdoc * Called when a {@link Entities.getMeshes} call is complete. * @callback Entities~getMeshesCallback - * @param {MeshProxy[]} meshes - If success< is true, a {@link MeshProxy} per mesh in the + * @param {MeshProxy[]} meshes - If success is true, a {@link MeshProxy} per mesh in the * Model or PolyVox entity; otherwise undefined. * @param {boolean} success - true if the {@link Entities.getMeshes} call was successful, false * otherwise. The call may be unsuccessful if the requested entity could not be found. diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index 0a6c76e456..ac8e6b8053 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -225,7 +225,7 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic * *
ValueName

Description
ValueNameDescription
0RotationAndPositionAttempt to reach the rotation and position end diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 561995cce4..d2e6dead58 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -95,7 +95,7 @@ static const QString MAIN_STATE_MACHINE_RIGHT_HAND_POSITION("mainStateMachineRig *

Warning: These properties are subject to change. * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * *
NameType

Description
NameTypeDescription
userAnimNonebooleantrue when no user overrideAnimation is diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index 9f9d92fed7..9a1f540098 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -171,7 +171,7 @@ namespace controller { *
RightFootnumber{@link Pose}Set the right foot pose of the user's * avatar.
Application
Application
BoomInnumbernumberZoom camera in from third person toward first * person view.
BoomOutnumbernumberZoom camera out from first person to third diff --git a/libraries/controllers/src/controllers/StandardController.cpp b/libraries/controllers/src/controllers/StandardController.cpp index ece10ecca3..04d7c0bef8 100644 --- a/libraries/controllers/src/controllers/StandardController.cpp +++ b/libraries/controllers/src/controllers/StandardController.cpp @@ -33,7 +33,7 @@ void StandardController::focusOutEvent() { * identifying each output. Read-only.

*

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 0.0 or 1.0 for - * button states, the range 0.0 – 1.0 for unidirectional scales, and the range + * button states, the range 0.01.0 for unidirectional scales, and the range * -1.01.0 for bidirectional scales.

*

Each hardware device has a mapping from its outputs to a subset of Controller.Standard items, specified in a * JSON file. For example, @@ -118,8 +118,7 @@ void StandardController::focusOutEvent() { * button.

RightThumbUpnumbernumberRight thumb not touching primary or secondary * thumb buttons.
LeftPrimaryIndexnumbernumberLeft primary index control - * pressed.
LeftPrimaryIndexnumbernumberLeft primary index control pressed.
LeftSecondaryIndexnumbernumberLeft secondary index control pressed. *
RightPrimaryIndexnumbernumberRight primary index control pressed. diff --git a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h index f0a823a3de..5f3b9dc3fc 100644 --- a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h +++ b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h @@ -86,7 +86,7 @@ class UserInputMapper; * @typedef {object} Controller.MappingJSONRoute * @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 "Controller.Hardware." can be omitted. - * @property {boolean} [peek=false] - If true, then peeking is enabled per {@link RouteObject#peek}. + * @property {boolean} [peek=false] - If true, then peeking is enabled per {@link RouteObject#peek}. * @property {boolean} [debug=false] - If true, then debug is enabled per {@link RouteObject#debug}. * @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 ! to do a logical NOT. The leading diff --git a/libraries/entities/src/EntityDynamicInterface.cpp b/libraries/entities/src/EntityDynamicInterface.cpp index 69d771db22..9c73217bef 100644 --- a/libraries/entities/src/EntityDynamicInterface.cpp +++ b/libraries/entities/src/EntityDynamicInterface.cpp @@ -130,8 +130,8 @@ variables. These argument variables are used by the code which is run when bull *
"ball-socket"Object constraintConnects two entities with a ball and socket joint.{@link Entities.ActionArguments-BallSocket}
"spring"Synonym for "tractor". - * Deprecated.
"spring" Synonym for "tractor". + *

Deprecated.

 
* @typedef {string} Entities.ActionType diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 5437ceaab8..e45d05a1b5 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -944,7 +944,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @property {number} materialMappingRot=0 - How much to rotate the material within the parent's UV-space, in degrees. * @property {boolean} materialRepeat=true - true if the material repeats, false if it doesn't. If * false, fragments outside of texCoord 0 – 1 will be discarded. Works in both "uv" and - * "projected" modes. + * "projected" modes. * @example

Color a sphere using a Material entity.
* - * + * * * * diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/params.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/params.tmpl index e994e42bfa..dd9f5f7ee7 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/params.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/params.tmpl @@ -120,10 +120,15 @@ - + diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/properties.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/properties.tmpl index 5c83a7d587..31717ed63b 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/properties.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/properties.tmpl @@ -87,7 +87,9 @@ From d5e08d19e39048988b9fc1ff1ee9db7f603f13e2 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 08:17:24 +1200 Subject: [PATCH 04/22] Fix JSDoc for miscellaneous white space issues --- interface/src/avatar/MyAvatar.cpp | 2 +- interface/src/avatar/MyAvatar.h | 13 ++-- .../src/raypick/PickScriptingInterface.cpp | 22 +++--- .../scripting/ControllerScriptingInterface.h | 18 ++--- .../scripting/DesktopScriptingInterface.cpp | 4 +- .../scripting/SelectionScriptingInterface.cpp | 2 +- .../src/scripting/WalletScriptingInterface.h | 6 +- .../src/scripting/WindowScriptingInterface.h | 24 +++---- interface/src/ui/InteractiveWindow.h | 4 +- interface/src/ui/overlays/Overlays.cpp | 67 +++++++++---------- .../animation/src/AnimInverseKinematics.h | 14 ++-- libraries/animation/src/IKTarget.h | 4 +- .../src/avatars-renderer/Avatar.cpp | 2 +- libraries/avatars/src/AvatarData.cpp | 4 +- libraries/avatars/src/AvatarData.h | 6 +- .../controllers/impl/MappingBuilderProxy.h | 16 ++--- .../src/controllers/impl/RouteBuilderProxy.h | 8 +-- .../entities/src/EntityItemProperties.cpp | 6 +- libraries/entities/src/EntityTypes.h | 12 ++-- .../src/input-plugins/KeyboardMouseDevice.cpp | 14 ++-- libraries/networking/src/MessagesClient.h | 12 ++-- libraries/script-engine/src/ScriptEngine.cpp | 4 +- .../ui/src/ui/TabletScriptingInterface.h | 2 +- 23 files changed, 135 insertions(+), 131 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 4d1c20010c..af6836a8a3 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2479,7 +2479,7 @@ void MyAvatar::clearWornAvatarEntities() { } /**jsdoc - * Information about an avatar entity. + *

Information about an avatar entity.

*
PropertyTypeDataDescription
PropertyTypeDataDescription
09numbernumberA "0" – "1" key on the diff --git a/libraries/midi/src/Midi.h b/libraries/midi/src/Midi.h index dd2b5fd678..d103d05218 100644 --- a/libraries/midi/src/Midi.h +++ b/libraries/midi/src/Midi.h @@ -23,7 +23,7 @@ /**jsdoc * The Midi 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: - * Use MIDI to Control Your Environment.

+ * Use MIDI to Control Your Environment. * *

Note: Only works on Windows.

* diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index 8187c23f71..31bda960ec 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -188,11 +188,11 @@ public slots: /**jsdoc * Takes you to a specified metaverse address. * @function location.handleLookupString - * @param {string} address - The address to go to: a "hifi://" address, an IP address (e.g., - * "127.0.0.1" or "localhost"), a domain name, a named path on a domain (starts with - * "/"), a position or position and orientation, or a user (starts with "@"). + * @param {string} address - The address to go to: a "hifi://" address, an IP address (e.g., + * "127.0.0.1" or "localhost"), a domain name, a named path on a domain (starts with + * "/"), a position or position and orientation, or a user (starts with "@"). * @param {boolean} [fromSuggestions=false] - Set to true if the address is obtained from the "Goto" dialog. - * Helps ensure that user's location history is correctly maintained. + * Helps ensure that user's location history is correctly maintained. */ void handleLookupString(const QString& lookupString, bool fromSuggestions = false); @@ -259,7 +259,7 @@ public slots: /**jsdoc * Checks if going back to the previous location is possible. * @function location.canGoBack - * @returns true if going back is possible, false if it isn't. + * @returns {boolean} true if going back is possible, false if it isn't. */ bool canGoBack() const; diff --git a/libraries/script-engine/src/Quat.h b/libraries/script-engine/src/Quat.h index 0a5e58ac26..1cd4802e48 100644 --- a/libraries/script-engine/src/Quat.h +++ b/libraries/script-engine/src/Quat.h @@ -223,7 +223,7 @@ public slots: /**jsdoc * 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}. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Quat(0).getFront * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The negative z-axis rotated by orientation. @@ -233,7 +233,7 @@ public slots: /**jsdoc * 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}. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Quat(0).getForward * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The negative z-axis rotated by orientation. @@ -245,7 +245,7 @@ public slots: /**jsdoc * Gets the "right" direction that the camera would have if its orientation was set to the quaternion value. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Quat(0).getRight * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The x-axis rotated by orientation. @@ -254,7 +254,7 @@ public slots: /**jsdoc * Gets the "up" direction that the camera would have if its orientation was set to the quaternion value. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Quat(0).getUp * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The y-axis rotated by orientation. From 78b7c04457354b9f5398e8ce90ef597771dbf212 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 08:09:51 +1200 Subject: [PATCH 03/22] Fix white space in generated API docs --- .../hifi-jsdoc-template/static/styles/jsdoc.css | 13 ++++++++----- .../hifi-jsdoc-template/tmpl/description.tmpl | 15 +++++++++++++++ tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl | 2 +- tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl | 8 ++++---- .../hifi-jsdoc-template/tmpl/methodList.tmpl | 6 ++---- tools/jsdoc/hifi-jsdoc-template/tmpl/params.tmpl | 13 +++++++++---- .../hifi-jsdoc-template/tmpl/properties.tmpl | 4 +++- tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl | 8 ++++---- .../hifi-jsdoc-template/tmpl/signalList.tmpl | 8 +++----- 9 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 tools/jsdoc/hifi-jsdoc-template/tmpl/description.tmpl diff --git a/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css b/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css index 2386f88586..7b666de37b 100644 --- a/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css +++ b/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css @@ -143,6 +143,14 @@ td { 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 { font-size: .89rem; line-height: 20px; @@ -596,11 +604,6 @@ header { 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 { color: #606; font-family: Consolas, Monaco, 'Andale Mono', monospace diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/description.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/description.tmpl new file mode 100644 index 0000000000..0e0ad27b37 --- /dev/null +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/description.tmpl @@ -0,0 +1,15 @@ +]*>', 'i'); + var descriptionIndex = description.search(descriptionRegExp); +?> + + +

+ +

+ + + + diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl index c97a3f6979..6a870b4cda 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/members.tmpl @@ -16,7 +16,7 @@ var self = this;
-
+

 

diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl index db52d8f0b5..1542ca1806 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/method.tmpl @@ -25,10 +25,10 @@ var self = this;
-
- - -
+ + + +

 

diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/methodList.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/methodList.tmpl index 7d88cd5e51..982c231fd9 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/methodList.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/methodList.tmpl @@ -29,11 +29,9 @@ var self = this;
- - - - + +
-
Properties
- -
+ + + + +
Properties
+ + +
- + + +

Default Value:

diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl index ece03b9e36..76d6f78948 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/signal.tmpl @@ -25,10 +25,10 @@ var self = this;
-
- - -
+ + + +

 

diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/signalList.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/signalList.tmpl index c5fdefc7d8..98b0892122 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/signalList.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/signalList.tmpl @@ -13,12 +13,10 @@ var self = this;
- - - - + + + -
* * diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a7ddb7a837..6cb9de9e96 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -180,8 +180,8 @@ class MyAvatar : public Avatar { * property value is audioListenerModeCustom. * @property {Quat} customListenOrientation=Quat.IDENTITY - The listening orientation used when the * audioListenerMode property value is audioListenerModeCustom. - * @property {boolean} hasScriptedBlendshapes=false - true to transmit blendshapes over the network.
- * Note: Currently doesn't work. Use {@link MyAvatar.setForceFaceTrackerConnected} instead. + * @property {boolean} hasScriptedBlendshapes=false - true to transmit blendshapes over the network. + *

Note: Currently doesn't work. Use {@link MyAvatar.setForceFaceTrackerConnected} instead.

* @property {boolean} hasProceduralBlinkFaceMovement=true - true if procedural blinking is turned on. * @property {boolean} hasProceduralEyeFaceMovement=true - true if procedural eye movement is turned on. * @property {boolean} hasAudioEnabledFaceMovement=true - true to move the mouth blendshapes with voice audio @@ -239,8 +239,8 @@ class MyAvatar : public Avatar { * @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. * @property {boolean} showPlayArea - Returns and sets the value of the Interface setting, Settings > Controls > Show room - * boundaries while teleporting.
- * Note: Setting the value has no effect unless Interface is restarted. + * boundaries while teleporting. + *

Note: Setting the value has no effect unless Interface is restarted.

* * @property {number} yawSpeed=75 - The mouse X sensitivity value in Settings > General. Read-only. * @property {number} pitchSpeed=50 - The mouse Y sensitivity value in Settings > General. Read-only. @@ -488,9 +488,10 @@ public: * - * + * the avatar to sit on the floor when the user sits on the floor.

+ *

Note: Experimental.

* *
PropertyTypeDescription
2AutoInterface 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 * when the user is standing (i.e., avatar leans, then if leans too far it recenters).
3DisableHMDLeanBoth avatar leaning and recentering are disabled regardless of + *
3DisableHMDLean

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 - * the avatar to sit on the floor when the user sits on the floor.
Note: Experimental.

* @typedef {number} MyAvatar.SitStandModelType diff --git a/interface/src/raypick/PickScriptingInterface.cpp b/interface/src/raypick/PickScriptingInterface.cpp index ddc1fe376c..54c9cbe277 100644 --- a/interface/src/raypick/PickScriptingInterface.cpp +++ b/interface/src/raypick/PickScriptingInterface.cpp @@ -83,12 +83,12 @@ PickFilter getPickFilter(unsigned int filter) { * means no maximum. * @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. - * A value of 0 means no joint.
- * Used only if parentID is specified. + * A value of 0 means no joint. + *

Used only if parentID is specified.

* @property {string} [joint] - "Mouse" parents the pick to the mouse; "Avatar" 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 - * parented to anything.
- * Used only if parentID is not specified. + * parented to anything. + *

Used only if parentID is not specified.

* @property {Vec3} [position=Vec3.ZERO] - The offset of the ray origin from its parent if parented, otherwise the ray origin * in world coordinates. * @property {Vec3} [posOffset] - Synonym for position. @@ -217,12 +217,12 @@ std::shared_ptr PickScriptingInterface::buildStylusPick(const QVarian * means no maximum. * @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. - * A value of 0 means no joint.
- * Used only if parentID is specified. + * A value of 0 means no joint. + *

Used only if parentID is specified.

* @property {string} [joint] - "Mouse" parents the pick to the mouse; "Avatar" 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 * parented to anything. - * Used only if parentID is not specified. + *

Used only if parentID is not specified.

* @property {Vec3} [position=Vec3.ZERO] - The offset of the parabola origin from its parent if parented, otherwise the * parabola origin in world coordinates. * @property {Vec3} [posOffset] - Synonym for position. @@ -327,12 +327,12 @@ std::shared_ptr PickScriptingInterface::buildParabolaPick(const QVari * means no maximum. * @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. - * A value of 0 means no joint.
- * Used only if parentID is specified. + * A value of 0 means no joint. + *

Used only if parentID is specified.

* @property {string} [joint] - "Mouse" parents the pick to the mouse; "Avatar" 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 - * parented to anything.
- * Used only if parentID is not specified. + * parented to anything. + *

Used only if parentID is not specified.

* @property {boolean} [scaleWithParent=true] - true to scale the pick's dimensions and threshold according to the * scale of the parent. * diff --git a/interface/src/scripting/ControllerScriptingInterface.h b/interface/src/scripting/ControllerScriptingInterface.h index dbd172abe7..f65791335d 100644 --- a/interface/src/scripting/ControllerScriptingInterface.h +++ b/interface/src/scripting/ControllerScriptingInterface.h @@ -216,25 +216,25 @@ class ScriptEngine; * * @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 Controller.Hardware.Actions. - * Read-only.

- * Default mappings are provided from the Controller.Hardware.Keyboard and Controller.Standard to - * actions in + * Read-only. + *

Default mappings are provided from the Controller.Hardware.Keyboard and Controller.Standard + * to actions in * * keyboardMouse.json and * - * standard.json, respectively. + * standard.json, respectively.

* * @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 Actions or functions in a - * {@link RouteObject} mapping. Additionally, hardware-specific controller outputs can be mapped to Standard - * controller outputs. Read-only. + * {@link RouteObject} mapping. Additionally, hardware-specific controller outputs can be mapped to + * Controller.Standard controller outputs. Read-only. * * @property {Controller.Standard} Standard - Standard controller outputs that can be mapped to Actions or - * functions in a {@link RouteObject} mapping. Read-only.

- * Each hardware device has a mapping from its outputs to Controller.Standard items, specified in a JSON file. + * functions in a {@link RouteObject} mapping. Read-only. + *

Each hardware device has a mapping from its outputs to Controller.Standard items, specified in a JSON file. * For example, * leapmotion.json and - * vive.json. + * vive.json.

*/ /// handles scripting of input controller commands from JS diff --git a/interface/src/scripting/DesktopScriptingInterface.cpp b/interface/src/scripting/DesktopScriptingInterface.cpp index bb4ab89f2c..95d3bae332 100644 --- a/interface/src/scripting/DesktopScriptingInterface.cpp +++ b/interface/src/scripting/DesktopScriptingInterface.cpp @@ -31,7 +31,7 @@ * @property {InteractiveWindow.DockArea} RIGHT - Dock to the right edge of the Interface window. */ /**jsdoc - * A docking location of an InteractiveWindow. + *

A docking location of an InteractiveWindow.

* * * @@ -73,7 +73,7 @@ int DesktopScriptingInterface::getHeight() { * own separate window. */ /**jsdoc - * A display mode for an InteractiveWindow. + *

A display mode for an InteractiveWindow.

*
ValueNameDescription
* * diff --git a/interface/src/scripting/SelectionScriptingInterface.cpp b/interface/src/scripting/SelectionScriptingInterface.cpp index 5856188868..d2147ac5cc 100644 --- a/interface/src/scripting/SelectionScriptingInterface.cpp +++ b/interface/src/scripting/SelectionScriptingInterface.cpp @@ -44,7 +44,7 @@ SelectionScriptingInterface::SelectionScriptingInterface() { } /**jsdoc - * The type of a specific item in a selection list. + *

The type of a specific item in a selection list.

*
ValueNameDescription
* * diff --git a/interface/src/scripting/WalletScriptingInterface.h b/interface/src/scripting/WalletScriptingInterface.h index 3ef9c7953a..0decbbad11 100644 --- a/interface/src/scripting/WalletScriptingInterface.h +++ b/interface/src/scripting/WalletScriptingInterface.h @@ -73,9 +73,9 @@ public: /**jsdoc * Check that a certified avatar entity is owned by the avatar whose entity it is. The result of the check is provided via * the {@link WalletScriptingInterface.ownershipVerificationSuccess|ownershipVerificationSuccess} and - * {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals.
- * Warning: Neither of these signals are triggered if the entity is not an avatar entity or is not - * certified. + * {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals. + *

Warning: Neither of these signals are triggered if the entity is not an avatar entity or is not + * certified.

* @function WalletScriptingInterface.proveAvatarEntityOwnershipVerification * @param {Uuid} entityID - The avatar entity's ID. * @example diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 83d7de56a5..45585e940a 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -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 * 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-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
- * Still images are saved in JPEG or PNG format according to the extension provided — ".jpg", + * name>-on-YYYY-MM-DD_HH-MM-SS". + *

Still images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of - * ".jpg". Animated images are saved in GIF format. + * ".jpg". Animated images are saved in GIF format.

* * @example * 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} * signal. * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
- * Images are saved in JPEG or PNG format according to the extension provided — ".jpg", + * name>-on-YYYY-MM-DD_HH-MM-SS". + *

Images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of - * ".jpg". + * ".jpg".

*/ 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} * signal. * @param {string} [filename=""] - If a filename is not provided, the image is saved as "hifi-snap-by-<user - * name>-on-YYYY-MM-DD_HH-MM-SS".
- * Images are saved in JPEG or PNG format according to the extension provided — ".jpg", + * name>-on-YYYY-MM-DD_HH-MM-SS". + *

Images are saved in JPEG or PNG format according to the extension provided — ".jpg", * ".jpeg", or ".png" — or if not provided then in JPEG format with an extension of - * ".jpg". + * ".jpg".

*/ 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 * Opens a URL in the Interface window or other application, depending on the URL's scheme. The following schemes are - * supported:
+ * supported: *
    *
  • hifi: Navigate to the URL in Interface.
  • *
  • hifiapp: Open a system app in Interface.
  • *
- * Other schemes will either be handled by the OS (e.g. http, https, or mailto) or - * will display a dialog asking the user to confirm that they want to try to open the URL. + *

Other schemes will either be handled by the OS (e.g. http, https, or mailto) or + * will display a dialog asking the user to confirm that they want to try to open the URL.

* @function Window.openUrl * @param {string} url - The URL to open. */ diff --git a/interface/src/ui/InteractiveWindow.h b/interface/src/ui/InteractiveWindow.h index 70077a27b0..ba53684173 100644 --- a/interface/src/ui/InteractiveWindow.h +++ b/interface/src/ui/InteractiveWindow.h @@ -56,8 +56,8 @@ namespace InteractiveWindowEnums { Q_NAMESPACE /**jsdoc - * A set of flags controlling InteractiveWindow behavior. The value is constructed by using the - * | (bitwise OR) operator on the individual flag values.
+ *

A set of flags controlling InteractiveWindow behavior. The value is constructed by using the + * | (bitwise OR) operator on the individual flag values.

*
ValueDescription
Check the ownership of all nearby certified avatar entities.Using the snapshot function and signals.
* * diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 1f5bba86b2..730554366f 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -1346,49 +1346,48 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * - * + * * * *
Flag NameValueDescription
Some text.{@link Overlays.OverlayProperties-Text|OverlayProperties-Text}
"cube"3DA cube. A "shape" overlay can also be used to create a cube.
- * Deprecated. - *

A cube. A "shape" overlay can also be used to create a cube.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube}
"sphere"3DA sphere. A "shape" overlay can also be used to create a sphere.
- * Deprecated.

A sphere. A "shape" overlay can also be used to create a sphere.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere}
"shape"3DA geometric shape, such as a cube, sphere, or cylinder.
- * Deprecated.

A geometric shape, such as a cube, sphere, or cylinder.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape}
"model"3DA model.
- * Deprecated.

A model.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Model|OverlayProperties-Model}
"image3d"3DAn image. Synonym: "billboard".
- * Deprecated.

An image. Synonym: "billboard".

+ *

Deprecated.

{@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D}
"rectangle3d"3DA rectangle.
- * Deprecated.

A rectangle.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D}
"text3d"3DSome text.
- * Deprecated.

Some text.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D}
"web3d"3DWeb content.
- * Deprecated.

Web content.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D}
"line3d"3DA line.
- * Deprecated.

A line.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D}
"grid"3DA grid of lines in a plane.
- * Deprecated.

A grid of lines in a plane.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid}
"circle3d"3DA circle.
- * Deprecated.

A circle.

+ *

Deprecated.

{@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D}
@@ -1410,17 +1409,17 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @see {@link Overlays.OverlayProperties-Rectangle|OverlayProperties-Rectangle} * @see {@link Overlays.OverlayProperties-Image|OverlayProperties-Image} * @see {@link Overlays.OverlayProperties-Text|OverlayProperties-Text} - * @see {@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube} Deprecated. - * @see {@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere} Deprecated. - * @see {@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape} Deprecated. - * @see {@link Overlays.OverlayProperties-Model|OverlayProperties-Model} Deprecated. - * @see {@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D} Deprecated. - * @see {@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D} Deprecated. - * @see {@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D} Deprecated. - * @see {@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D} Deprecated. - * @see {@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D} Deprecated. - * @see {@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid} Deprecated. - * @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} Deprecated. + * @see {@link Overlays.OverlayProperties-Cube|OverlayProperties-Cube} — Deprecated. + * @see {@link Overlays.OverlayProperties-Sphere|OverlayProperties-Sphere} — Deprecated. + * @see {@link Overlays.OverlayProperties-Shape|OverlayProperties-Shape} — Deprecated. + * @see {@link Overlays.OverlayProperties-Model|OverlayProperties-Model} — Deprecated. + * @see {@link Overlays.OverlayProperties-Rectangle3D|OverlayProperties-Rectangle3D} — Deprecated. + * @see {@link Overlays.OverlayProperties-Image3D|OverlayProperties-Image3D} — Deprecated. + * @see {@link Overlays.OverlayProperties-Text3D|OverlayProperties-Text3D} — Deprecated. + * @see {@link Overlays.OverlayProperties-Web3D|OverlayProperties-Web3D} — Deprecated. + * @see {@link Overlays.OverlayProperties-Line3D|OverlayProperties-Line3D} — Deprecated. + * @see {@link Overlays.OverlayProperties-Grid|OverlayProperties-Grid} — Deprecated. + * @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} — Deprecated. */ /**jsdoc diff --git a/libraries/animation/src/AnimInverseKinematics.h b/libraries/animation/src/AnimInverseKinematics.h index d184038815..959a504e79 100644 --- a/libraries/animation/src/AnimInverseKinematics.h +++ b/libraries/animation/src/AnimInverseKinematics.h @@ -73,12 +73,14 @@ public: *
1RelaxToLimitCenterPosesThis is a blend: it is 15/16 * PreviousSolution and 1/16 LimitCenterPoses. This should converge quickly because it is * close to the previous solution, but still provides the benefits of avoiding limb locking.
2PreviousSolutionThe IK system will begin to solve from the same position and - * orientations for each joint that was the result from the previous frame.
- * Pros: As the end effectors typically do not move much from frame to frame, this is likely to converge quickly - * to a valid solution.
- * 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.
2PreviousSolution + *

The IK system will begin to solve from the same position and orientations for each joint that was the result + * from the previous frame.

+ *

Pros: As the end effectors typically do not move much from frame to frame, this is likely to converge quickly + * to a valid solution.

+ *

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.

+ *
3UnderPosesThe 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 * pose". The under poses are what would be visible if IK was completely disabled. Using the under poses as the diff --git a/libraries/animation/src/IKTarget.h b/libraries/animation/src/IKTarget.h index d0c060e44c..a56f5578b3 100644 --- a/libraries/animation/src/IKTarget.h +++ b/libraries/animation/src/IKTarget.h @@ -26,8 +26,8 @@ public: *
0RotationAndPositionAttempt to reach the rotation and position end * effector.
1RotationOnlyAttempt to reach the end effector rotation only.
2HmdHeadA special mode of IK that would attempt to prevent unnecessary - * bending of the spine.
+ *
2HmdHead + *

A special mode of IK that would attempt to prevent unnecessary bending of the spine.

*

Deprecated: This target type is deprecated and will be removed.

3HipsRelativeRotationAndPositionAttempt to reach a rotation and position end * effector that is not in absolute rig coordinates but is offset by the avatar hips translation.
* diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index c03f9430be..0389dc9149 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1444,7 +1444,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { } /**jsdoc - * The avatar mixer data comprises different types of data, with the data rates of each being tracked in kbps. + *

The avatar mixer data comprises different types of data, with the data rates of each being tracked in kbps.

* *
* @@ -1549,7 +1549,7 @@ float AvatarData::getDataRate(const QString& rateName) const { } /**jsdoc - * The avatar mixer data comprises different types of data updated at different rates, in Hz. + *

The avatar mixer data comprises different types of data updated at different rates, in Hz.

* *
* diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 59a2e2a53e..df0783ef4b 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -1277,9 +1277,9 @@ public: * @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 true so that the bones of the * attached model's skeleton are rotated to fit the avatar's current pose. isSoft is used, for example, - * to have clothing that moves with the avatar.
- * If true, the translation, rotation, and scale parameters are - * ignored. + * to have clothing that moves with the avatar. + *

If true, the translation, rotation, and scale parameters are + * ignored.

* @param {boolean} [allowDuplicates=false] - If true then more than one copy of any particular model may be * attached to the same joint; if false then the same model cannot be attached to the same joint. * @param {boolean} [useSaved=true] - Not used. diff --git a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h index 5f3b9dc3fc..5a8fd3083d 100644 --- a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h +++ b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h @@ -135,8 +135,8 @@ public: /**jsdoc * Creates a new {@link RouteObject} from a controller output, ready to be mapped to a standard control, action, or - * function.
- * This is a QML-specific version of {@link MappingObject#from|from}: use this version in QML files. + * function. + *

This is a QML-specific version of {@link MappingObject#from|from}: use this version in QML files.

* @function MappingObject#fromQml * @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. @@ -146,8 +146,8 @@ public: /**jsdoc * Creates a new {@link RouteObject} from two numeric {@link Controller.Hardware} outputs, one applied in the negative - * direction and the other in the positive direction, ready to be mapped to a standard control, action, or function.
- * This is a QML-specific version of {@link MappingObject#makeAxis|makeAxis}: use this version in QML files. + * 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.

* @function MappingObject#makeAxisQml * @param {Controller.Hardware} source1 - The first, negative-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); /**jsdoc - * Enables or disables the mapping. When enabled, the routes in the mapping take effect.
- * Synonymous with {@link Controller.enableMapping}. + * Enables or disables the mapping. When enabled, the routes in the mapping take effect. + *

Synonymous with {@link Controller.enableMapping}.

* @function MappingObject#enable * @param {boolean} enable=true - If true then the mapping is enabled, otherwise it is disabled. * @returns {MappingObject} The mapping object, so that further routes can be added. @@ -198,8 +198,8 @@ public: Q_INVOKABLE QObject* enable(bool enable = true); /**jsdoc - * Disables the mapping. When disabled, the routes in the mapping have no effect.
- * Synonymous with {@link Controller.disableMapping}. + * Disables the mapping. When disabled, the routes in the mapping have no effect. + *

Synonymous with {@link Controller.disableMapping}.

* @function MappingObject#disable * @returns {MappingObject} The mapping object, so that further routes can be added. */ diff --git a/libraries/controllers/src/controllers/impl/RouteBuilderProxy.h b/libraries/controllers/src/controllers/impl/RouteBuilderProxy.h index e7ff04d72c..f1b36cfec5 100644 --- a/libraries/controllers/src/controllers/impl/RouteBuilderProxy.h +++ b/libraries/controllers/src/controllers/impl/RouteBuilderProxy.h @@ -52,8 +52,8 @@ class RouteBuilderProxy : public QObject { /**jsdoc * Terminates the route with a standard control, an action, or a script function. The output value from the route is - * sent to the specified destination.
- * This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files. + * sent to the specified destination. + *

This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files.

* @function RouteObject#toQml * @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 @@ -64,8 +64,8 @@ class RouteBuilderProxy : public QObject { /**jsdoc * Processes the route only if a condition is satisfied. The condition is evaluated before the route input is read, and * the input is read only if the condition is true. Thus, if the condition is not met then subsequent - * routes using the same input are processed.
- * This is a QML-specific version of {@link MappingObject#to|to}: use this version in QML files. + * routes using the same input are processed. + *

This is a QML-specific version of {@link MappingObject#when|when}: use this version in QML files.

* @function RouteObject#whenQml * @param {condition|condition[]} expression -

A condition may be a:

*
    diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index e45d05a1b5..b835cab40b 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -1217,10 +1217,10 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * dimensions / voxelVolumesize. * @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 - * entity update it.
    - * The size of this property increases with the size and complexity of the PolyVox entity, with the size depending on how + * entity update it. + *

    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, - * 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.

    * @property {Entities.PolyVoxSurfaceStyle} voxelSurfaceStyle=2 - The style of rendering the voxels' surface and how * 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. diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index 4106eb8054..7f72c3f761 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -46,18 +46,18 @@ public: * See also, the "Box" and "Sphere" entity types. *
* * * * * * diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index ac8e6b8053..b1746951bb 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -275,13 +275,15 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic * * + * is the number of units rotated (typically 1.0). + *

Warning: The mouse wheel in an ordinary mouse generates left/right wheel events instead of + * up/down.

+ * *
+ * is the number of units rotated (typically 1.0). + *

Warning: The mouse wheel in an ordinary mouse generates left/right wheel events instead of + * up/down.

+ * *
* * // Receiving script. * 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 * JavaScript Int8Array object. * @param {boolean} [localOnly=false] - If false then the message is sent to all Interface, client entity, - * server entity, and assignment client scripts in the domain.
- * If true then: if sent from an Interface or client entity script it is received by all Interface and + * server entity, and assignment client scripts in the domain. + *

If true 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 - * 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.

* @example
* // Receiving script. * var channelName = "com.highfidelity.example.messages-example"; diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 8337d1911a..4cf4a9fc42 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -1027,8 +1027,8 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& }; /**jsdoc - * 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. + *

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 Entities.EntityProperties-Shape|EntityProperties-Shape}
"Box"A rectangular prism. This is a synonym of "Shape" for the case - * where the entity's shape property value is "Cube".
- * If an entity is created with its type + * where the entity's shape property value is "Cube". + *

If an entity is created with its type * set to "Box" it will always be created with a shape property value of * "Cube". If an entity of type Shape or Sphere has its shape set - * to "Cube" then its type will be reported as "Box". + * to "Cube" then its type will be reported as "Box".

{@link Entities.EntityProperties-Box|EntityProperties-Box}
"Sphere"A sphere. This is a synonym of "Shape" for the case - * where the entity's shape property value is "Sphere".
- * If an entity is created with its type + * where the entity's shape property value is "Sphere". + *

If an entity is created with its type * set to "Sphere" it will always be created with a shape property value of * "Sphere". If an entity of type Box or Shape has its shape set - * to "Sphere" then its type will be reported as "Sphere". + * to "Sphere" then its type will be reported as "Sphere".

{@link Entities.EntityProperties-Sphere|EntityProperties-Sphere}
"Model"A mesh model from a glTF, FBX, or OBJ file.{@link Entities.EntityProperties-Model|EntityProperties-Model}
MouseWheelLeftnumbernumberThe mouse wheel rotated left. The data value * is the number of units rotated (typically 1.0).
MouseWheelUpnumbernumberThe mouse wheel rotated up. The data value - * is the number of units rotated (typically 1.0).
- * Warning: The mouse wheel in an ordinary mouse generates left/right wheel events instead of - * up/down.
MouseWheelDownnumbernumberThe mouse wheel rotated down. The data value - * is the number of units rotated (typically 1.0).
- * Warning: The mouse wheel in an ordinary mouse generates left/right wheel events instead of - * up/down.
TouchpadRightnumbernumberThe average touch on a touch-enabled device * moved right. The data value is how far the average position of all touch points moved.
TouchpadLeftnumbernumberThe average touch on a touch-enabled device diff --git a/libraries/networking/src/MessagesClient.h b/libraries/networking/src/MessagesClient.h index b97c6d8360..7f2714e5ea 100644 --- a/libraries/networking/src/MessagesClient.h +++ b/libraries/networking/src/MessagesClient.h @@ -57,10 +57,10 @@ public: * @param {string} channel - The channel to send the message on. * @param {string} message - The message to send. * @param {boolean} [localOnly=false] - If false then the message is sent to all Interface, client entity, - * server entity, and assignment client scripts in the domain.
- * If true then: if sent from an Interface or client entity script it is received by all Interface and + * server entity, and assignment client scripts in the domain. + *

If true 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 - * 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.

* @example
Send and receive a message.Send and receive data.
* * diff --git a/libraries/ui/src/ui/TabletScriptingInterface.h b/libraries/ui/src/ui/TabletScriptingInterface.h index ba02ba25b0..8cb28c2f20 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.h +++ b/libraries/ui/src/ui/TabletScriptingInterface.h @@ -69,7 +69,7 @@ class TabletScriptingInterface : public QObject, public Dependency { public: /**jsdoc - * Standard tablet sounds. + *

Standard tablet sounds.

*
Event NameEntity Event
* * From 19888fad036e1b6d3dabb6f72072faa16ba5e62a Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 08:35:23 +1200 Subject: [PATCH 05/22] Format findableBy and audioListenerMode property values as lists --- interface/src/avatar/MyAvatar.h | 10 ++++--- .../AccountServicesScriptingInterface.h | 26 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 6cb9de9e96..fb9b605434 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -168,10 +168,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 * 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 - * of the following property values:
- * Myavatar.audioListenerModeHead
- * Myavatar.audioListenerModeCamera
- * Myavatar.audioListenerModeCustom + * of the following property values: + *
    + *
  • MyAvatar.audioListenerModeHead
  • + *
  • MyAvatar.audioListenerModeCamera
  • + *
  • MyAvatar.audioListenerModeCustom
  • + *
* @property {number} audioListenerModeHead=0 - The audio listening position is at the avatar's head. Read-only. * @property {number} audioListenerModeCamera=1 - The audio listening position is at the camera. Read-only. * @property {number} audioListenerModeCustom=2 - The audio listening position is at a the position specified by set by the diff --git a/interface/src/scripting/AccountServicesScriptingInterface.h b/interface/src/scripting/AccountServicesScriptingInterface.h index b188b4e63b..3ad637d0e6 100644 --- a/interface/src/scripting/AccountServicesScriptingInterface.h +++ b/interface/src/scripting/AccountServicesScriptingInterface.h @@ -50,12 +50,14 @@ class AccountServicesScriptingInterface : public QObject { * "Unknown user". Read-only. * @property {boolean} loggedIn - true if the user is logged in, otherwise false. * Read-only. - * @property {string} findableBy - The user's visibility to other users:
- * "none" - user appears offline.
- * "friends" - user is visible only to friends.
- * "connections" - user is visible to friends and connections.
- * "all" - user is visible to everyone. - * @property {string} metaverseServerURL - The metaverse server that the user is authenticated against when logged in + * @property {string} findableBy - The user's visibility to other users: + *
    + *
  • "none" — user appears offline.
  • + *
  • "friends" — user is visible only to friends.
  • + *
  • "connections" — user is visible to friends and connections.
  • + *
  • "all" — user is visible to everyone.
  • + *
+ * @property {string} metaverseServerURL - The metaverse server that the user is authenticated against when logged in * — typically "https://metaverse.highfidelity.com". Read-only. */ @@ -160,11 +162,13 @@ signals: /**jsdoc * Triggered when the user's visibility to others changes. * @function AccountServices.findableByChanged - * @param {string} findableBy - The user's visibility to other people:
- * "none" - user appears offline.
- * "friends" - user is visible only to friends.
- * "connections" - user is visible to friends and connections.
- * "all" - user is visible to everyone. + * @param {string} findableBy - The user's visibility to other people: + *
    + *
  • "none" — user appears offline.
  • + *
  • "friends" — user is visible only to friends.
  • + *
  • "connections" — user is visible to friends and connections.
  • + *
  • "all" — user is visible to everyone.
  • + *
* @returns {Signal} * @example
* AccountServices.findableByChanged.connect(function (findableBy) { From 77fcda90c83b263e3942b748681c7937ebb3e7ff Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 08:50:06 +1200 Subject: [PATCH 06/22] Remove Description section from Global page --- tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl index c2aa955b80..a09b9276fc 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl @@ -65,7 +65,8 @@
- + +

Description

From d02a111e691ee08659b761adbf7b8d4f0be8212d Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 09:18:44 +1200 Subject: [PATCH 07/22] Increase font sizes of Parameters and Example headings and example code --- .../jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css b/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css index 7b666de37b..dd67a4da20 100644 --- a/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css +++ b/tools/jsdoc/hifi-jsdoc-template/static/styles/jsdoc.css @@ -96,7 +96,7 @@ h6 .paramHeading, .typeDef h3.propsHeading, h3.subHeading { - font-size: .9rem; + font-size: 1rem; font-family: "Proxima Nova"; font-weight: bold; border-bottom: solid 1px #ddd; @@ -108,9 +108,9 @@ h4.name padding-bottom: 0px; } -h5, .container-overview .subsection-title -{ - font-size: 13px; +h5, .container-overview .subsection-title { + font-size: 1rem; + font-family: "Proxima Nova"; font-weight: bold; margin-bottom: 5px; } @@ -546,7 +546,7 @@ header { .prettyprint code { - font-size: 0.9em; + font-size: .95em; line-height: 18px; display: block; padding: 4px 12px; From 42bc9356ca38aa6591da45279ea9fa1921547db3 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 09:23:09 +1200 Subject: [PATCH 08/22] Add Steam to list of limited commerce versions --- interface/src/scripting/WalletScriptingInterface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/scripting/WalletScriptingInterface.h b/interface/src/scripting/WalletScriptingInterface.h index 0decbbad11..e9535ceb4e 100644 --- a/interface/src/scripting/WalletScriptingInterface.h +++ b/interface/src/scripting/WalletScriptingInterface.h @@ -42,7 +42,7 @@ public: * @property {WalletScriptingInterface.WalletStatus} walletStatus - The status of the user's wallet. Read-only. * @property {boolean} limitedCommerce - true 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. - * The Oculus Store version of Interface runs in limited commerce mode. Read-only. + * The Oculus Store and Steam versions of Interface run in limited commerce mode. Read-only. */ class WalletScriptingInterface : public QObject, public Dependency { Q_OBJECT From c2e5748452be37169bf21220d5e7443ab8ddcb9f Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 10:16:43 +1200 Subject: [PATCH 09/22] Move classes' details above constructor --- tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl index a09b9276fc..fccf5f7d31 100644 --- a/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl +++ b/tools/jsdoc/hifi-jsdoc-template/tmpl/container.tmpl @@ -78,6 +78,7 @@

Description

+
ValueDescription
Report when your visiblity changes.
@@ -95,7 +96,6 @@
-

Example 1? 's':'' ?>

From 34883990b4e1c3e5a589fc8f5b94e9b64f8b057b Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 10:19:02 +1200 Subject: [PATCH 10/22] Clarify which line3d overlay properties aren't working --- interface/src/ui/overlays/Overlays.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 730554366f..3289cb1594 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -1915,6 +1915,8 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * HUD surface. * @property {boolean} grabbable=false - true if the overlay can be grabbed, false if it can't be. * @property {Uuid} parentID=null - The avatar, entity, or overlay that the overlay is parented to. + *

Currently doesn't work.

+ * @comment CURRENTLY BROKEN * @property {number} parentJointIndex=65535 - Integer value specifying the joint of the entity or avatar that the entity is * parented to if parentID is set. Use 65535 or -1 to parent to the parent's position and orientation rather * than a joint. @@ -1928,17 +1930,19 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @comment CURRENTLY BROKEN * @property {Vec3} start - The start point of the line. Synonyms: startPoint and p1. - *

If parentID is set, use localStart to set the local position of the start point.

- * @comment CURRENTLY BROKEN + *

Note: If parentID is set, use localStart to set the local position of the + * start point.

* @property {Vec3} end - The end point of the line. Synonyms: endPoint and p2. - *

If parentID is set, use localEnd to set the local position of the end point.

- * @comment CURRENTLY BROKEN + *

Note: If parentID is set, use localEnd to set the local position of the + * end point.

* @property {Vec3} localStart - The local position of the overlay relative to its parent if the overlay has a * parentID set, otherwise the same value as start. + *

Currently doesn't work.

* @comment CURRENTLY BROKEN * @property {Vec3} localEnd - The local position of the overlay relative to its parent if the overlay has a * endParentID set, otherwise the same value as end. + *

Currently doesn't work.

* @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 From 9d9317c50db1bc48df8cc488d36eba99971696e1 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 10:19:45 +1200 Subject: [PATCH 11/22] Miscellaneous fixes and typos --- interface/src/raypick/PickScriptingInterface.cpp | 16 +++++++++------- .../src/scripting/WindowScriptingInterface.h | 4 ++-- .../src/avatars-renderer/Avatar.h | 2 +- libraries/script-engine/src/Quat.h | 5 +++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/interface/src/raypick/PickScriptingInterface.cpp b/interface/src/raypick/PickScriptingInterface.cpp index 54c9cbe277..3a7b67a8e9 100644 --- a/interface/src/raypick/PickScriptingInterface.cpp +++ b/interface/src/raypick/PickScriptingInterface.cpp @@ -78,7 +78,7 @@ PickFilter getPickFilter(unsigned int filter) { * @property {boolean} [enabled=false] - true if this pick should start enabled, false if it should * 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 - * values (e.g., Picks.PICK_DOMAIN_ENTTITIES) combined with | (bitwise OR) operators. + * values (e.g., Picks.PICK_DOMAIN_ENTITIES) combined with | (bitwise OR) operators. * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of 0.0 * means no maximum. * @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick. @@ -164,7 +164,7 @@ std::shared_ptr PickScriptingInterface::buildRayPick(const QVariantMa * @property {boolean} [enabled=false] - true if this pick should start enabled, false if it should * 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 - * values (e.g., Picks.PICK_DOMAIN_ENTTITIES) combined with | (bitwise OR) operators. + * values (e.g., Picks.PICK_DOMAIN_ENTITIES) combined with | (bitwise OR) operators. *

Note: Stylus picks do not intersect avatars or the HUD.

* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of 0.0 * means no maximum. @@ -212,7 +212,7 @@ std::shared_ptr PickScriptingInterface::buildStylusPick(const QVarian * @property {boolean} [enabled=false] - true if this pick should start enabled, false if it should * 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 - * values (e.g., Picks.PICK_DOMAIN_ENTTITIES) combined with | (bitwise OR) operators. + * values (e.g., Picks.PICK_DOMAIN_ENTITIES) combined with | (bitwise OR) operators. * @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of 0.0 * means no maximum. * @property {Uuid} [parentID] - The ID of the parent: an avatar, an entity, or another pick. @@ -321,7 +321,7 @@ std::shared_ptr PickScriptingInterface::buildParabolaPick(const QVari * @property {boolean} [enabled=false] - true if this pick should start enabled, false if it should * 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 - * values (e.g., Picks.PICK_DOMAIN_ENTTITIES) combined with | (bitwise OR) operators. + * values (e.g., Picks.PICK_DOMAIN_ENTITIES) combined with | (bitwise OR) operators. *

Note: Collision picks do not intersect the HUD.

* @property {number} [maxDistance=0.0] - The maximum distance at which this pick will intersect. A value of 0.0 * means no maximum. @@ -344,9 +344,11 @@ std::shared_ptr PickScriptingInterface::buildParabolaPick(const QVari * 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 * 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 {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. + * @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 {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 PickScriptingInterface::buildCollisionPick(const QVariantMap& propMap) { bool enabled = false; diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 45585e940a..341b012c2d 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -623,8 +623,8 @@ private slots: signals: /**jsdoc - * Triggered when you change the domain you're visiting. Warning: Is not emitted if you go to a domain - * that isn't running. + * Triggered when you change the domain you're visiting. + *

Warning: Is not emitted if you go to a domain that isn't running.

* @function Window.domainChanged * @param {string} domainURL - The domain's URL. * @returns {Signal} diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 7bb15ecbf7..a1827334d8 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -468,7 +468,7 @@ public: /**jsdoc * Sets the joint of the entity or avatar that the avatar is parented to. * @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 * 65535 or -1 to parent to the entity or avatar's position and orientation rather than a * joint. */ diff --git a/libraries/script-engine/src/Quat.h b/libraries/script-engine/src/Quat.h index 1cd4802e48..44abe62b24 100644 --- a/libraries/script-engine/src/Quat.h +++ b/libraries/script-engine/src/Quat.h @@ -405,8 +405,9 @@ public slots: void print(const QString& label, const glm::quat& q, bool asDegrees = false); /**jsdoc - * Tests whether two quaternions are equal. Note: The quaternions must be exactly equal in order for - * true to be returned; it is often better to use {@link Quat(0).dot|Quat.dot} and test for closeness to +/-1. + * Tests whether two quaternions are equal. + *

Note: The quaternions must be exactly equal in order for true to be returned; it is + * often better to use {@link Quat(0).dot|Quat.dot} and test for closeness to +/-1.

* @function Quat(0).equal * @param {Quat} q1 - The first quaternion. * @param {Quat} q2 - The second quaternion. From 5a4ab1d43f5e258aee2376b583e090e20a1c3d91 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 20 Sep 2019 10:27:21 +1200 Subject: [PATCH 12/22] Missed typo --- interface/src/raypick/PointerScriptingInterface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/raypick/PointerScriptingInterface.h b/interface/src/raypick/PointerScriptingInterface.h index 0eed8b4741..2d2f3f6dae 100644 --- a/interface/src/raypick/PointerScriptingInterface.h +++ b/interface/src/raypick/PointerScriptingInterface.h @@ -41,7 +41,7 @@ public: * @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 >= 1.0 to start the action * and < 1.0 to terminate the action. - * @property {string} button - Which button to trigger. + * @property {string} button - Which button to trigger: *
    *
  • "Primary", "Secondary", and "Tertiary" cause {@link Entities} and * {@link Overlays} mouse pointer events. Other button names also cause mouse events but the button From fc0874a1822fdc83b1682ec57c5af96cbb49c97b Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 3 Oct 2019 17:11:53 -0700 Subject: [PATCH 13/22] new version of webrtc library for osx --- cmake/ports/webrtc/portfile.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/ports/webrtc/portfile.cmake b/cmake/ports/webrtc/portfile.cmake index 3f2fb7a6ab..b5b46723bd 100644 --- a/cmake/ports/webrtc/portfile.cmake +++ b/cmake/ports/webrtc/portfile.cmake @@ -14,9 +14,9 @@ elseif (WIN32) elseif (APPLE) vcpkg_download_distfile( WEBRTC_SOURCE_ARCHIVE - URLS https://hifi-public.s3.amazonaws.com/seth/webrtc-20190626-osx.tar.gz - SHA512 fc70cec1b5ee87395137b7090f424e2fc2300fc17d744d5ffa1cf7aa0e0f1a069a9d72ba1ad2fb4a640ebeb6c218bda24351ba0083e1ff96c4a4b5032648a9d2 - FILENAME webrtc-20190626-osx.tar.gz + URLS https://hifi-public.s3.amazonaws.com/seth/webrtc-m78-osx.tar.gz + SHA512 8b547da921cc96f5c22b4253a1c9e707971bb627898fbdb6b238ef1318c7d2512e878344885c936d4bd6a66005cc5b63dfc3fa5ddd14f17f378dcaa17b5e25df + FILENAME webrtc-m78-osx.tar.gz ) else () # else Linux desktop From 570abba3ce67d17b6694efd759615bf07df06e52 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 8 Oct 2019 13:04:52 +1300 Subject: [PATCH 14/22] SpeechRecognizer JSDoc --- interface/src/SpeechRecognizer.h | 64 +++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/interface/src/SpeechRecognizer.h b/interface/src/SpeechRecognizer.h index 7e2acdb8ac..ae35f63a35 100644 --- a/interface/src/SpeechRecognizer.h +++ b/interface/src/SpeechRecognizer.h @@ -23,6 +23,10 @@ #include /**jsdoc + * The SpeechRecognizer API provides facilities to recognize voice commands. + *

    Speech recognition is enabled or disabled via the Developer > Scripting > Enable Speech Control API menu item or + * the {@link SpeechRecognizer.setEnabled} method.

    + * * @namespace SpeechRecognizer * * @hifi-interface @@ -40,36 +44,86 @@ public: public slots: /**jsdoc + * Enables or disables speech recognition. * @function SpeechRecognizer.setEnabled - * @param {boolean} enabled + * @param {boolean} enabled - true to enable speech recognition, false to disable. */ void setEnabled(bool enabled); /**jsdoc + * Adds a voice command to the speech recognizer. * @function SpeechRecognizer.addCommand - * @param {string} command + * @param {string} command - The voice command to recognize. */ void addCommand(const QString& command); /**jsdoc + * Removes a voice command from the speech recognizer. * @function SpeechRecognizer.removeCommand - * @param {string} command + * @param {string} command - The voice command to stop recognizing. */ void removeCommand(const QString& command); signals: /**jsdoc + * Triggered when a voice command has been recognized. * @function SpeechRecognizer.commandRecognized - * @param {string} command + * @param {string} command - The voice command recognized. * @returns {Signal} + * @example Turn your avatar upon voice command. + * var TURN_LEFT = "turn left"; + * var TURN_RIGHT = "turn right"; + * var TURN_RATE = 0.5; + * var TURN_DURATION = 1000; // ms + * var turnRate = 0; + * + * function getTurnRate() { + * return turnRate; + * } + * + * var MAPPING_NAME = "com.highfidelity.controllers.example.speechRecognizer"; + * var mapping = Controller.newMapping(MAPPING_NAME); + * + * mapping.from(getTurnRate).to(Controller.Actions.Yaw); + * Controller.enableMapping(MAPPING_NAME); + * + * function onCommandRecognized(command) { + * print("Speech command: " + command); + * switch (command) { + * case TURN_LEFT: + * turnRate = -TURN_RATE; + * break; + * case TURN_RIGHT: + * turnRate = TURN_RATE; + * break; + * } + * Script.setTimeout(function () { + * turnRate = 0; + * }, TURN_DURATION); + * } + * + * SpeechRecognizer.addCommand(TURN_LEFT); + * SpeechRecognizer.addCommand(TURN_RIGHT); + * SpeechRecognizer.commandRecognized.connect(onCommandRecognized); + * + * Script.scriptEnding.connect(function () { + * Controller.disableMapping(MAPPING_NAME); + * SpeechRecognizer.removeCommand(TURN_LEFT); + * SpeechRecognizer.removeCommand(TURN_RIGHT); + * }); */ void commandRecognized(const QString& command); /**jsdoc + * Triggered when speech recognition is enabled or disabled. * @function SpeechRecognizer.enabledUpdated - * @param {boolean} enabled + * @param {boolean} enabled - true if speech recognition is enabled, false if it is disabled. * @returns {Signal} + * @example Report when speech recognition is enabled or disabled. + * SpeechRecognizer.enabledUpdated.connect(function (enabled) { + * print("Speech recognition: " + (enabled ? "enabled" : "disabled")); + * }); */ void enabledUpdated(bool enabled); From f73a7c088380796f761171a8bb670564c558dff4 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Mon, 7 Oct 2019 17:35:14 -0700 Subject: [PATCH 15/22] Modified AC logging for paging requirements --- assignment-client/src/AssignmentClient.cpp | 24 +++++++++++++------- assignment-client/src/AssignmentFactory.cpp | 4 +++- libraries/networking/src/LimitedNodeList.cpp | 6 +++-- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/assignment-client/src/AssignmentClient.cpp b/assignment-client/src/AssignmentClient.cpp index a1a2b7c1b5..ce724d7368 100644 --- a/assignment-client/src/AssignmentClient.cpp +++ b/assignment-client/src/AssignmentClient.cpp @@ -82,6 +82,9 @@ AssignmentClient::AssignmentClient(Assignment::Type requestAssignmentType, QStri } _assignmentServerSocket = HifiSockAddr(_assignmentServerHostname, assignmentServerPort, true); + if (_assignmentServerSocket.isNull()) { + qCCritical(assignment_client) << "PAGE: Couldn't resolve domain server address" << _assignmentServerHostname; + } _assignmentServerSocket.setObjectName("AssignmentServer"); nodeList->setAssignmentServerSocket(_assignmentServerSocket); @@ -183,16 +186,21 @@ void AssignmentClient::sendAssignmentRequest() { // we want to check again for the local domain-server port in case the DS has restarted quint16 localAssignmentServerPort; if (nodeList->getLocalServerPortFromSharedMemory(DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY, localAssignmentServerPort)) { - if (localAssignmentServerPort != _assignmentServerSocket.getPort()) { - qCDebug(assignment_client) << "Port for local assignment server read from shared memory is" - << localAssignmentServerPort; + if (localAssignmentServerPort == 0) { + qCWarning(assignment_client) << "ALERT: Server port from shared memory is 0"; + } else { + if (localAssignmentServerPort != _assignmentServerSocket.getPort()) { + qCDebug(assignment_client) << "Port for local assignment server read from shared memory is" + << localAssignmentServerPort; - _assignmentServerSocket.setPort(localAssignmentServerPort); - nodeList->setAssignmentServerSocket(_assignmentServerSocket); + _assignmentServerSocket.setPort(localAssignmentServerPort); + nodeList->setAssignmentServerSocket(_assignmentServerSocket); + } } } else { - qCWarning(assignment_client) << "Failed to read local assignment server port from shared memory" - << "- will send assignment request to previous assignment server socket."; + qCWarning(assignment_client) << "ALERT: Failed to read local assignment server port from shared memory (" + << DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY + << ")- will send assignment request to previous assignment server socket."; } } @@ -250,7 +258,7 @@ void AssignmentClient::handleCreateAssignmentPacket(QSharedPointerstarted() workerThread->start(); } else { - qCWarning(assignment_client) << "Received an assignment that could not be unpacked. Re-requesting."; + qCWarning(assignment_client) << "ALERT: Received an assignment that could not be unpacked. Re-requesting."; } } diff --git a/assignment-client/src/AssignmentFactory.cpp b/assignment-client/src/AssignmentFactory.cpp index 405039d833..ef7da35030 100644 --- a/assignment-client/src/AssignmentFactory.cpp +++ b/assignment-client/src/AssignmentFactory.cpp @@ -24,7 +24,9 @@ ThreadedAssignment* AssignmentFactory::unpackAssignment(ReceivedMessage& message) { quint8 packedType; - message.peekPrimitive(&packedType); + if (message.readPrimitive(&packedType) != sizeof(packedType)) { + return nullptr; + } Assignment::Type unpackedType = (Assignment::Type) packedType; diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index ecf2218e2f..e1b373db89 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -1329,7 +1329,8 @@ void LimitedNodeList::putLocalPortIntoSharedMemory(const QString key, QObject* p qCDebug(networking) << "Wrote local listening port" << localPort << "to shared memory at key" << key; } else { - qWarning() << "ALERT: Failed to create and attach to shared memory to share local port with assignment-client children."; + qWarning() << "ALERT: Failed to create and attach to shared memory to share local port with assignment-client children:" + << sharedPortMem->errorString(); } } @@ -1337,7 +1338,8 @@ void LimitedNodeList::putLocalPortIntoSharedMemory(const QString key, QObject* p bool LimitedNodeList::getLocalServerPortFromSharedMemory(const QString key, quint16& localPort) { QSharedMemory sharedMem(key); if (!sharedMem.attach(QSharedMemory::ReadOnly)) { - qCWarning(networking) << "Could not attach to shared memory at key" << key; + qCWarning(networking) << "Could not attach to shared memory at key" << key + << ":" << sharedMem.errorString(); return false; } else { sharedMem.lock(); From 1106d8fdfa3ec9b8cfab6790273b2e37361a5df3 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 8 Oct 2019 21:15:16 +1300 Subject: [PATCH 16/22] Doc review --- interface/src/ui/overlays/Overlays.cpp | 2 +- libraries/animation/src/AnimInverseKinematics.h | 2 +- libraries/controllers/src/controllers/Actions.cpp | 12 ++++++------ libraries/midi/src/Midi.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 3289cb1594..5e43c5df8d 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -1934,7 +1934,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * start point.

    * @property {Vec3} end - The end point of the line. Synonyms: endPoint and p2. *

    Note: If parentID is set, use localEnd to set the local position of the - * end point.

    + * end point.

    * @property {Vec3} localStart - The local position of the overlay relative to its parent if the overlay has a * parentID set, otherwise the same value as start. diff --git a/libraries/animation/src/AnimInverseKinematics.h b/libraries/animation/src/AnimInverseKinematics.h index 959a504e79..bcad7867cc 100644 --- a/libraries/animation/src/AnimInverseKinematics.h +++ b/libraries/animation/src/AnimInverseKinematics.h @@ -75,7 +75,7 @@ public: * close to the previous solution, but still provides the benefits of avoiding limb locking. * 2PreviousSolution *

    The IK system will begin to solve from the same position and orientations for each joint that was the result - * from the previous frame.

    + * from the previous frame.

    *

    Pros: As the end effectors typically do not move much from frame to frame, this is likely to converge quickly * to a valid solution.

    *

    Cons: If the previous solution resulted in an awkward or uncomfortable posture, the next frame will also be diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index 23f7509d9d..6be0a5a800 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -44,7 +44,7 @@ namespace controller { * PropertyTypeDataDescription * * - * Avatar Movement + * Avatar Movement * TranslateXnumbernumberMove the user's avatar in the direction of its * x-axis, if the camera isn't in independent or mirror modes. * TranslateYnumbernumberMove 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. * StepRollnumbernumberNo action. * - * Avatar Skeleton + * Avatar Skeleton * Hipsnumber{@link Pose}Set the hips pose of the user's avatar. * * Spine2number{@link Pose}Set the spine2 pose of the user's avatar. @@ -171,7 +171,7 @@ namespace controller { * RightFootnumber{@link Pose}Set the right foot pose of the user's * avatar. * - * Application + * Application * BoomInnumbernumberZoom camera in from third person toward first * person view. * BoomOutnumbernumberZoom camera out from first person to third @@ -212,7 +212,7 @@ namespace controller { * SecondaryActionnumbernumberDeprecated: This * action is deprecated and will be removed. It takes no action. * - * Aliases + * Aliases * BackwardnumbernumberAlias for TranslateZ in the * positive direction. * ForwardnumbernumberAlias for TranslateZ in the negative @@ -234,7 +234,7 @@ namespace controller { * YawRightnumbernumberAlias for Yaw in the negative * direction. * - * Deprecated Aliases + * Deprecated Aliases * LEFT_HANDnumber{@link Pose}Deprecated: This * action is deprecated and will be removed. Use LeftHand instead. * RIGHT_HANDnumber{@link Pose}Deprecated: This @@ -282,7 +282,7 @@ namespace controller { * ACTION2numbernumberDeprecated: This * action is deprecated and will be removed. Use SecondaryAction instead. * - * Deprecated Trackers + * Deprecated Trackers * TrackedObject00number{@link Pose}Deprecated: * This action is deprecated and will be removed. It takes no action. * TrackedObject01number{@link Pose}Deprecated: diff --git a/libraries/midi/src/Midi.h b/libraries/midi/src/Midi.h index d103d05218..5b7c82d6da 100644 --- a/libraries/midi/src/Midi.h +++ b/libraries/midi/src/Midi.h @@ -23,7 +23,7 @@ /**jsdoc * The Midi 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: - * Use MIDI to Control Your Environment. + * Use MIDI to Control Your Environment. * *

    Note: Only works on Windows.

    * From 5576132df7a8f28df113022b8e6e0de601f47ed5 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Tue, 8 Oct 2019 10:13:58 -0700 Subject: [PATCH 17/22] Fix strafe while flying, and ramp up diagonal movement --- interface/src/avatar/MyAvatar.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index de6ae526b4..7c8f675b3e 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3560,7 +3560,7 @@ void MyAvatar::updateOrientation(float deltaTime) { if (faceForward || _shouldTurnToFaceCamera) { const float REORIENT_FORWARD_BLEND = 0.25f; const float REORIENT_TURN_BLEND = 0.03f; - const float DIAGONAL_TURN_BLEND = 0.02f; + const float DIAGONAL_TURN_BLEND = 0.1f; float blend = (_shouldTurnToFaceCamera ? REORIENT_TURN_BLEND : REORIENT_FORWARD_BLEND) * timeScale; if (blend > 1.0f) { blend = 1.0f; @@ -3772,7 +3772,8 @@ glm::vec3 MyAvatar::scaleMotorSpeed(const glm::vec3 forward, const glm::vec3 rig // Desktop mode. direction = (zSpeed * forward) + (xSpeed * right); CameraMode mode = qApp->getCamera().getMode(); - if ((mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_FIRST_PERSON || mode == CAMERA_MODE_SELFIE) && zSpeed != 0.0f && xSpeed != 0.0f){ + if ((mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_FIRST_PERSON || mode == CAMERA_MODE_SELFIE) && + zSpeed != 0.0f && xSpeed != 0.0f && !isFlying()){ direction = (zSpeed * forward); } From f63360a87a361448b75680155a4662da42168b77 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Tue, 8 Oct 2019 11:01:42 -0700 Subject: [PATCH 18/22] Change read back to peek - guess it was that way for a reason --- assignment-client/src/AssignmentFactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assignment-client/src/AssignmentFactory.cpp b/assignment-client/src/AssignmentFactory.cpp index ef7da35030..ceab285763 100644 --- a/assignment-client/src/AssignmentFactory.cpp +++ b/assignment-client/src/AssignmentFactory.cpp @@ -24,7 +24,7 @@ ThreadedAssignment* AssignmentFactory::unpackAssignment(ReceivedMessage& message) { quint8 packedType; - if (message.readPrimitive(&packedType) != sizeof(packedType)) { + if (message.peekPrimitive(&packedType) != sizeof(packedType)) { return nullptr; } From 960440e802f0f07165e93dd5c3bf28a23ca60093 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 8 Oct 2019 14:28:01 -0400 Subject: [PATCH 19/22] DEV-2352: Modify Release Notes URL --- interface/src/Menu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 89fec3c812..b66bc9c1c4 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -829,7 +829,7 @@ Menu::Menu() { // Help > Release Notes action = addActionToQMenuAndActionHash(helpMenu, "Release Notes"); connect(action, &QAction::triggered, qApp, [] { - QDesktopServices::openUrl(QUrl("http://steamcommunity.com/games/390540/announcements/")); + QDesktopServices::openUrl(QUrl("https://docs.highfidelity.com/release-notes.html")); }); // Help > Report a Bug! From 9feab869ad56b892426110c48d966d84f1a16d7f Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 8 Oct 2019 14:48:19 -0400 Subject: [PATCH 20/22] DEV-2350: Prevent duplicate default scripts from running --- scripts/defaultScripts.js | 53 ++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 6f0dd40493..7f78d2477f 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -71,23 +71,63 @@ if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_I } function loadSeparateDefaults() { + var currentlyRunningScripts = ScriptDiscoveryService.getRunning(); + for (var i in DEFAULT_SCRIPTS_SEPARATE) { - Script.load(DEFAULT_SCRIPTS_SEPARATE[i]); + var shouldLoadCurrentDefaultScript = true; + + for (var j = 0; j < currentlyRunningScripts.length; j++) { + var currentRunningScriptObject = currentlyRunningScripts[j]; + var currentDefaultScriptName = DEFAULT_SCRIPTS_SEPARATE[i].substr((DEFAULT_SCRIPTS_SEPARATE[i].lastIndexOf("/") + 1), DEFAULT_SCRIPTS_SEPARATE[i].length); + if (currentDefaultScriptName === currentRunningScriptObject.name) { + shouldLoadCurrentDefaultScript = false; + } + } + + if (shouldLoadCurrentDefaultScript) { + Script.load(DEFAULT_SCRIPTS_SEPARATE[i]); + } } } function runDefaultsTogether() { - for (var i in DEFAULT_SCRIPTS_COMBINED) { - Script.include(DEFAULT_SCRIPTS_COMBINED[i]); + var currentlyRunningScripts = ScriptDiscoveryService.getRunning(); + + for (var i = 0; i < DEFAULT_SCRIPTS_COMBINED.length; i++) { + var shouldIncludeCurrentDefaultScript = true; + + for (var j = 0; j < currentlyRunningScripts.length; j++) { + var currentRunningScriptObject = currentlyRunningScripts[j]; + var currentDefaultScriptName = DEFAULT_SCRIPTS_COMBINED[i].substr((DEFAULT_SCRIPTS_COMBINED[i].lastIndexOf("/") + 1), DEFAULT_SCRIPTS_COMBINED[i].length); + if (currentDefaultScriptName === currentRunningScriptObject.name) { + shouldIncludeCurrentDefaultScript = false; + } + } + + if (shouldIncludeCurrentDefaultScript) { + Script.include(DEFAULT_SCRIPTS_COMBINED[i]); + } } - loadSeparateDefaults(); } function runDefaultsSeparately() { + var currentlyRunningScripts = ScriptDiscoveryService.getRunning(); + for (var i in DEFAULT_SCRIPTS_COMBINED) { - Script.load(DEFAULT_SCRIPTS_COMBINED[i]); + var shouldLoadCurrentDefaultScript = true; + + for (var j = 0; j < currentlyRunningScripts.length; j++) { + var currentRunningScriptObject = currentlyRunningScripts[j]; + var currentDefaultScriptName = DEFAULT_SCRIPTS_COMBINED[i].substr((DEFAULT_SCRIPTS_COMBINED[i].lastIndexOf("/") + 1), DEFAULT_SCRIPTS_COMBINED[i].length); + if (currentDefaultScriptName === currentRunningScriptObject.name) { + shouldLoadCurrentDefaultScript = false; + } + } + + if (shouldLoadCurrentDefaultScript) { + Script.load(DEFAULT_SCRIPTS_COMBINED[i]); + } } - loadSeparateDefaults(); } // start all scripts @@ -99,6 +139,7 @@ if (Menu.isOptionChecked(MENU_ITEM)) { // include all default scripts into this ScriptEngine runDefaultsTogether(); } +loadSeparateDefaults(); function menuItemEvent(menuItem) { if (menuItem === MENU_ITEM) { From 092424569d04c72f0092b8398e67ac1801934cf3 Mon Sep 17 00:00:00 2001 From: RebeccaStankus Date: Tue, 8 Oct 2019 11:55:14 -0700 Subject: [PATCH 21/22] Added flag to ensure mouse event signals are not connected twice --- .../src/EntityTreeRenderer.cpp | 82 ++++++++++--------- .../controllers/controllerDispatcher.js | 4 + 2 files changed, 48 insertions(+), 38 deletions(-) diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 52738bb6cd..94a5ca76f7 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -157,6 +157,7 @@ render::ItemID EntityTreeRenderer::renderableIdForEntityId(const EntityItemID& i } int EntityTreeRenderer::_entitiesScriptEngineCount = 0; +bool _signalsConnected = false; void EntityTreeRenderer::resetEntitiesScriptEngine() { _entitiesScriptEngine = scriptEngineFactory(ScriptEngine::ENTITY_CLIENT_SCRIPT, NO_SCRIPT, @@ -168,47 +169,52 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() { entityScriptingInterface->setEntitiesScriptEngine(entitiesScriptEngineProvider); // Connect mouse events to entity script callbacks - connect(entityScriptingInterface.data(), &EntityScriptingInterface::mousePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "mousePressOnEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseDoublePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseDoublePressOnEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseMoveOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseMoveOnEntity", event); - // FIXME: this is a duplicate of mouseMoveOnEntity, but it seems like some scripts might use this naming - _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseMoveEvent", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseReleaseOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseReleaseOnEntity", event); - }); + if (!_signalsConnected) { + + connect(entityScriptingInterface.data(), &EntityScriptingInterface::mousePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "mousePressOnEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseDoublePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseDoublePressOnEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseMoveOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseMoveOnEntity", event); + // FIXME: this is a duplicate of mouseMoveOnEntity, but it seems like some scripts might use this naming + _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseMoveEvent", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::mouseReleaseOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "mouseReleaseOnEntity", event); + }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::clickDownOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "clickDownOnEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::holdingClickOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "holdingClickOnEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::clickReleaseOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "clickReleaseOnEntity", event); - }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::clickDownOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "clickDownOnEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::holdingClickOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "holdingClickOnEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::clickReleaseOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "clickReleaseOnEntity", event); + }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverEnterEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverEnterEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverOverEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverOverEntity", event); - }); - connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverLeaveEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { - _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverLeaveEntity", event); - }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverEnterEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverEnterEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverOverEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverOverEntity", event); + }); + connect(entityScriptingInterface.data(), &EntityScriptingInterface::hoverLeaveEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { + _entitiesScriptEngine->callEntityScriptMethod(entityID, "hoverLeaveEntity", event); + }); - connect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptPreloadFinished, [&](const EntityItemID& entityID) { - EntityItemPointer entity = getTree()->findEntityByID(entityID); - if (entity) { - entity->setScriptHasFinishedPreload(true); - } - }); + connect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptPreloadFinished, [&](const EntityItemID& entityID) { + EntityItemPointer entity = getTree()->findEntityByID(entityID); + if (entity) { + entity->setScriptHasFinishedPreload(true); + } + }); + + _signalsConnected = true; + } } void EntityTreeRenderer::stopDomainAndNonOwnedEntities() { diff --git a/scripts/system/controllers/controllerDispatcher.js b/scripts/system/controllers/controllerDispatcher.js index cf365a4119..f0d3ec0c03 100644 --- a/scripts/system/controllers/controllerDispatcher.js +++ b/scripts/system/controllers/controllerDispatcher.js @@ -595,6 +595,10 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); Controller.disableMapping(MAPPING_NAME); _this.pointerManager.removePointers(); Pointers.removePointer(this.mouseRayPointer); + Overlays.mouseReleaseOnOverlay.disconnect(mouseReleaseOnOverlay); + Overlays.mousePressOnOverlay.disconnect(mousePress); + Entities.mousePressOnEntity.disconnect(mousePress); + Messages.messageReceived.disconnect(controllerDispatcher.handleMessage); }; } From 458d3bfb4864f8c7657173f51b78e8288fb02237 Mon Sep 17 00:00:00 2001 From: RebeccaStankus Date: Tue, 8 Oct 2019 13:15:27 -0700 Subject: [PATCH 22/22] Renamed variable and made it private --- libraries/entities-renderer/src/EntityTreeRenderer.cpp | 5 ++--- libraries/entities-renderer/src/EntityTreeRenderer.h | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 94a5ca76f7..ab3f4c5243 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -157,7 +157,6 @@ render::ItemID EntityTreeRenderer::renderableIdForEntityId(const EntityItemID& i } int EntityTreeRenderer::_entitiesScriptEngineCount = 0; -bool _signalsConnected = false; void EntityTreeRenderer::resetEntitiesScriptEngine() { _entitiesScriptEngine = scriptEngineFactory(ScriptEngine::ENTITY_CLIENT_SCRIPT, NO_SCRIPT, @@ -169,7 +168,7 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() { entityScriptingInterface->setEntitiesScriptEngine(entitiesScriptEngineProvider); // Connect mouse events to entity script callbacks - if (!_signalsConnected) { + if (!_mouseAndPreloadSignalHandlersConnected) { connect(entityScriptingInterface.data(), &EntityScriptingInterface::mousePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) { _entitiesScriptEngine->callEntityScriptMethod(entityID, "mousePressOnEntity", event); @@ -213,7 +212,7 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() { } }); - _signalsConnected = true; + _mouseAndPreloadSignalHandlersConnected = true; } } diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.h b/libraries/entities-renderer/src/EntityTreeRenderer.h index b9fda690dd..6dbaedc123 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.h +++ b/libraries/entities-renderer/src/EntityTreeRenderer.h @@ -210,6 +210,8 @@ private: std::function _getPrevRayPickResultOperator; std::function _setPrecisionPickingOperator; + bool _mouseAndPreloadSignalHandlersConnected { false }; + class LayeredZone { public: LayeredZone(std::shared_ptr zone) : zone(zone), id(zone->getID()), volume(zone->getVolumeEstimate()) {}