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
736 QScriptValue webSocketConstructorValue = newFunction(WebSocketClass::constructor);736 QScriptValue webSocketConstructorValue = newFunction(WebSocketClass::constructor);
737 globalObject().setProperty("WebSocket", webSocketConstructorValue);737 globalObject().setProperty("WebSocket", webSocketConstructorValue);
738 738
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 */
739 globalObject().setProperty("print", newFunction(debugPrint));746 globalObject().setProperty("print", newFunction(debugPrint));
740 747
741 QScriptValue audioEffectOptionsConstructorValue = newFunction(AudioEffectOptions::constructor);748 QScriptValue audioEffectOptionsConstructorValue = newFunction(AudioEffectOptions::constructor);
@@ -1012,6 +1019,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 270 unmodified lines
1012 });1019 });
1013 1020
1014 // Two common cases of event handler, differing only in argument signature.1021 // 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 */
1015 using SingleEntityHandler = std::function<void(const EntityItemID&)>;1028 using SingleEntityHandler = std::function<void(const EntityItemID&)>;
1016 auto makeSingleEntityHandler = [this](QString eventName) -> SingleEntityHandler {1029 auto makeSingleEntityHandler = [this](QString eventName) -> SingleEntityHandler {
1017 return [this, eventName](const EntityItemID& entityItemID) {1030 return [this, eventName](const EntityItemID& entityItemID) {
@@ -1019,6 +1032,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 1 unmodified line
1019 };1032 };
1020 };1033 };
1021 1034
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 */
1022 using PointerHandler = std::function<void(const EntityItemID&, const PointerEvent&)>;1041 using PointerHandler = std::function<void(const EntityItemID&, const PointerEvent&)>;
1023 auto makePointerHandler = [this](QString eventName) -> PointerHandler {1042 auto makePointerHandler = [this](QString eventName) -> PointerHandler {
1024 return [this, eventName](const EntityItemID& entityItemID, const PointerEvent& event) {1043 return [this, eventName](const EntityItemID& entityItemID, const PointerEvent& event) {
@@ -1028,6 +1047,13 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines
1028 };1047 };
1029 };1048 };
1030 1049
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 */
1031 using CollisionHandler = std::function<void(const EntityItemID&, const EntityItemID&, const Collision&)>;1057 using CollisionHandler = std::function<void(const EntityItemID&, const EntityItemID&, const Collision&)>;
1032 auto makeCollisionHandler = [this](QString eventName) -> CollisionHandler {1058 auto makeCollisionHandler = [this](QString eventName) -> CollisionHandler {
1033 return [this, eventName](const EntityItemID& idA, const EntityItemID& idB, const Collision& collision) {1059 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
1037 };1063 };
1038 1064
1039 /**jsdoc1065 /**jsdoc
1040 * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event via 1066 * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event
1041 * {@link Script.addEventHandler} is called with parameters per the entity event.</p>1067 * via {@link Script.addEventHandler} is called with parameters per the entity event.</p>
1042 * <table>1068 * <table>
1043 * <thead>1069 * <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>
1045 * </thead>1071 * </thead>
1046 * <tbody>1072 * <tbody>
1047 * <tr><td><code>"enterEntity"</code></td><td>{@link Entities.enterEntity}</td></tr>1073 * <tr><td><code>"enterEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td>
1048 * <tr><td><code>"leaveEntity"</code></td><td>{@link Entities.leaveEntity}</td></tr>1074 * <td>{@link Entities.enterEntity}</td></tr>
1049 * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Entities.mousePressOnEntity}</td></tr>1075 * <tr><td><code>"leaveEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td>
1050 * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Entities.mouseMoveOnEntity}</td></tr>1076 * <td>{@link Entities.leaveEntity}</td></tr>
1051 * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Entities.mouseReleaseOnEntity}</td></tr>1077 * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1052 * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Entities.clickDownOnEntity}</td></tr>1078 * <td>{@link Entities.mousePressOnEntity}</td></tr>
1053 * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Entities.holdingClickOnEntity}</td></tr>1079 * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1054 * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Entities.clickReleaseOnEntity}</td></tr>1080 * <td>{@link Entities.mouseMoveOnEntity}</td></tr>
1055 * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Entities.hoverEnterEntity}</td></tr>1081 * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1056 * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Entities.hoverOverEntity}</td></tr>1082 * <td>{@link Entities.mouseReleaseOnEntity}</td></tr>
1057 * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Entities.hoverLeaveEntity}</td></tr>1083 * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td>
1058 * <tr><td><code>"collisionWithEntity"</code></td><td>{@link Entities.collisionWithEntity}</td></tr>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>
1059 * </tbody>1097 * </tbody>
1060 * </table>1098 * </table>
1061 *
1062 * @typedef {string} Script.EntityEvent1099 * @typedef {string} Script.EntityEvent
1063 */1100 */
1064 connect(entities.data(), &EntityScriptingInterface::enterEntity, this, makeSingleEntityHandler("enterEntity"));1101 connect(entities.data(), &EntityScriptingInterface::enterEntity, this, makeSingleEntityHandler("enterEntity"));