History

Merge remote-tracking branch 'hifi/master' into merge-hifi-master

# Conflicts: # CMakeLists.txt # README.md # cmake/externals/glad32es/CMakeLists.txt # cmake/externals/glad41/CMakeLists.txt # cmake/externals/glad45/CMakeLists.txt # cmake/externals/polyvox/CMakeLists.txt # cmake/externals/quazip/CMakeLists.txt # cmake/externals/vhacd/CMakeLists.txt # cmake/init.cmake # cmake/ports/hifi-deps/CONTROL # cmake/ports/sdl2/CONTROL # cmake/ports/sdl2/disable-hidapi-for-uwp.patch # cmake/ports/sdl2/enable-winrt-cmake.patch # cmake/ports/sdl2/fix-arm64-headers.patch # cmake/ports/sdl2/fix-x86-windows.patch # cmake/ports/sdl2/portfile.cmake # cmake/ports/sdl2/vcpkg-cmake-wrapper.cmake # cmake/ports/tbb/portfile.cmake # hifi_vcpkg.py # interface/src/avatar/MyAvatar.h # libraries/avatars-renderer/src/avatars-renderer/Avatar.h # libraries/avatars/src/AvatarData.h # libraries/entities-renderer/src/RenderableEntityItem.h # libraries/entities/src/EntityItem.cpp # libraries/entities/src/EntityItem.h # libraries/fbx/src/GLTFSerializer.cpp # libraries/graphics-scripting/src/graphics-scripting/Forward.h # libraries/networking/src/AddressManager.cpp # libraries/networking/src/DomainHandler.h # libraries/procedural/src/procedural/ProceduralMaterialCache.cpp # libraries/render-utils/src/HighlightEffect.cpp # libraries/render-utils/src/MeshPartPayload.cpp # libraries/render-utils/src/Model.cpp # libraries/render-utils/src/RenderShadowTask.cpp # libraries/script-engine/src/WebSocketClass.cpp

David Rowe committed 6 years ago

Commit ffeb37e2 parents e3d4856 c6cde9f403 files · +26813 −7254Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 403 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+53−16
@@ -736,6 +736,13 @@ void ScriptEngine::init() { · 735 unmodified lines
736736 QScriptValue webSocketConstructorValue = newFunction(WebSocketClass::constructor);
737737 globalObject().setProperty("WebSocket", webSocketConstructorValue);
738738
739+ /**jsdoc
740+ * Prints a message to the program log and emits {@link Script.printedMessage}.
741+ * The message logged is the message values separated by spaces.
742+ * <p>Alternatively, you can use {@link Script.print} or one of the {@link console} API methods.</p>
743+ * @function print
744+ * @param {...*} [message] - The message values to print.
745+ */
739746 globalObject().setProperty("print", newFunction(debugPrint));
740747
741748 QScriptValue audioEffectOptionsConstructorValue = newFunction(AudioEffectOptions::constructor);
@@ -1012,6 +1019,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 270 unmodified lines
10121019 });
10131020
10141021 // Two common cases of event handler, differing only in argument signature.
1022+
1023+ /**jsdoc
1024+ * Called when an entity event occurs on an entity as registered with {@link Script.addEventHandler}.
1025+ * @callback Script~entityEventCallback
1026+ * @param {Uuid} entityID - The ID of the entity the event has occured on.
1027+ */
10151028 using SingleEntityHandler = std::function<void(const EntityItemID&)>;
10161029 auto makeSingleEntityHandler = [this](QString eventName) -> SingleEntityHandler {
10171030 return [this, eventName](const EntityItemID& entityItemID) {
@@ -1019,6 +1032,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 1 unmodified line
10191032 };
10201033 };
10211034
1035+ /**jsdoc
1036+ * Called when a pointer event occurs on an entity as registered with {@link Script.addEventHandler}.
1037+ * @callback Script~pointerEventCallback
1038+ * @param {Uuid} entityID - The ID of the entity the event has occurred on.
1039+ * @param {PointerEvent} pointerEvent - Details of the event.
1040+ */
10221041 using PointerHandler = std::function<void(const EntityItemID&, const PointerEvent&)>;
10231042 auto makePointerHandler = [this](QString eventName) -> PointerHandler {
10241043 return [this, eventName](const EntityItemID& entityItemID, const PointerEvent& event) {
@@ -1028,6 +1047,13 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines
10281047 };
10291048 };
10301049
1050+ /**jsdoc
1051+ * Called when a collision event occurs on an entity as registered with {@link Script.addEventHandler}.
1052+ * @callback Script~collisionEventCallback
1053+ * @param {Uuid} entityA - The ID of one entity in the collision.
1054+ * @param {Uuid} entityB - The ID of the other entity in the collision.
1055+ * @param {Collision} collisionEvent - Details of the collision.
1056+ */
10311057 using CollisionHandler = std::function<void(const EntityItemID&, const EntityItemID&, const Collision&)>;
10321058 auto makeCollisionHandler = [this](QString eventName) -> CollisionHandler {
10331059 return [this, eventName](const EntityItemID& idA, const EntityItemID& idB, const Collision& collision) {
@@ -1037,28 +1063,39 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines
10371063 };
10381064
10391065 /**jsdoc
1040− * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event via
1041− * {@link Script.addEventHandler} is called with parameters per the entity event.</p>
1066+ * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event
1067+ * via {@link Script.addEventHandler} is called with parameters per the entity event.</p>
10421068 * <table>
10431069 * <thead>
1044− * <tr><th>Event Name</th><th>Entity Event</th></tr>
1070+ * <tr><th>Event Name</th><th>Callback Type</th><th>Entity Event</th></tr>
10451071 * </thead>
10461072 * <tbody>
1047− * <tr><td><code>"enterEntity"</code></td><td>{@link Entities.enterEntity}</td></tr>
1048− * <tr><td><code>"leaveEntity"</code></td><td>{@link Entities.leaveEntity}</td></tr>
1049− * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Entities.mousePressOnEntity}</td></tr>
1050− * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Entities.mouseMoveOnEntity}</td></tr>
1051− * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Entities.mouseReleaseOnEntity}</td></tr>
1052− * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Entities.clickDownOnEntity}</td></tr>
1053− * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Entities.holdingClickOnEntity}</td></tr>
1054− * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Entities.clickReleaseOnEntity}</td></tr>
1055− * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Entities.hoverEnterEntity}</td></tr>
1056− * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Entities.hoverOverEntity}</td></tr>
1057− * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Entities.hoverLeaveEntity}</td></tr>
1058− * <tr><td><code>"collisionWithEntity"</code></td><td>{@link Entities.collisionWithEntity}</td></tr>
1073+ * <tr><td><code>"enterEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td>
1074+ * <td>{@link Entities.enterEntity}</td></tr>
1075+ * <tr><td><code>"leaveEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td>
1076+ * <td>{@link Entities.leaveEntity}</td></tr>
1077+ * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1078+ * <td>{@link Entities.mousePressOnEntity}</td></tr>
1079+ * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1080+ * <td>{@link Entities.mouseMoveOnEntity}</td></tr>
1081+ * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1082+ * <td>{@link Entities.mouseReleaseOnEntity}</td></tr>
1083+ * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1084+ * <td>{@link Entities.clickDownOnEntity}</td></tr>
1085+ * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1086+ * <td>{@link Entities.holdingClickOnEntity}</td></tr>
1087+ * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1088+ * <td>{@link Entities.clickReleaseOnEntity}</td></tr>
1089+ * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1090+ * <td>{@link Entities.hoverEnterEntity}</td></tr>
1091+ * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1092+ * <td>{@link Entities.hoverOverEntity}</td></tr>
1093+ * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1094+ * <td>{@link Entities.hoverLeaveEntity}</td></tr>
1095+ * <tr><td><code>"collisionWithEntity"</code><td>{@link Script~collisionEventCallback|collisionEventCallback}</td>
1096+ * </td><td>{@link Entities.collisionWithEntity}</td></tr>
10591097 * </tbody>
10601098 * </table>
1061− *
10621099 * @typedef {string} Script.EntityEvent
10631100 */
10641101 connect(entities.data(), &EntityScriptingInterface::enterEntity, this, makeSingleEntityHandler("enterEntity"));