diff --git a/.github/workflows/master_build.yml b/.github/workflows/master_build.yml index 0b9e8f9604e..685c5c95245 100644 --- a/.github/workflows/master_build.yml +++ b/.github/workflows/master_build.yml @@ -50,6 +50,7 @@ jobs: echo "UPLOAD_PREFIX=master" >> $GITHUB_ENV echo ::set-output name=github_sha_short::`echo $GIT_COMMIT | cut -c1-7` echo "JOB_NAME=build (${{matrix.os}}, ${{matrix.build_type}})" >> $GITHUB_ENV + echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV # Linux build variables if [[ "${{ matrix.os }}" = "ubuntu-"* ]]; then echo "PYTHON_EXEC=python3" >> $GITHUB_ENV @@ -65,6 +66,7 @@ jobs: echo "INSTALLER_EXT=dmg" >> $GITHUB_ENV echo "CMAKE_EXTRA=-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -G Xcode" >> $GITHUB_ENV echo "::set-output name=symbols_archive::${BUILD_NUMBER}-${{ matrix.build_type }}-mac-symbols.zip" + echo "APP_TARGET_NAME=Vircadia" >> $GITHUB_ENV fi # Windows build variables if [ "${{ matrix.os }}" = "windows-latest" ]; then @@ -126,7 +128,7 @@ jobs: - name: Build application working-directory: ${{runner.workspace}}/build shell: bash - run: cmake --build . --config $BUILD_TYPE --target $APP_NAME $CMAKE_BUILD_EXTRA + run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA - name: Build domain server working-directory: ${{runner.workspace}}/build shell: bash diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000000..c8cdef6d56a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vircadia-web"] + path = vircadia-web + url = ../vircadia-web.git \ No newline at end of file diff --git a/BUILD.md b/BUILD.md index 46756fa5a4d..82da773f08e 100644 --- a/BUILD.md +++ b/BUILD.md @@ -2,50 +2,50 @@ *Last Updated on March 8, 2021* -### OS Specific Build Guides +## OS Specific Build Guides * [Build Windows](BUILD_WIN.md) - complete instructions for Windows. * [Build Linux](BUILD_LINUX.md) - additional instructions for Linux. * [Build OSX](BUILD_OSX.md) - additional instructions for OS X. * [Build Android](BUILD_ANDROID.md) - additional instructions for Android. -### Dependencies -- [git](https://git-scm.com/downloads): >= 1.6 +## Dependencies +- [git](https://git-scm.com/downloads): >= 1.6 - [CMake](https://cmake.org/download/): 3.9 (or greater up to 3.18.x) - [Python](https://www.python.org/downloads/): 3.6 or higher - [Node.JS](https://nodejs.org/en/): >= 12.13.1 LTS - Used to build the Screen Sharing executable. -### CMake External Project Dependencies +## CMake External Project Dependencies These dependencies need not be installed manually. They are automatically downloaded on the platforms where they are required. -- [Bullet Physics Engine](https://github.com/bulletphysics/bullet3/releases): 2.83 -- [glm](https://glm.g-truc.net/0.9.8/index.html): 0.9.8 -- [Oculus SDK](https://developer.oculus.com/downloads/): 1.11 (Windows) / 0.5 (Mac) -- [OpenVR](https://github.com/ValveSoftware/openvr): 1.11.11 (Windows, Linux) -- [Polyvox](http://www.volumesoffun.com/): 0.2.1 -- [QuaZip](https://sourceforge.net/projects/quazip/files/quazip/): 0.7.3 -- [SDL2](https://www.libsdl.org/download-2.0.php): 2.0.3 -- [Intel Threading Building Blocks](https://www.threadingbuildingblocks.org/): 4.3 -- [vcpkg](https://github.com/hifi-archive/vcpkg): -- [VHACD](https://github.com/virneo/v-hacd) -- [zlib](http://www.zlib.net/): 1.28 (Win32 only) -- [nvtt](https://github.com/hifi-archive/nvidia-texture-tools): 2.1.1 (customized) +- [Bullet Physics Engine](https://github.com/bulletphysics/bullet3/releases): 2.83 +- [glm](https://glm.g-truc.net/0.9.8/index.html): 0.9.8 +- [Oculus SDK](https://developer.oculus.com/downloads/): 1.11 (Windows) / 0.5 (Mac) +- [OpenVR](https://github.com/ValveSoftware/openvr): 1.11.11 (Windows, Linux) +- [Polyvox](http://www.volumesoffun.com/): 0.2.1 +- [QuaZip](https://sourceforge.net/projects/quazip/files/quazip/): 0.7.3 +- [SDL2](https://www.libsdl.org/download-2.0.php): 2.0.3 +- [Intel Threading Building Blocks](https://www.threadingbuildingblocks.org/): 4.3 +- [vcpkg](https://github.com/hifi-archive/vcpkg): +- [VHACD](https://github.com/virneo/v-hacd) +- [zlib](http://www.zlib.net/): 1.28 (Win32 only) +- [nvtt](https://github.com/hifi-archive/nvidia-texture-tools): 2.1.1 (customized) The above dependencies will be downloaded, built, linked and included automatically by CMake where we require them. The CMakeLists files that handle grabbing each of the following external dependencies can be found in the [cmake/externals folder](cmake/externals). The resulting downloads, source files and binaries will be placed in the `build/ext` folder in each of the subfolders for each external project. These are not placed in your normal build tree when doing an out of source build so that they do not need to be re-downloaded and re-compiled every time the CMake build folder is cleared. Should you want to force a re-download and re-compile of a specific external, you can simply remove that directory from the appropriate subfolder in `build/ext`. Should you want to force a re-download and re-compile of all externals, just remove the `build/ext` folder. -#### CMake +### CMake Vircadia uses CMake to generate build files and project files for your platform. -#### Qt +### Qt CMake will download Qt 5.15.2 using vcpkg. -To override this - i.e., use an installed Qt configuration - you need to set a QT_CMAKE_PREFIX_PATH environment variable pointing to your Qt **lib/cmake** folder. -This can either be entered directly into your shell session before you build or in your shell profile (e.g.: ~/.bash_profile, ~/.bashrc, ~/.zshrc - this depends on your shell and environment). The path it needs to be set to will depend on where and how Qt5 was installed. +To override this - i.e., use an installed Qt configuration - you need to set a QT_CMAKE_PREFIX_PATH environment variable pointing to your Qt **lib/cmake** folder. +This can either be entered directly into your shell session before you build or in your shell profile (e.g.: ~/.bash_profile, ~/.bashrc, ~/.zshrc - this depends on your shell and environment). The path it needs to be set to will depend on where and how Qt5 was installed. For example, under Linux: ```bash @@ -66,12 +66,12 @@ For example, under OSX: Note: You only need the following components checked under Qt 5.15.2 (select the "Custom Installation" option): "MSVC 2019 64-bit", "Qt WebEngine", and "Qt Script (Deprecated)". -Note: Installing the sources is optional but recommended if you have room for them (~3GB). You may also want the Qt debug +Note: Installing the sources is optional but recommended if you have room for them (~3GB). You may also want the Qt debug information files (~7GB). Note: Installing Qt Creator is optional but recommended if you will be editing QML files. -#### VCPKG +### VCPKG Vircadia uses vcpkg to download and build dependencies. You do not need to install vcpkg. @@ -92,9 +92,9 @@ set HIFI_VCPKG_BASE=/path/to/directory Where `/path/to/directory` is the path to a directory where you wish the build files to get stored. -#### Generating Build Files +### Generating Build Files -##### Possible Environment Variables +#### Possible Environment Variables ```text // The URL to post the dump to. @@ -133,7 +133,7 @@ USE_STABLE_GLOBAL_SERVICES=1 BUILD_GLOBAL_SERVICES=STABLE ``` -##### Generate Files +#### Generate Files Create a build directory in the root of your checkout and then run the CMake build from there. This will keep the rest of the directory clean. @@ -145,7 +145,7 @@ cmake .. If CMake gives you the same error message repeatedly after the build fails, try removing `CMakeCache.txt`. -##### Generating a release/debug only vcpkg build +#### Generating a release/debug only vcpkg build In order to generate a release or debug only vcpkg package, you could use the use the `VCPKG_BUILD_TYPE` define in your CMake generate command. Building a release only vcpkg can drastically decrease the total build time. @@ -157,7 +157,7 @@ For debug only vcpkg: `cmake .. -DVCPKG_BUILD_TYPE=debug` -#### Variables +### Variables Any variables that need to be set for CMake to find dependencies can be set as ENV variables in your shell profile, or passed directly to CMake with a `-D` flag appended to the `cmake ..` command. @@ -167,7 +167,7 @@ For example, to pass the QT_CMAKE_PREFIX_PATH variable (if not using the vcpkg'e cmake .. -DQT_CMAKE_PREFIX_PATH=/usr/local/qt/5.12.3/lib/cmake ``` -#### Finding Dependencies +### Finding Dependencies The following applies for dependencies we do not grab via CMake ExternalProject (OpenSSL is an example), or for dependencies you have opted not to grab as a CMake ExternalProject (via -DUSE_LOCAL_$NAME=0). The list of dependencies we grab by default as external projects can be found in [the CMake External Project Dependencies section](#cmake-external-project-dependencies). @@ -179,9 +179,9 @@ In the examples below the variable $NAME would be replaced by the name of the de * $NAME_ROOT_DIR - set this variable in your ENV * HIFI_LIB_DIR - set this variable in your ENV to your Vircadia lib folder, should contain a folder '$name' -### Optional Components +## Optional Components -#### Build Options +### Build Options The following build options can be used when running CMake @@ -192,12 +192,12 @@ The following build options can be used when running CMake * CLIENT_ONLY // Will package only the Interface * SERVER_ONLY // Will package only the Server -#### Developer Build Options +### Developer Build Options * USE_GLES * DISABLE_UI -#### Devices +### Devices You can support external input/output devices such as Leap Motion, MIDI, and more by adding each individual SDK in the visible building path. Refer to the readme file available in each device folder in [interface/external/](interface/external) for the detailed explanation of the requirements to use the device. - + diff --git a/BUILD_OSX.md b/BUILD_OSX.md index 5f34a301a1b..d9c7f0ee0ff 100644 --- a/BUILD_OSX.md +++ b/BUILD_OSX.md @@ -4,7 +4,7 @@ Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only macOS specific instructions are found in this document. -### Homebrew +## Homebrew [Homebrew](https://brew.sh/) is an excellent package manager for macOS. It makes install of some Vircadia dependencies very simple. @@ -12,14 +12,14 @@ Please read the [general build guide](BUILD.md) for information on dependencies brew install cmake openssl npm ``` -Note: cmake versions > 3.18.x have known problems building Vircadia, so alternatively you can download cmake 3.18.4 (or earlier versions) from [Github](https://github.com/Kitware/CMake/releases). +Note: cmake versions > 3.18.x have known problems building Vircadia, so alternatively you can download cmake 3.18.4 (or earlier versions) from [Github](https://github.com/Kitware/CMake/releases). -### Python 3 +## Python 3 Download an install Python 3.6.6 or higher from [here](https://www.python.org/downloads/). Execute the `Update Shell Profile.command` script that is provided with the installer. -### OSX SDK +## OSX SDK You will need version `10.12` of the OSX SDK for building, otherwise you may have crashing or other unintended issues due to the deprecation of OpenGL on OSX. You can get that SDK from [here](https://github.com/phracker/MacOSX-SDKs). You must copy it in to your Xcode SDK directory, e.g. @@ -27,14 +27,14 @@ You will need version `10.12` of the OSX SDK for building, otherwise you may hav cp -rp ~/Downloads/MacOSX10.12.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ ``` -### OpenSSL +## OpenSSL Assuming you've installed OpenSSL using the homebrew instructions above, you'll need to set OPENSSL_ROOT_DIR so CMake can find your installations. For OpenSSL installed via homebrew, set OPENSSL_ROOT_DIR via `export OPENSSL_ROOT_DIR=/usr/local/opt/openssl` or by appending `-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl` to `cmake` -### Xcode +## Xcode You can ask CMake to generate Xcode project files instead of Unix Makefiles using the `-G Xcode` parameter after CMake. You will need to select the Xcode installation in the terminal first if you have not done so already. @@ -50,14 +50,14 @@ After running CMake, you will have the make files or Xcode project file necessar If the build completes successfully, you will have built targets for all components located in the `build/${target_name}/Debug` directories. -### make +## make If you build with make rather than Xcode, you can append `-j4` for assigning more threads. The number indicates the number of threads, e.g. 4. To package the installation, you can simply run `make package` afterwards. -### FAQ +## FAQ 1. **Problem:** Running the scheme `interface.app` from Xcode causes a crash for Interface related to `libgl` - 1. **Cause:** The target `gl` generates a binary called `libgl`. A macOS `libGL.framework` item gets loaded instead by Xcode. + 1. **Cause:** The target `gl` generates a binary called `libgl`. A macOS `libGL.framework` item gets loaded instead by Xcode. 1. **Solution:** In the Xcode target settings for `libgl`, set the version to 1.0.0 diff --git a/BUILD_WIN.md b/BUILD_WIN.md index ff44fe348f2..f7e5cebc467 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -2,14 +2,14 @@ *Last Updated on 15 Apr 2021* -This is a stand-alone guide for creating your first Vircadia build for Windows 64-bit. +This is a stand-alone guide for creating your first Vircadia build for Windows 64-bit. Note: We are now using Visual Studio 2019 and Qt 5.15.2. -If you are upgrading from previous versions, do a clean uninstall of those versions before going through this guide. +If you are upgrading from previous versions, do a clean uninstall of those versions before going through this guide. **Note: The prerequisites will require about 10 GB of space on your drive. You will also need a system with at least 8GB of main memory.** -### Step 1. Visual Studio & Python 3.x +## Step 1. Visual Studio & Python 3.x If you don't have Community or Professional edition of Visual Studio 2019, download [Visual Studio Community 2019](https://visualstudio.microsoft.com/vs/). If you have Visual Studio 2017, you need to download Visual Studio 2019. @@ -17,7 +17,7 @@ When selecting components, check "Desktop development with C++". If you do not already have a Python 3.x development environment installed and want to install it with Visual Studio, check "Python Development". If you already have Visual Studio installed and need to add Python, open the "Add or remove programs" control panel and find the "Microsoft Visual Studio Installer". Select it and click "Modify". In the installer, select "Modify" again, then check "Python Development" and allow the installer to apply the changes. -#### Visual Studio 2019 +### Visual Studio 2019 On the right on the Summary toolbar, select the following components. @@ -25,11 +25,11 @@ On the right on the Summary toolbar, select the following components. * MSVC v141 - VS 2017 C++ x64/x86 build tools * MSVC v140 - VS 2015 C++ build tools (v14.00) -### Step 1a. Alternate Python +## Step 1a. Alternate Python If you do not wish to use the Python installation bundled with Visual Studio, you can download the installer from [here](https://www.python.org/downloads/). Ensure that you get version 3.6.6 or higher. -### Step 2. Python Dependencies +## Step 2. Python Dependencies In an administrator command-line that can access Python's pip you will need to run the following command: @@ -37,18 +37,18 @@ In an administrator command-line that can access Python's pip you will need to r If you do not use an administrator command-line, you will get errors. -### Step 3. Installing CMake +## Step 3. Installing CMake Download and install the latest version of CMake 3.15. * Note that earlier versions of CMake will work, but there is a specific bug related to the interaction of Visual Studio 2019 and CMake versions prior to 3.15 that will cause Visual Studio to rebuild far more than it needs to on every build Download the file named win64-x64 Installer from the [CMake Website](https://cmake.org/download/). You can access the installer on this [3.15 Version page](https://cmake.org/files/v3.15/). During installation, make sure to check "Add CMake to system PATH for all users" when prompted. -### Step 4. Node.JS and NPM +## Step 4. Node.JS and NPM Install version 10.15.0 LTS (or greater) of [Node.JS and NPM](). -### Step 5. (Optional) Install Qt +## Step 5. (Optional) Install Qt If you would like to compile Qt instead of using the precompiled package provided during CMake, you can do so now. Install version 5.12.3 of [Qt](), as well as the following packages: * Qt 5.15.2 @@ -67,7 +67,7 @@ To create this variable: * Set "Variable name" to `QT_CMAKE_PREFIX_PATH` * Set "Variable value" to `%QT_INSTALL_DIR%\5.15.2\msvc2019_64\lib\cmake`, where `%QT_INSTALL_DIR%` is the directory you specified for Qt's installation. The default is `C:\Qt`. -### Step 6. Create VCPKG environment variable +## Step 6. Create VCPKG environment variable In the next step, you will use CMake to build Vircadia. By default, the CMake process builds dependency files in Windows' `%TEMP%` directory, which is periodically cleared by the operating system. To prevent you from having to re-build the dependencies in the event that Windows clears that directory, we recommend that you create a `HIFI_VCPKG_BASE` environment variable linked to a directory somewhere on your machine. That directory will contain all dependency files until you manually remove them. To create this variable: @@ -86,19 +86,19 @@ To create this variable: * Set "Variable name" to `HIFI_VCPKG_BOOTSTRAP` * Set "Variable value" to `1` -### Step 7. Running CMake to Generate Build Files +## Step 7. Running CMake to Generate Build Files -Run Command Prompt from Start and run the following commands: -`cd "%VIRCADIA_DIR%"` -`mkdir build` -`cd build` +Run Command Prompt from Start and run the following commands: +`cd "%VIRCADIA_DIR%"` +`mkdir build` +`cd build` -#### Visual Studio 2019 +### Visual Studio 2019 Run `cmake .. -G "Visual Studio 16 2019" -A x64`. Where `%VIRCADIA_DIR%` is the directory for the Vircadia repository. -### Step 8. Making a Build +## Step 8. Making a Build Open `%VIRCADIA_DIR%\build\vircadia.sln` using Visual Studio. @@ -106,7 +106,7 @@ Change the Solution Configuration (menu ribbon under the menu bar, next to the g Run from the menu bar `Build > Build Solution`. -### Step 9. Testing Interface +## Step 9. Testing Interface Create another environment variable (see Step #3) * Set "Variable name": `_NO_DEBUG_HEAP` @@ -120,18 +120,18 @@ Now, you should have a full build of Vircadia and be able to run the Interface u Note: You can also run Interface by launching it from command line or File Explorer from `%VIRCADIA_DIR%\build\interface\Release\interface.exe` -## Troubleshooting +# Troubleshooting -For any problems after Step #7, first try this: -* Delete your locally cloned copy of the Vircadia repository -* Restart your computer -* Redownload the [repository](https://github.com/vircadia/vircadia) -* Restart directions from Step #7 +For any problems after Step #7, first try this: +* Delete your locally cloned copy of the Vircadia repository +* Restart your computer +* Redownload the [repository](https://github.com/vircadia/vircadia) +* Restart directions from Step #7 -#### CMake gives you the same error message repeatedly after the build fails +## CMake gives you the same error message repeatedly after the build fails Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. -#### CMake can't find OpenSSL +## CMake can't find OpenSSL Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. Verify that your HIFI_VCPKG_BASE environment variable is set and pointing to the correct location. Verify that the file `${HIFI_VCPKG_BASE}/installed/x64-windows/include/openssl/ssl.h` exists. diff --git a/CMakeLists.txt b/CMakeLists.txt index b303ff29383..77d04136905 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,12 +274,18 @@ add_custom_target(cmake SOURCES ${CMAKE_SRC}) GroupSources("cmake") unset(CMAKE_SRC) -file(GLOB_RECURSE JS_SRC scripts/*.js unpublishedScripts/*.js) +file(GLOB_RECURSE JS_SRC scripts/*.* unpublishedScripts/*.*) add_custom_target(js SOURCES ${JS_SRC}) GroupSources("scripts") GroupSources("unpublishedScripts") unset(JS_SRC) +file(GLOB_RECURSE WEB_APP_SRC vircadia-web/*.*) +list(FILTER WEB_APP_SRC EXCLUDE REGEX "vircadia-web/(dist|node_modules|public)/*" ) +add_custom_target(vircadia-web SOURCES ${WEB_APP_SRC}) +GroupSources("vircadia-web") +unset(WEB_APP_SRC) + set_packaging_parameters() # Locate the required Qt build on the filesystem diff --git a/README.md b/README.md index a6bbf554ec9..314777e3e22 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@

Vircadia - Codename Athena

Website | Discord | Download

+

GitHub contributors GitHub stars GitHub forks Apache 2.0 Discord

### What is this? @@ -55,9 +56,10 @@ Vircadia consists of many projects and codebases with its unifying structure's g - The Interface (Codename Athena) - You are here! - The Server (Codename Athena) - You are also here! -- The UI Framework (Codename Nyx) - Codebase coming soon. -- [The Metaverse (Codename Iamus)](https://github.com/vircadia/Iamus/) -- [The Metaverse Dashboard (Codename Iamus)](https://github.com/vircadia/project-iamus-dashboard/) +- [The Web Interface (Codename Aether)](https://github.com/vircadia/vircadia-web/) +- [The Web SDK (Codename Ananke)](https://github.com/vircadia/vircadia-web-sdk/) +- [The Metaverse Server (Codename Iamus)](https://github.com/vircadia/Iamus/) +- [The Metaverse Server Dashboard (Codename Iamus)](https://github.com/vircadia/project-iamus-dashboard/) - [The Launcher (Codename Pantheon)](https://github.com/vircadia/pantheon-launcher/) - Currently Windows only. #### Child Projects diff --git a/assignment-client/src/AgentScriptingInterface.h b/assignment-client/src/AgentScriptingInterface.h index b1a8aaff965..cd5aa5ad659 100644 --- a/assignment-client/src/AgentScriptingInterface.h +++ b/assignment-client/src/AgentScriptingInterface.h @@ -17,7 +17,7 @@ #include "Agent.h" -/**jsdoc +/*@jsdoc * The Agent API enables an assignment client to emulate an avatar. Setting isAvatar = true connects * the assignment client to the avatar and audio mixers, and enables the {@link Avatar} API to be used. * @@ -62,7 +62,7 @@ class AgentScriptingInterface : public QObject { QUuid getSessionUUID() const { return _agent->getSessionUUID(); } public slots: - /**jsdoc + /*@jsdoc * Sets whether the script should emulate an avatar. * @function Agent.setIsAvatar * @param {boolean} isAvatar - true if the script emulates an avatar, otherwise false. @@ -75,7 +75,7 @@ public slots: */ void setIsAvatar(bool isAvatar) const { _agent->setIsAvatar(isAvatar); } - /**jsdoc + /*@jsdoc * Checks whether the script is emulating an avatar. * @function Agent.isAvatar * @returns {boolean} true if the script is emulating an avatar, otherwise false. @@ -87,7 +87,7 @@ public slots: */ bool isAvatar() const { return _agent->isAvatar(); } - /**jsdoc + /*@jsdoc * Plays a sound from the position and with the orientation of the emulated avatar's head. No sound is played unless * isAvatar == true. * @function Agent.playAvatarSound diff --git a/assignment-client/src/avatars/ScriptableAvatar.h b/assignment-client/src/avatars/ScriptableAvatar.h index 3b08f763a3a..f6c721a3246 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.h +++ b/assignment-client/src/avatars/ScriptableAvatar.h @@ -18,7 +18,7 @@ #include #include -/**jsdoc +/*@jsdoc * The Avatar API is used to manipulate scriptable avatars on the domain. This API is a subset of the * {@link MyAvatar} API. To enable this API, set {@link Agent|Agent.isAvatar} to true. * @@ -110,7 +110,7 @@ class ScriptableAvatar : public AvatarData, public Dependency { ScriptableAvatar(); - /**jsdoc + /*@jsdoc * Starts playing an animation on the avatar. * @function Avatar.startAnimation * @param {string} url - The animation file's URL. Animation files need to be in glTF or FBX format but only need to @@ -130,13 +130,13 @@ class ScriptableAvatar : public AvatarData, public Dependency { bool hold = false, float firstFrame = 0.0f, float lastFrame = FLT_MAX, const QStringList& maskedJoints = QStringList()); - /**jsdoc + /*@jsdoc * Stops playing the current animation. * @function Avatar.stopAnimation */ Q_INVOKABLE void stopAnimation(); - /**jsdoc + /*@jsdoc * Gets the details of the current avatar animation that is being or was recently played. * @function Avatar.getAnimationDetails * @returns {Avatar.AnimationDetails} The current or recent avatar animation. @@ -146,30 +146,30 @@ class ScriptableAvatar : public AvatarData, public Dependency { */ Q_INVOKABLE AnimationDetails getAnimationDetails(); - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ Q_INVOKABLE virtual QStringList getJointNames() const override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ /// Returns the index of the joint with the specified name, or -1 if not found/unknown. Q_INVOKABLE virtual int getJointIndex(const QString& name) const override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL) override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ int sendAvatarDataPacket(bool sendAll = false) override; virtual QByteArray toByteArrayStateful(AvatarDataDetail dataDetail, bool dropFaceTracking = false) override; - /**jsdoc + /*@jsdoc * Gets details of all avatar entities. *

Warning: Potentially an expensive call. Do not use if possible.

* @function Avatar.getAvatarEntityData @@ -184,7 +184,7 @@ class ScriptableAvatar : public AvatarData, public Dependency { AvatarEntityMap getAvatarEntityDataInternal(bool allProperties) const; - /**jsdoc + /*@jsdoc * Sets all avatar entities from an object. *

Warning: Potentially an expensive call. Do not use if possible.

* @function Avatar.setAvatarEntityData @@ -192,20 +192,20 @@ class ScriptableAvatar : public AvatarData, public Dependency { */ Q_INVOKABLE void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ Q_INVOKABLE void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) override; public slots: - /**jsdoc + /*@jsdoc * @function Avatar.update * @param {number} deltaTime - Delta time. * @deprecated This function is deprecated and will be removed. */ void update(float deltatime); - /**jsdoc + /*@jsdoc * @function Avatar.setJointMappingsFromNetworkReply * @deprecated This function is deprecated and will be removed. */ diff --git a/assignment-client/src/entities/EntityTreeHeadlessViewer.h b/assignment-client/src/entities/EntityTreeHeadlessViewer.h index a8503510e07..a0f9930f068 100644 --- a/assignment-client/src/entities/EntityTreeHeadlessViewer.h +++ b/assignment-client/src/entities/EntityTreeHeadlessViewer.h @@ -23,7 +23,7 @@ class EntitySimulation; -/**jsdoc +/*@jsdoc * The EntityViewer API provides a headless viewer for assignment client scripts, so that they can "see" entities * in order for them to be available in the {@link Entities} API. * diff --git a/assignment-client/src/octree/OctreeHeadlessViewer.h b/assignment-client/src/octree/OctreeHeadlessViewer.h index 2debf2cb844..17173718e86 100644 --- a/assignment-client/src/octree/OctreeHeadlessViewer.h +++ b/assignment-client/src/octree/OctreeHeadlessViewer.h @@ -27,7 +27,7 @@ class OctreeHeadlessViewer : public OctreeProcessor { public slots: - /**jsdoc + /*@jsdoc * Updates the entities currently in view. * @function EntityViewer.queryOctree */ @@ -36,28 +36,28 @@ public slots: // setters for camera attributes - /**jsdoc + /*@jsdoc * Sets the position of the view frustum. * @function EntityViewer.setPosition * @param {Vec3} position - The position of the view frustum. */ void setPosition(const glm::vec3& position) { _hasViewFrustum = true; _viewFrustum.setPosition(position); } - /**jsdoc + /*@jsdoc * Sets the orientation of the view frustum. * @function EntityViewer.setOrientation * @param {Quat} orientation - The orientation of the view frustum. */ void setOrientation(const glm::quat& orientation) { _hasViewFrustum = true; _viewFrustum.setOrientation(orientation); } - /**jsdoc + /*@jsdoc * Sets the radius of the center "keyhole" in the view frustum. * @function EntityViewer.setCenterRadius * @param {number} radius - The radius of the center "keyhole" in the view frustum. */ void setCenterRadius(float radius) { _hasViewFrustum = true; _viewFrustum.setCenterRadius(radius); } - /**jsdoc + /*@jsdoc * Sets the radius of the center "keyhole" in the view frustum. * @function EntityViewer.setKeyholeRadius * @param {number} radius - The radius of the center "keyhole" in the view frustum. @@ -69,21 +69,21 @@ public slots: // setters for LOD and PPS - /**jsdoc + /*@jsdoc * @function EntityViewer.setVoxelSizeScale * @param {number} sizeScale - The voxel size scale. * @deprecated This function is deprecated and will be removed. */ void setVoxelSizeScale(float sizeScale) { _octreeQuery.setOctreeSizeScale(sizeScale) ; } - /**jsdoc + /*@jsdoc * @function EntityViewer.setBoundaryLevelAdjust * @param {number} boundaryLevelAdjust - The boundary level adjust factor. * @deprecated This function is deprecated and will be removed. */ void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _octreeQuery.setBoundaryLevelAdjust(boundaryLevelAdjust); } - /**jsdoc + /*@jsdoc * Sets the maximum number of entity packets to receive from the domain server per second. * @function EntityViewer.setMaxPacketsPerSecond * @param {number} maxPacketsPerSecond - The maximum number of entity packets to receive per second. @@ -92,14 +92,14 @@ public slots: // getters for camera attributes - /**jsdoc + /*@jsdoc * Gets the position of the view frustum. * @function EntityViewer.getPosition * @returns {Vec3} The position of the view frustum. */ const glm::vec3& getPosition() const { return _viewFrustum.getPosition(); } - /**jsdoc + /*@jsdoc * Gets the orientation of the view frustum. * @function EntityViewer.getOrientation * @returns {Quat} The orientation of the view frustum. @@ -109,21 +109,21 @@ public slots: // getters for LOD and PPS - /**jsdoc + /*@jsdoc * @function EntityViewer.getVoxelSizeScale * @returns {number} The voxel size scale. * @deprecated This function is deprecated and will be removed. */ float getVoxelSizeScale() const { return _octreeQuery.getOctreeSizeScale(); } - /**jsdoc + /*@jsdoc * @function EntityViewer.getBoundaryLevelAdjust * @returns {number} The boundary level adjust factor. * @deprecated This function is deprecated and will be removed. */ int getBoundaryLevelAdjust() const { return _octreeQuery.getBoundaryLevelAdjust(); } - /**jsdoc + /*@jsdoc * Gets the maximum number of entity packets to receive from the domain server per second. * @function EntityViewer.getMaxPacketsPerSecond * @returns {number} The maximum number of entity packets to receive per second. @@ -131,7 +131,7 @@ public slots: int getMaxPacketsPerSecond() const { return _octreeQuery.getMaxQueryPacketsPerSecond(); } - /**jsdoc + /*@jsdoc * Gets the number of nodes in the octree. * @function EntityViewer.getOctreeElementsCount * @returns {number} The number of nodes in the octree. diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index f0a648b7c0a..3acd17f6afc 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -661,7 +661,7 @@ bool DomainServer::isPacketVerified(const udt::Packet& packet) { // if this is a mismatching connect packet, we can't simply drop it on the floor // send back a packet to the interface that tells them we refuse connection for a mismatch - if (headerType == PacketType::DomainConnectRequest + if ((headerType == PacketType::DomainConnectRequest || headerType == PacketType::DomainConnectRequestPending) && headerVersion != versionForPacketType(PacketType::DomainConnectRequest)) { DomainGatekeeper::sendProtocolMismatchConnectionDenial(packet.getSenderSockAddr()); } @@ -807,6 +807,8 @@ void DomainServer::setupNodeListAndAssignments() { // register the gatekeeper for the packets it needs to receive packetReceiver.registerListener(PacketType::DomainConnectRequest, PacketReceiver::makeUnsourcedListenerReference(&_gatekeeper, &DomainGatekeeper::processConnectRequestPacket)); + packetReceiver.registerListener(PacketType::DomainConnectRequestPending, + PacketReceiver::makeUnsourcedListenerReference(&_gatekeeper, &DomainGatekeeper::processConnectRequestPacket)); packetReceiver.registerListener(PacketType::ICEPing, PacketReceiver::makeUnsourcedListenerReference(&_gatekeeper, &DomainGatekeeper::processICEPingPacket)); packetReceiver.registerListener(PacketType::ICEPingReply, diff --git a/interface/resources/qml/controlsUit/SpinBox.qml b/interface/resources/qml/controlsUit/SpinBox.qml index a888bbd07c8..719b0d00c11 100644 --- a/interface/resources/qml/controlsUit/SpinBox.qml +++ b/interface/resources/qml/controlsUit/SpinBox.qml @@ -73,9 +73,9 @@ SpinBox { } } - stepSize: realStepSize * factor - to : realTo*factor - from : realFrom*factor + stepSize: Math.round(realStepSize * factor) + to : Math.round(realTo*factor) + from : Math.round(realFrom*factor) font.family: "Fira Sans SemiBold" font.pixelSize: hifi.fontSizes.textFieldInput @@ -97,11 +97,11 @@ SpinBox { } textFromValue: function(value, locale) { - return parseFloat(value / factor).toFixed(decimals); + return (value / factor).toFixed(decimals); } valueFromText: function(text, locale) { - return Number.fromLocaleString(locale, text) * factor; + return Math.round(Number.fromLocaleString(locale, text) * factor); } diff --git a/interface/resources/qml/dialogs/preferences/SpinBoxPreference.qml b/interface/resources/qml/dialogs/preferences/SpinBoxPreference.qml index 1b080c2759c..5b3a28cd1dd 100644 --- a/interface/resources/qml/dialogs/preferences/SpinBoxPreference.qml +++ b/interface/resources/qml/dialogs/preferences/SpinBoxPreference.qml @@ -51,6 +51,7 @@ Preference { decimals: preference.decimals minimumValue: preference.min maximumValue: preference.max + realStepSize: preference.step width: 100 anchors { verticalCenter: parent.verticalCenter diff --git a/interface/resources/qml/dialogs/preferences/SpinnerSliderPreference.qml b/interface/resources/qml/dialogs/preferences/SpinnerSliderPreference.qml index cbc804d9d74..bf7ea08d3a9 100644 --- a/interface/resources/qml/dialogs/preferences/SpinnerSliderPreference.qml +++ b/interface/resources/qml/dialogs/preferences/SpinnerSliderPreference.qml @@ -76,6 +76,7 @@ Preference { realValue: preference.value minimumValue: preference.min maximumValue: preference.max + realStepSize: preference.step width: 100 onValueChanged: { slider.value = realValue; diff --git a/interface/src/AboutUtil.h b/interface/src/AboutUtil.h index f072ae8b4a9..0ec36918634 100644 --- a/interface/src/AboutUtil.h +++ b/interface/src/AboutUtil.h @@ -16,7 +16,7 @@ #include -/**jsdoc +/*@jsdoc * The About API provides information about the version of Interface that is currently running. It also has the * functionality to open a web page in an Interface browser window. * @@ -41,7 +41,7 @@ * print("Qt version: " + About.qtVersion); */ - /**jsdoc + /*@jsdoc * The HifiAbout API provides information about the version of Interface that is currently running. It also * has the functionality to open a web page in an Interface browser window. * @@ -82,7 +82,7 @@ class AboutUtil : public QObject { public slots: - /**jsdoc + /*@jsdoc * Display a web page in an Interface browser window or the tablet. * @function About.openUrl * @param {string} url - The URL of the web page you want to view in Interface. diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index cab82621c69..d4d204126ed 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -662,7 +662,7 @@ class ApplicationMeshProvider : public scriptable::ModelProviderFactory { } }; -/**jsdoc +/*@jsdoc *

The Controller.Hardware.Application object has properties representing Interface's state. The property * values are integer IDs, uniquely identifying each output. Read-only.

*

These states can be mapped to actions or functions or Controller.Standard items in a {@link RouteObject} diff --git a/interface/src/AvatarBookmarks.cpp b/interface/src/AvatarBookmarks.cpp index ab1bd7e24a9..8b3aef514f1 100644 --- a/interface/src/AvatarBookmarks.cpp +++ b/interface/src/AvatarBookmarks.cpp @@ -180,7 +180,7 @@ void AvatarBookmarks::updateAvatarEntities(const QVariantList &avatarEntities) { } } -/**jsdoc +/*@jsdoc * Details of an avatar bookmark. * @typedef {object} AvatarBookmarks.BookmarkData * @property {number} version - The version of the bookmark data format. diff --git a/interface/src/AvatarBookmarks.h b/interface/src/AvatarBookmarks.h index 82db23a7f7c..c2c7eb5a0ac 100644 --- a/interface/src/AvatarBookmarks.h +++ b/interface/src/AvatarBookmarks.h @@ -16,7 +16,7 @@ #include #include "Bookmarks.h" -/**jsdoc +/*@jsdoc * The AvatarBookmarks API provides facilities for working with avatar bookmarks ("favorites" in the Avatar app). * An avatar bookmark associates a name with an avatar model, scale, and avatar entities (wearables). * @@ -36,7 +36,7 @@ class AvatarBookmarks: public Bookmarks, public Dependency { AvatarBookmarks(); void setupMenus(Menu* menubar, MenuWrapper* menu) override {}; - /**jsdoc + /*@jsdoc * Gets the details of an avatar bookmark. * @function AvatarBookmarks.getBookmark * @param {string} bookmarkName - The name of the avatar bookmark (case sensitive). @@ -45,7 +45,7 @@ class AvatarBookmarks: public Bookmarks, public Dependency { Q_INVOKABLE QVariantMap getBookmark(const QString& bookmarkName); public slots: - /**jsdoc + /*@jsdoc * Adds a new (or updates an existing) avatar bookmark with your current avatar model, scale, and avatar entities. * @function AvatarBookmarks.addBookmark * @param {string} bookmarkName - The name of the avatar bookmark (case sensitive). @@ -57,7 +57,7 @@ public slots: */ void addBookmark(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Updates an existing bookmark with your current avatar model, scale, and wearables. No action is taken if the bookmark * doesn't exist. * @function AvatarBookmarks.saveBookmark @@ -65,7 +65,7 @@ public slots: */ void saveBookmark(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Loads an avatar bookmark, setting your avatar model, scale, and avatar entities (or attachments if an old bookmark) to * those in the bookmark. * @function AvatarBookmarks.loadBookmark @@ -73,14 +73,14 @@ public slots: */ void loadBookmark(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Deletes an avatar bookmark. * @function AvatarBookmarks.removeBookmark * @param {string} bookmarkName - The name of the avatar bookmark to delete (case sensitive). */ void removeBookmark(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Updates the avatar entities and their properties. Current avatar entities not included in the list provided are deleted. * @function AvatarBookmarks.updateAvatarEntities * @param {MyAvatar.AvatarEntityData[]} avatarEntities - The avatar entity IDs and properties. @@ -88,7 +88,7 @@ public slots: */ void updateAvatarEntities(const QVariantList& avatarEntities); - /**jsdoc + /*@jsdoc * Gets the details of all avatar bookmarks. * @function AvatarBookmarks.getBookmarks * @returns {Object} The current avatar bookmarks in an object where the keys are the @@ -103,7 +103,7 @@ public slots: QVariantMap getBookmarks() { return _bookmarks; } signals: - /**jsdoc + /*@jsdoc * Triggered when an avatar bookmark is loaded, setting your avatar model, scale, and avatar entities (or attachments if an * old bookmark) to those in the bookmark. * @function AvatarBookmarks.bookmarkLoaded @@ -112,7 +112,7 @@ public slots: */ void bookmarkLoaded(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Triggered when an avatar bookmark is deleted. * @function AvatarBookmarks.bookmarkDeleted * @param {string} bookmarkName - The name of the avatar bookmark deleted. @@ -124,7 +124,7 @@ public slots: */ void bookmarkDeleted(const QString& bookmarkName); - /**jsdoc + /*@jsdoc * Triggered when a new avatar bookmark is added or an existing avatar bookmark is updated, using * {@link AvatarBookmarks.addBookmark|addBookmark}. * @function AvatarBookmarks.bookmarkAdded @@ -139,7 +139,7 @@ public slots: QVariantMap getAvatarDataToBookmark(); protected slots: - /**jsdoc + /*@jsdoc * Performs no action. * @function AvatarBookmarks.deleteBookmark * @deprecated This function is deprecated and will be removed. diff --git a/interface/src/Bookmarks.h b/interface/src/Bookmarks.h index e4480b75523..f0d2a421fa6 100644 --- a/interface/src/Bookmarks.h +++ b/interface/src/Bookmarks.h @@ -51,7 +51,7 @@ class Bookmarks: public QObject { bool _isMenuSorted; protected slots: - /**jsdoc + /*@jsdoc * Prompts the user to delete a bookmark. The user can select the bookmark to delete in the dialog that is opened. * @function LocationBookmarks.deleteBookmark */ diff --git a/interface/src/FancyCamera.h b/interface/src/FancyCamera.h index afcd5197ff9..5bdf621efad 100644 --- a/interface/src/FancyCamera.h +++ b/interface/src/FancyCamera.h @@ -18,7 +18,7 @@ class FancyCamera : public Camera { Q_OBJECT - /**jsdoc + /*@jsdoc * The Camera API provides access to the "camera" that defines your view in desktop and HMD display modes. * The Vircadia camera has axes x = right, y = up, -z = forward. * @@ -51,7 +51,7 @@ class FancyCamera : public Camera { public slots: - /**jsdoc + /*@jsdoc * Gets the ID of the entity that the camera is set to follow (i.e., use the position and orientation from) when it's in * entity mode. You can also get the entity ID using the {@link Camera|Camera.cameraEntity} property. * @function Camera.getCameraEntity @@ -60,7 +60,7 @@ public slots: */ QUuid getCameraEntity() const; - /**jsdoc + /*@jsdoc * Sets the entity that the camera should follow (i.e., use the position and orientation from) when it's in entity mode. * You can also set the entity using the {@link Camera|Camera.cameraEntity} property. * @function Camera.setCameraEntity diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index e644379b01a..52a1c3ea440 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -28,7 +28,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc *

The world detail quality rendered.

* * @@ -72,7 +72,7 @@ const float LOD_OFFSET_FPS = 5.0f; // offset of FPS to add for computing the tar class AABox; -/**jsdoc +/*@jsdoc * The LODManager API manages the Level of Detail displayed in Interface. If the LOD is being automatically * adjusted, the LOD is decreased if the measured frame rate is lower than the target FPS, and increased if the measured frame * rate is greater than the target FPS. @@ -169,14 +169,14 @@ class LODManager : public QObject, public Dependency { public: - /**jsdoc + /*@jsdoc * Sets whether the LOD should be automatically adjusted. * @function LODManager.setAutomaticLODAdjust * @param {boolean} value - true to automatically adjust the LOD, false to manually adjust it. */ Q_INVOKABLE void setAutomaticLODAdjust(bool value); - /**jsdoc + /*@jsdoc * Gets whether the LOD is being automatically adjusted. * @function LODManager.getAutomaticLODAdjust * @returns {boolean} true if the LOD is being automatically adjusted, false if it is being @@ -184,14 +184,14 @@ class LODManager : public QObject, public Dependency { */ Q_INVOKABLE bool getAutomaticLODAdjust() const { return _automaticLODAdjust; } - /**jsdoc + /*@jsdoc * Sets the target desktop LOD FPS. * @function LODManager.setDesktopLODTargetFPS * @param {number} value - The target desktop LOD FPS, in Hz. */ Q_INVOKABLE void setDesktopLODTargetFPS(float value); - /**jsdoc + /*@jsdoc * Gets the target desktop LOD FPS. * @function LODManager.getDesktopLODTargetFPS * @returns {number} The target desktop LOD FPS, in Hz. @@ -199,7 +199,7 @@ class LODManager : public QObject, public Dependency { Q_INVOKABLE float getDesktopLODTargetFPS() const; - /**jsdoc + /*@jsdoc * Sets the target HMD LOD FPS. * @function LODManager.setHMDLODTargetFPS * @param {number} value - The target HMD LOD FPS, in Hz. @@ -207,7 +207,7 @@ class LODManager : public QObject, public Dependency { Q_INVOKABLE void setHMDLODTargetFPS(float value); - /**jsdoc + /*@jsdoc * Gets the target HMD LOD FPS. * The target FPS in HMD mode. The LOD is adjusted to ... * @function LODManager.getHMDLODTargetFPS @@ -218,7 +218,7 @@ class LODManager : public QObject, public Dependency { // User Tweakable LOD Items - /**jsdoc + /*@jsdoc * Gets a text description of the current level of detail rendered. * @function LODManager.getLODFeedbackText * @returns {string} A text description of the current level of detail rendered. @@ -227,35 +227,35 @@ class LODManager : public QObject, public Dependency { */ Q_INVOKABLE QString getLODFeedbackText(); - /**jsdoc + /*@jsdoc * @function LODManager.setOctreeSizeScale * @param {number} sizeScale - The octree size scale. * @deprecated This function is deprecated and will be removed. Use the lodAngleDeg property instead. */ Q_INVOKABLE void setOctreeSizeScale(float sizeScale); - /**jsdoc + /*@jsdoc * @function LODManager.getOctreeSizeScale * @returns {number} The octree size scale. * @deprecated This function is deprecated and will be removed. Use the lodAngleDeg property instead. */ Q_INVOKABLE float getOctreeSizeScale() const; - /**jsdoc + /*@jsdoc * @function LODManager.setBoundaryLevelAdjust * @param {number} boundaryLevelAdjust - The boundary level adjust factor. * @deprecated This function is deprecated and will be removed. */ Q_INVOKABLE void setBoundaryLevelAdjust(int boundaryLevelAdjust); - /**jsdoc + /*@jsdoc * @function LODManager.getBoundaryLevelAdjust * @returns {number} The boundary level adjust factor. * @deprecated This function is deprecated and will be removed. */ Q_INVOKABLE int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; } - /**jsdoc + /*@jsdoc * The target LOD FPS per the current desktop or HMD display mode, capped by the target refresh rate. * @function LODManager.getLODTargetFPS * @returns {number} The target LOD FPS, in Hz. @@ -313,7 +313,7 @@ class LODManager : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Not triggered. * @function LODManager.LODIncreased * @returns {Signal} @@ -321,7 +321,7 @@ class LODManager : public QObject, public Dependency { */ void LODIncreased(); - /**jsdoc + /*@jsdoc * Not triggered. * @function LODManager.LODDecreased * @returns {Signal} @@ -329,14 +329,14 @@ class LODManager : public QObject, public Dependency { */ void LODDecreased(); - /**jsdoc + /*@jsdoc * Triggered when whether or not the LOD is being automatically adjusted changes. * @function LODManager.autoLODChanged * @returns {Signal} */ void autoLODChanged(); - /**jsdoc + /*@jsdoc * Triggered when the lodQualityLevel property value changes. * @function LODManager.lodQualityLevelChanged * @returns {Signal} @@ -344,7 +344,7 @@ class LODManager : public QObject, public Dependency { */ void lodQualityLevelChanged(); - /**jsdoc + /*@jsdoc * Triggered when the world detail quality changes. * @function LODManager.worldDetailQualityChanged * @returns {Signal} diff --git a/interface/src/LocationBookmarks.h b/interface/src/LocationBookmarks.h index 574060fb618..2bea44f78ce 100644 --- a/interface/src/LocationBookmarks.h +++ b/interface/src/LocationBookmarks.h @@ -16,7 +16,7 @@ #include "Bookmarks.h" -/**jsdoc +/*@jsdoc * The LocationBookmarks API provides facilities for working with location bookmarks. A location bookmark * associates a name with a metaverse address. * @@ -37,7 +37,7 @@ class LocationBookmarks : public Bookmarks, public Dependency { void setupMenus(Menu* menubar, MenuWrapper* menu) override; static const QString HOME_BOOKMARK; - /**jsdoc + /*@jsdoc * Gets the metaverse address associated with a bookmark. * @function LocationBookmarks.getAddress * @param {string} bookmarkName - Name of the bookmark to get the metaverse address for (case sensitive). @@ -49,21 +49,21 @@ class LocationBookmarks : public Bookmarks, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Prompts the user to bookmark their current location. The user can specify the name of the bookmark in the dialog that is * opened. * @function LocationBookmarks.addBookmark */ void addBookmark(); - /**jsdoc + /*@jsdoc * Sets the metaverse address associated with the "Home" bookmark. * @function LocationBookmarks.setHomeLocationToAddress * @param {string} address - The metaverse address to set the "Home" bookmark to. */ void setHomeLocationToAddress(const QVariant& address); - /**jsdoc + /*@jsdoc * Gets the metaverse address associated with the "Home" bookmark. * @function LocationBookmarks.getHomeLocationAddress * @returns {string} The metaverse address for the "Home" bookmark. diff --git a/interface/src/RefreshRateManager.cpp b/interface/src/RefreshRateManager.cpp index bb4ec42e419..b61f1e944b0 100644 --- a/interface/src/RefreshRateManager.cpp +++ b/interface/src/RefreshRateManager.cpp @@ -17,7 +17,7 @@ static const int VR_TARGET_RATE = 90; -/**jsdoc +/*@jsdoc *

Refresh rate profile.

*
* @@ -36,7 +36,7 @@ static const int VR_TARGET_RATE = 90; static const std::array REFRESH_RATE_PROFILE_TO_STRING = { { "Eco", "Interactive", "Realtime" } }; -/**jsdoc +/*@jsdoc *

Interface states that affect the refresh rate.

*
* @@ -56,7 +56,7 @@ static const std::array REFRESH_RATE_REGIME_TO_STRING = { { "FocusActive", "FocusInactive", "Unfocus", "Minimized", "StartUp", "ShutDown" } }; -/**jsdoc +/*@jsdoc *

User experience (UX) modes.

*
* diff --git a/interface/src/RefreshRateManager.h b/interface/src/RefreshRateManager.h index 18fad392c94..cab7539823e 100644 --- a/interface/src/RefreshRateManager.h +++ b/interface/src/RefreshRateManager.h @@ -31,7 +31,7 @@ class RefreshRateManager { }; static bool isValidRefreshRateProfile(RefreshRateProfile value) { return (value >= RefreshRateProfile::ECO && value <= RefreshRateProfile::REALTIME); } - /**jsdoc + /*@jsdoc *

Interface states that affect the refresh rate.

*
* @@ -59,7 +59,7 @@ class RefreshRateManager { }; static bool isValidRefreshRateRegime(RefreshRateRegime value) { return (value >= RefreshRateRegime::FOCUS_ACTIVE && value <= RefreshRateRegime::SHUTDOWN); } - /**jsdoc + /*@jsdoc *

User experience (UX) modes.

*
* diff --git a/interface/src/SpeechRecognizer.h b/interface/src/SpeechRecognizer.h index ae35f63a35e..ff00069073e 100644 --- a/interface/src/SpeechRecognizer.h +++ b/interface/src/SpeechRecognizer.h @@ -22,7 +22,7 @@ #include -/**jsdoc +/*@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.

@@ -43,21 +43,21 @@ class SpeechRecognizer : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Enables or disables speech recognition. * @function SpeechRecognizer.setEnabled * @param {boolean} enabled - true to enable speech recognition, false to disable. */ void setEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Adds a voice command to the speech recognizer. * @function SpeechRecognizer.addCommand * @param {string} command - The voice command to recognize. */ void addCommand(const QString& command); - /**jsdoc + /*@jsdoc * Removes a voice command from the speech recognizer. * @function SpeechRecognizer.removeCommand * @param {string} command - The voice command to stop recognizing. @@ -66,7 +66,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when a voice command has been recognized. * @function SpeechRecognizer.commandRecognized * @param {string} command - The voice command recognized. @@ -115,7 +115,7 @@ public slots: */ void commandRecognized(const QString& command); - /**jsdoc + /*@jsdoc * Triggered when speech recognition is enabled or disabled. * @function SpeechRecognizer.enabledUpdated * @param {boolean} enabled - true if speech recognition is enabled, false if it is disabled. diff --git a/interface/src/audio/AudioScope.h b/interface/src/audio/AudioScope.h index 26b228e9008..ea60fc6eeb7 100644 --- a/interface/src/audio/AudioScope.h +++ b/interface/src/audio/AudioScope.h @@ -25,7 +25,7 @@ class AudioScope : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY - /**jsdoc + /*@jsdoc * The AudioScope API provides facilities for an audio scope. * * @namespace AudioScope @@ -60,67 +60,67 @@ class AudioScope : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Toggle. * @function AudioScope.toggle */ void toggle() { setVisible(!_isEnabled); } - /**jsdoc + /*@jsdoc * Set visible. * @function AudioScope.setVisible * @param {boolean} visible - Visible. */ void setVisible(bool visible); - /**jsdoc + /*@jsdoc * Get visible. * @function AudioScope.getVisible * @returns {boolean} Visible. */ bool getVisible() const { return _isEnabled; } - /**jsdoc + /*@jsdoc * Toggle pause. * @function AudioScope.togglePause */ void togglePause() { setPause(!_isPaused); } - /**jsdoc + /*@jsdoc * Set pause. * @function AudioScope.setPause * @param {boolean} pause - Pause. */ void setPause(bool paused) { _isPaused = paused; emit pauseChanged(); } - /**jsdoc + /*@jsdoc * Get pause. * @function AudioScope.getPause * @returns {boolean} Pause. */ bool getPause() { return _isPaused; } - /**jsdoc + /*@jsdoc * Toggle trigger. * @function AudioScope.toggleTrigger */ void toggleTrigger() { _autoTrigger = !_autoTrigger; } - /**jsdoc + /*@jsdoc * Get auto trigger. * @function AudioScope.getAutoTrigger * @returns {boolean} Auto trigger. */ bool getAutoTrigger() { return _autoTrigger; } - /**jsdoc + /*@jsdoc * Set auto trigger. * @function AudioScope.setAutoTrigger * @param {boolean} autoTrigger - Auto trigger. */ void setAutoTrigger(bool autoTrigger) { _isTriggered = false; _autoTrigger = autoTrigger; } - /**jsdoc + /*@jsdoc * Set trigger values. * @function AudioScope.setTriggerValues * @param {number} x - X. @@ -128,102 +128,102 @@ public slots: */ void setTriggerValues(int x, int y) { _triggerValues.x = x; _triggerValues.y = y; } - /**jsdoc + /*@jsdoc * Set triggered. * @function AudioScope.setTriggered * @param {boolean} triggered - Triggered. */ void setTriggered(bool triggered) { _isTriggered = triggered; } - /**jsdoc + /*@jsdoc * Get triggered. * @function AudioScope.getTriggered * @returns {boolean} Triggered. */ bool getTriggered() { return _isTriggered; } - /**jsdoc + /*@jsdoc * Get frames per second. * @function AudioScope.getFramesPerSecond * @returns {number} Frames per second. */ float getFramesPerSecond(); - /**jsdoc + /*@jsdoc * Get frames per scope. * @function AudioScope.getFramesPerScope * @returns {number} Frames per scope. */ int getFramesPerScope() { return _framesPerScope; } - /**jsdoc + /*@jsdoc * Select five frames audio scope. * @function AudioScope.selectAudioScopeFiveFrames */ void selectAudioScopeFiveFrames(); - /**jsdoc + /*@jsdoc * Select twenty frames audio scope. * @function AudioScope.selectAudioScopeTwentyFrames */ void selectAudioScopeTwentyFrames(); - /**jsdoc + /*@jsdoc * Select fifty frames audio scope. * @function AudioScope.selectAudioScopeFiftyFrames */ void selectAudioScopeFiftyFrames(); - /**jsdoc + /*@jsdoc * Get scope input. * @function AudioScope.getScopeInput * @returns {number[]} Scope input. */ QVector getScopeInput() { return _scopeInputData; }; - /**jsdoc + /*@jsdoc * Get scope left output. * @function AudioScope.getScopeOutputLeft * @returns {number[]} Scope left output. */ QVector getScopeOutputLeft() { return _scopeOutputLeftData; }; - /**jsdoc + /*@jsdoc * Get scope right output. * @function AudioScope.getScopeOutputRight * @returns {number[]} Scope right output. */ QVector getScopeOutputRight() { return _scopeOutputRightData; }; - /**jsdoc + /*@jsdoc * Get trigger input. * @function AudioScope.getTriggerInput * @returns {number[]} Trigger input. */ QVector getTriggerInput() { return _triggerInputData; }; - /**jsdoc + /*@jsdoc * Get left trigger output. * @function AudioScope.getTriggerOutputLeft * @returns {number[]} Left trigger output. */ QVector getTriggerOutputLeft() { return _triggerOutputLeftData; }; - /**jsdoc + /*@jsdoc * Get right trigger output. * @function AudioScope.getTriggerOutputRight * @returns {number[]} Right trigger output. */ QVector getTriggerOutputRight() { return _triggerOutputRightData; }; - /**jsdoc + /*@jsdoc * Set local echo. * @function AudioScope.setLocalEcho * @parm {boolean} localEcho - Local echo. */ void setLocalEcho(bool localEcho); - /**jsdoc + /*@jsdoc * Set server echo. * @function AudioScope.setServerEcho * @parm {boolean} serverEcho - Server echo. @@ -232,14 +232,14 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when pause changes. * @function AudioScope.pauseChanged * @returns {Signal} */ void pauseChanged(); - /**jsdoc + /*@jsdoc * Triggered when scope is triggered. * @function AudioScope.triggered * @returns {Signal} diff --git a/interface/src/avatar/AvatarActionFarGrab.h b/interface/src/avatar/AvatarActionFarGrab.h index c9b8f6ff3ca..36b4dc0d48a 100644 --- a/interface/src/avatar/AvatarActionFarGrab.h +++ b/interface/src/avatar/AvatarActionFarGrab.h @@ -15,7 +15,7 @@ #include #include -/**jsdoc +/*@jsdoc * The "far-grab" {@link Entities.ActionType|ActionType} moves and rotates an entity to a target position and * orientation, optionally relative to another entity. Collisions between the entity and the user's avatar are disabled during * the far-grab. diff --git a/interface/src/avatar/AvatarActionHold.cpp b/interface/src/avatar/AvatarActionHold.cpp index b7019bd6f0c..36b1020990a 100644 --- a/interface/src/avatar/AvatarActionHold.cpp +++ b/interface/src/avatar/AvatarActionHold.cpp @@ -444,7 +444,7 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "hold" {@link Entities.ActionType|ActionType} positions and rotates an entity relative to an avatar's hand. * Collisions between the entity and the user's avatar are disabled during the hold. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 7660fb34e41..915adc03677 100755 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -1009,7 +1009,7 @@ void AvatarManager::setAvatarSortCoefficient(const QString& name, const ScriptVa } } -/**jsdoc +/*@jsdoc * PAL (People Access List) data for an avatar. * @typedef {object} AvatarManager.PalData * @property {Uuid} sessionUUID - The avatar's session ID. "" if the avatar is your own. diff --git a/interface/src/avatar/AvatarManager.h b/interface/src/avatar/AvatarManager.h index fbaaad4ee60..2340e553a44 100644 --- a/interface/src/avatar/AvatarManager.h +++ b/interface/src/avatar/AvatarManager.h @@ -38,7 +38,7 @@ class ScriptValue; using SortedAvatar = std::pair>; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The AvatarManager API provides information about avatars within the current domain. The avatars available are * those that Interface has displayed and therefore knows about. * @@ -71,7 +71,7 @@ class AvatarManager : public AvatarHashMap { public: - /**jsdoc + /*@jsdoc * Gets the IDs of all avatars known about in the domain. * Your own avatar is included in the list as a null value. * @function AvatarManager.getAvatarIdentifiers @@ -82,7 +82,7 @@ class AvatarManager : public AvatarHashMap { * // A null item is included for your avatar. */ - /**jsdoc + /*@jsdoc * Gets the IDs of all avatars known about within a specified distance from a point. * Your own avatar's ID is included in the list if it is in range. * @function AvatarManager.getAvatarsInRange @@ -107,7 +107,7 @@ class AvatarManager : public AvatarHashMap { std::shared_ptr getMyAvatar() { return _myAvatar; } glm::vec3 getMyAvatarPosition() const { return _myAvatar->getWorldPosition(); } - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ // Null/Default-constructed QUuids will return MyAvatar @@ -138,7 +138,7 @@ class AvatarManager : public AvatarHashMap { void handleChangedMotionStates(const VectorOfMotionStates& motionStates); void handleCollisionEvents(const CollisionEvents& collisionEvents); - /**jsdoc + /*@jsdoc * Gets the amount of avatar mixer data being generated by an avatar other than your own. * @function AvatarManager.getAvatarDataRate * @param {Uuid} sessionID - The ID of the avatar whose data rate you're retrieving. @@ -147,7 +147,7 @@ class AvatarManager : public AvatarHashMap { */ Q_INVOKABLE float getAvatarDataRate(const QUuid& sessionID, const QString& rateName = QString("")) const; - /**jsdoc + /*@jsdoc * Gets the update rate of avatar mixer data being generated by an avatar other than your own. * @function AvatarManager.getAvatarUpdateRate * @param {Uuid} sessionID - The ID of the avatar whose update rate you're retrieving. @@ -156,7 +156,7 @@ class AvatarManager : public AvatarHashMap { */ Q_INVOKABLE float getAvatarUpdateRate(const QUuid& sessionID, const QString& rateName = QString("")) const; - /**jsdoc + /*@jsdoc * Gets the simulation rate of an avatar other than your own. * @function AvatarManager.getAvatarSimulationRate * @param {Uuid} sessionID - The ID of the avatar whose simulation you're retrieving. @@ -165,7 +165,7 @@ class AvatarManager : public AvatarHashMap { */ Q_INVOKABLE float getAvatarSimulationRate(const QUuid& sessionID, const QString& rateName = QString("")) const; - /**jsdoc + /*@jsdoc * Find the first avatar intersected by a {@link PickRay}. * @function AvatarManager.findRayIntersection * @param {PickRay} ray - The ray to use for finding avatars. @@ -191,7 +191,7 @@ class AvatarManager : public AvatarHashMap { const ScriptValuePointer& avatarIdsToInclude = ScriptValuePointer(), const ScriptValuePointer& avatarIdsToDiscard = ScriptValuePointer(), bool pickAgainstMesh = true); - /**jsdoc + /*@jsdoc * @function AvatarManager.findRayIntersectionVector * @param {PickRay} ray - Ray. * @param {Uuid[]} avatarsToInclude - Avatars to include. @@ -205,7 +205,7 @@ class AvatarManager : public AvatarHashMap { const QVector& avatarsToDiscard, bool pickAgainstMesh); - /**jsdoc + /*@jsdoc * @function AvatarManager.findParabolaIntersectionVector * @param {PickParabola} pick - Pick. * @param {Uuid[]} avatarsToInclude - Avatars to include. @@ -217,7 +217,7 @@ class AvatarManager : public AvatarHashMap { const QVector& avatarsToInclude, const QVector& avatarsToDiscard); - /**jsdoc + /*@jsdoc * @function AvatarManager.getAvatarSortCoefficient * @param {string} name - Name. * @returns {number} Value. @@ -226,7 +226,7 @@ class AvatarManager : public AvatarHashMap { // TODO: remove this HACK once we settle on optimal default sort coefficients Q_INVOKABLE float getAvatarSortCoefficient(const QString& name); - /**jsdoc + /*@jsdoc * @function AvatarManager.setAvatarSortCoefficient * @param {string} name - Name * @param {number} value - Value. @@ -234,7 +234,7 @@ class AvatarManager : public AvatarHashMap { */ Q_INVOKABLE void setAvatarSortCoefficient(const QString& name, const ScriptValuePointer& value); - /**jsdoc + /*@jsdoc * Gets PAL (People Access List) data for one or more avatars. Using this method is faster than iterating over each avatar * and obtaining data about each individually. * @function AvatarManager.getPalData @@ -257,14 +257,14 @@ class AvatarManager : public AvatarHashMap { void accumulateGrabPositions(std::map& grabAccumulators); public slots: - /**jsdoc + /*@jsdoc * @function AvatarManager.updateAvatarRenderStatus * @param {boolean} shouldRenderAvatars - Should render avatars. * @deprecated This function is deprecated and will be removed. */ void updateAvatarRenderStatus(bool shouldRenderAvatars); - /**jsdoc + /*@jsdoc * Displays other avatars skeletons debug graphics. * @function AvatarManager.setEnableDebugDrawOtherSkeletons * @param {boolean} enabled - true to show the debug graphics, false to hide. diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index d308757f339..58e4062e2f3 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2623,7 +2623,7 @@ void MyAvatar::clearWornAvatarEntities() { } } -/**jsdoc +/*@jsdoc *

Information about an avatar entity.

*
* @@ -4301,7 +4301,7 @@ void MyAvatar::clearScaleRestriction() { _haveReceivedHeightLimitsFromDomain = false; } -/**jsdoc +/*@jsdoc * A teleport target. * @typedef {object} MyAvatar.GoToProperties * @property {Vec3} position - The avatar's new position. @@ -4796,7 +4796,7 @@ void MyAvatar::setCollisionWithOtherAvatarsFlags() { _characterController.setPendingFlagsUpdateCollisionMask(); } -/**jsdoc +/*@jsdoc * A collision capsule is a cylinder with hemispherical ends. It is often used to approximate the extents of an avatar. * @typedef {object} MyAvatar.CollisionCapsule * @property {Vec3} start - The bottom end of the cylinder, excluding the bottom hemisphere. @@ -6609,7 +6609,7 @@ void MyAvatar::addAvatarHandsToFlow(const std::shared_ptr& otherAvatar) } } -/**jsdoc +/*@jsdoc * Physics options to use in the flow simulation of a joint. * @typedef {object} MyAvatar.FlowPhysicsOptions * @property {boolean} [active=true] - true to enable flow on the joint, otherwise false. @@ -6620,7 +6620,7 @@ void MyAvatar::addAvatarHandsToFlow(const std::shared_ptr& otherAvatar) * @property {number} [stiffness=0.0] - The stiffness of each thread. * @property {number} [delta=0.55] - Delta time for every integration step. */ -/**jsdoc +/*@jsdoc * Collision options to use in the flow simulation of a joint. * @typedef {object} MyAvatar.FlowCollisionsOptions * @property {string} [type="sphere"] - Currently, only "sphere" is supported. @@ -6695,7 +6695,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys } } -/**jsdoc +/*@jsdoc * Flow options currently used in flow simulation. * @typedef {object} MyAvatar.FlowData * @property {boolean} initialized - true if flow has been initialized for the current avatar, false @@ -6709,7 +6709,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys * @property {Object} threads - The threads that have been configured, with the first joint's name as the * ThreadName and value as an array of the indexes of all the joints in the thread. */ -/**jsdoc +/*@jsdoc * A set of physics options currently used in flow simulation. * @typedef {object} MyAvatar.FlowPhysicsData * @property {boolean} active - true to enable flow on the joint, otherwise false. @@ -6721,7 +6721,7 @@ void MyAvatar::useFlow(bool isActive, bool isCollidable, const QVariantMap& phys * @property {number} delta - Delta time for every integration step. * @property {number[]} jointIndices - The indexes of the joints the options are applied to. */ -/**jsdoc +/*@jsdoc * A set of collision options currently used in flow simulation. * @typedef {object} MyAvatar.FlowCollisionsData * @property {number} radius - Collision sphere radius. diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a49dea24a9f..19c40919f8f 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -44,7 +44,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; using ScriptEnginePointer = QSharedPointer; -/**jsdoc +/*@jsdoc *

Locomotion control types.

*
* @@ -91,7 +91,7 @@ class MyAvatar : public Avatar { Q_OBJECT friend class AnimStats; - /**jsdoc + /*@jsdoc * Your avatar is your in-world representation of you. The MyAvatar API is used to manipulate the avatar. * For example, you can customize the avatar's appearance, run custom avatar animations, * change the avatar's position within the domain, or manage the avatar's collisions with the environment and other avatars. @@ -438,7 +438,7 @@ class MyAvatar : public Avatar { const bool DEFAULT_STRAFE_ENABLED = true; public: - /**jsdoc + /*@jsdoc * The DriveKeys API provides constant numeric values that represent different logical keys that drive your * avatar and camera. * @@ -472,7 +472,7 @@ class MyAvatar : public Avatar { * or mirror modes. */ - /**jsdoc + /*@jsdoc *

Logical keys that drive your avatar and camera.

*
* @@ -522,7 +522,7 @@ class MyAvatar : public Avatar { }; Q_ENUM(DriveKeys) - /**jsdoc + /*@jsdoc *

Specifies different avatar leaning and recentering behaviors.

*

Deprecated: This type is deprecated and will be removed.

*
@@ -594,13 +594,13 @@ class MyAvatar : public Avatar { void setCollisionWithOtherAvatarsFlags() override; - /**jsdoc + /*@jsdoc * Resets the sensor positioning of your HMD (if in use) and recenters your avatar body and head. * @function MyAvatar.resetSensorsAndBody */ Q_INVOKABLE void resetSensorsAndBody(); - /**jsdoc + /*@jsdoc * Moves and orients the avatar, such that it is directly underneath the HMD, with toes pointed forward in the direction of * the HMD. * @function MyAvatar.centerBody @@ -608,7 +608,7 @@ class MyAvatar : public Avatar { Q_INVOKABLE void centerBody(); // thread-safe - /**jsdoc + /*@jsdoc * Clears inverse kinematics joint limit history. *

The internal inverse-kinematics system maintains a record of which joints are "locked". Sometimes it is useful to * forget this history to prevent contorted joints, e.g., after finishing with an override animation.

@@ -624,14 +624,14 @@ class MyAvatar : public Avatar { const glm::vec3& getHMDSensorPosition() const { return _hmdSensorPosition; } const glm::quat& getHMDSensorOrientation() const { return _hmdSensorOrientation; } - /**jsdoc + /*@jsdoc * Gets the avatar orientation. Suitable for use in QML. * @function MyAvatar.setOrientationVar * @param {object} newOrientationVar - The avatar's orientation. */ Q_INVOKABLE void setOrientationVar(const QVariant& newOrientationVar); - /**jsdoc + /*@jsdoc * Gets the avatar orientation. Suitable for use in QML. * @function MyAvatar.getOrientationVar * @returns {object} The avatar's orientation. @@ -659,7 +659,7 @@ class MyAvatar : public Avatar { void setRealWorldFieldOfView(float realWorldFov) { _realWorldFieldOfView.set(realWorldFov); } - /**jsdoc + /*@jsdoc * Gets the position in world coordinates of the point directly between your avatar's eyes assuming your avatar was in its * default pose. This is a reference position; it does not change as your avatar's head moves relative to the avatar * position. @@ -673,7 +673,7 @@ class MyAvatar : public Avatar { float getRealWorldFieldOfView() { return _realWorldFieldOfView.get(); } - /**jsdoc + /*@jsdoc * Overrides the default avatar animations. *

The avatar animation system includes a set of default animations along with rules for how those animations are blended * together with procedural data (such as look at vectors, hand sensors etc.). overrideAnimation() is used to @@ -703,7 +703,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void overrideAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame); - /**jsdoc + /*@jsdoc * Overrides the default hand poses that are triggered with controller buttons. * Use {@link MyAvatar.restoreHandAnimation} to restore the default poses. * @function MyAvatar.overrideHandAnimation @@ -725,7 +725,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void overrideHandAnimation(bool isLeft, const QString& url, float fps, bool loop, float firstFrame, float lastFrame); - /**jsdoc + /*@jsdoc * Restores the default animations. *

The avatar animation system includes a set of default animations along with rules for how those animations are blended * together with procedural data (such as look at vectors, hand sensors etc.). Playing your own custom animations will @@ -742,7 +742,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void restoreAnimation(); - /**jsdoc + /*@jsdoc * Restores the default hand animation state machine that is driven by the state machine in the avatar-animation JSON. *

The avatar animation system includes a set of default animations along with rules for how those animations are blended * together with procedural data (such as look at vectors, hand sensors etc.). Playing your own custom animations will @@ -759,7 +759,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void restoreHandAnimation(bool isLeft); - /**jsdoc + /*@jsdoc * Gets the current animation roles. *

Each avatar has an avatar-animation.json file that defines which animations are used and how they are blended together * with procedural data (such as look at vectors, hand sensors etc.). Each animation specified in the avatar-animation.json @@ -777,7 +777,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE QStringList getAnimationRoles(); - /**jsdoc + /*@jsdoc * Overrides a specific animation role. *

Each avatar has an avatar-animation.json file that defines a set of animation roles. Animation roles map to easily * understandable actions that the avatar can perform, such as "idleStand", "idleTalk", or @@ -817,7 +817,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void overrideRoleAnimation(const QString& role, const QString& url, float fps, bool loop, float firstFrame, float lastFrame); - /**jsdoc + /*@jsdoc * Restores a default role animation. *

Each avatar has an avatar-animation.json file that defines a set of animation roles. Animation roles map to easily * understandable actions that the avatar can perform, such as "idleStand", "idleTalk", or @@ -841,7 +841,7 @@ class MyAvatar : public Avatar { // adding one of the other handlers. While any handler may change a value in animStateDictionaryIn (or supply different values in animStateDictionaryOut) // a handler must not remove properties from animStateDictionaryIn, nor change property values that it does not intend to change. // It is not specified in what order multiple handlers are called. - /**jsdoc + /*@jsdoc * Adds an animation state handler function that is invoked just before each animation graph update. More than one * animation state handler function may be added by calling addAnimationStateHandler multiple times. It is not * specified in what order multiple handlers are called. @@ -873,7 +873,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE ScriptValuePointer addAnimationStateHandler(ScriptValuePointer handler, ScriptValuePointer propertiesList) { return _skeletonModel->getRig().addAnimationStateHandler(handler, propertiesList); } - /**jsdoc + /*@jsdoc * Removes an animation state handler function. * @function MyAvatar.removeAnimationStateHandler * @param {number} handler - The ID of the animation state handler function to remove. @@ -882,7 +882,7 @@ class MyAvatar : public Avatar { Q_INVOKABLE void removeAnimationStateHandler(ScriptValuePointer handler) { _skeletonModel->getRig().removeAnimationStateHandler(handler); } - /**jsdoc + /*@jsdoc * Gets whether you do snap turns in HMD mode. * @function MyAvatar.getSnapTurn * @returns {boolean} true if you do snap turns in HMD mode; false if you do smooth turns in HMD @@ -890,28 +890,28 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getSnapTurn() const { return _useSnapTurn; } - /**jsdoc + /*@jsdoc * Sets whether you do snap turns or smooth turns in HMD mode. * @function MyAvatar.setSnapTurn * @param {boolean} on - true to do snap turns in HMD mode; false to do smooth turns in HMD mode. */ Q_INVOKABLE void setSnapTurn(bool on) { _useSnapTurn = on; } - /**jsdoc + /*@jsdoc * Gets the control scheme that is in use. * @function MyAvatar.getControlScheme * @returns {MyAvatar.LocomotionControlsMode} The control scheme that is in use. */ Q_INVOKABLE int getControlScheme() const { return _controlSchemeIndex; } - /**jsdoc + /*@jsdoc * Sets the control scheme to use. * @function MyAvatar.setControlScheme * @param {MyAvatar.LocomotionControlsMode} controlScheme - The control scheme to use. */ Q_INVOKABLE void setControlScheme(int index) { _controlSchemeIndex = (index >= 0 && index <= 2) ? index : 0; } - /**jsdoc + /*@jsdoc * Gets whether your avatar hovers when its feet are not on the ground. * @function MyAvatar.hoverWhenUnsupported * @returns {boolean} true if your avatar hovers when its feet are not on the ground, false if it @@ -920,7 +920,7 @@ class MyAvatar : public Avatar { // FIXME: Should be named, getHoverWhenUnsupported(). Q_INVOKABLE bool hoverWhenUnsupported() const { return _hoverWhenUnsupported; } - /**jsdoc + /*@jsdoc * Sets whether your avatar hovers when its feet are not on the ground. * @function MyAvatar.setHoverWhenUnsupported * @param {boolean} hover - true if your avatar hovers when its feet are not on the ground, false @@ -928,7 +928,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setHoverWhenUnsupported(bool on) { _hoverWhenUnsupported = on; } - /**jsdoc + /*@jsdoc * Sets the avatar's dominant hand. * @function MyAvatar.setDominantHand * @param {string} hand - The dominant hand: "left" for the left hand or "right" for the right @@ -936,28 +936,28 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setDominantHand(const QString& hand); - /**jsdoc + /*@jsdoc * Gets the avatar's dominant hand. * @function MyAvatar.getDominantHand * @returns {string} "left" for the left hand, "right" for the right hand. */ Q_INVOKABLE QString getDominantHand() const; - /**jsdoc + /*@jsdoc * Sets whether strafing is enabled. * @function MyAvatar.setStrafeEnabled * @param {boolean} enabled - true if strafing is enabled, false if it isn't. */ Q_INVOKABLE void setStrafeEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets whether strafing is enabled. * @function MyAvatar.getStrafeEnabled * @returns {boolean} true if strafing is enabled, false if it isn't. */ Q_INVOKABLE bool getStrafeEnabled() const; - /**jsdoc + /*@jsdoc * Sets the HMD alignment relative to your avatar. * @function MyAvatar.setHmdAvatarAlignmentType * @param {string} type - "head" to align your head and your avatar's head, "eyes" to align your @@ -965,7 +965,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setHmdAvatarAlignmentType(const QString& type); - /**jsdoc + /*@jsdoc * Gets the HMD alignment relative to your avatar. * @function MyAvatar.getHmdAvatarAlignmentType * @returns {string} "head" if aligning your head and your avatar's head, "eyes" if aligning your @@ -973,7 +973,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE QString getHmdAvatarAlignmentType() const; - /**jsdoc + /*@jsdoc * Sets whether the avatar's hips are balanced over the feet or positioned under the head. * @function MyAvatar.setCenterOfGravityModelEnabled * @param {boolean} enabled - true to balance the hips over the feet, false to position the hips @@ -981,7 +981,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setCenterOfGravityModelEnabled(bool value) { _centerOfGravityModelEnabled = value; } - /**jsdoc + /*@jsdoc * Gets whether the avatar hips are being balanced over the feet or placed under the head. * @function MyAvatar.getCenterOfGravityModelEnabled * @returns {boolean} true if the hips are being balanced over the feet, false if the hips are @@ -989,7 +989,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getCenterOfGravityModelEnabled() const { return _centerOfGravityModelEnabled; } - /**jsdoc + /*@jsdoc * Sets whether the avatar's position updates to recenter the avatar under the head. In room-scale VR, recentering * causes your avatar to follow your HMD as you walk around the room. Disabling recentering is useful if you want to pin * the avatar to a fixed position. @@ -999,7 +999,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setHMDLeanRecenterEnabled(bool value) { _hmdLeanRecenterEnabled = value; } - /**jsdoc + /*@jsdoc * Gets whether the avatar's position updates to recenter the avatar under the head. In room-scale VR, recentering * causes your avatar to follow your HMD as you walk around the room. * @function MyAvatar.getHMDLeanRecenterEnabled @@ -1007,7 +1007,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getHMDLeanRecenterEnabled() const { return _hmdLeanRecenterEnabled; } - /**jsdoc + /*@jsdoc * Requests that the hand touch effect is disabled for your avatar. Any resulting change in the status of the hand touch * effect will be signaled by {@link MyAvatar.shouldDisableHandTouchChanged}. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that @@ -1016,7 +1016,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void requestEnableHandTouch(); - /**jsdoc + /*@jsdoc * Requests that the hand touch effect is enabled for your avatar. Any resulting change in the status of the hand touch * effect will be signaled by {@link MyAvatar.shouldDisableHandTouchChanged}. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that @@ -1025,7 +1025,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void requestDisableHandTouch(); - /**jsdoc + /*@jsdoc * Disables the hand touch effect on a specific entity. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that * it is really touching that object.

@@ -1034,7 +1034,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void disableHandTouchForID(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Enables the hand touch effect on a specific entity. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that * it is really touching that object.

@@ -1076,7 +1076,7 @@ class MyAvatar : public Avatar { void setSprintMode(bool sprint); float getDriveKey(DriveKeys key) const; - /**jsdoc + /*@jsdoc * Gets the value of a drive key, regardless of whether it is disabled. * @function MyAvatar.getRawDriveKey * @param {DriveKey} key - The drive key. @@ -1086,7 +1086,7 @@ class MyAvatar : public Avatar { void relayDriveKeysToCharacterController(); - /**jsdoc + /*@jsdoc * Disables the action associated with a drive key. * @function MyAvatar.disableDriveKey * @param {DriveKey} key - The drive key to disable. @@ -1100,7 +1100,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void disableDriveKey(DriveKeys key); - /**jsdoc + /*@jsdoc * Enables the action associated with a drive key. The action may have been disabled with * {@link MyAvatar.disableDriveKey|disableDriveKey}. * @function MyAvatar.enableDriveKey @@ -1108,7 +1108,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void enableDriveKey(DriveKeys key); - /**jsdoc + /*@jsdoc * Checks whether a drive key is disabled. * @function MyAvatar.isDriveKeyDisabled * @param {DriveKey} key - The drive key to check. @@ -1117,27 +1117,27 @@ class MyAvatar : public Avatar { Q_INVOKABLE bool isDriveKeyDisabled(DriveKeys key) const; - /**jsdoc + /*@jsdoc * Recenter the avatar in the vertical direction, if {@link MyAvatar|MyAvatar.hmdLeanRecenterEnabled} is * false. * @function MyAvatar.triggerVerticalRecenter */ Q_INVOKABLE void triggerVerticalRecenter(); - /**jsdoc + /*@jsdoc * Recenter the avatar in the horizontal direction, if {@link MyAvatar|MyAvatar.hmdLeanRecenterEnabled} is * false. * @function MyAvatar.triggerHorizontalRecenter */ Q_INVOKABLE void triggerHorizontalRecenter(); - /**jsdoc + /*@jsdoc * Recenter the avatar's rotation, if {@link MyAvatar|MyAvatar.hmdLeanRecenterEnabled} is false. * @function MyAvatar.triggerRotationRecenter */ Q_INVOKABLE void triggerRotationRecenter(); - /**jsdoc + /*@jsdoc * Gets whether the avatar is configured to keep its center of gravity under its head. * @function MyAvatar.isRecenteringHorizontally * @returns {boolean} true if the avatar is keeping its center of gravity under its head position, @@ -1149,7 +1149,7 @@ class MyAvatar : public Avatar { const MyHead* getMyHead() const; - /**jsdoc + /*@jsdoc * Gets the current position of the avatar's "Head" joint. * @function MyAvatar.getHeadPosition * @returns {Vec3} The current position of the avatar's "Head" joint. @@ -1158,28 +1158,28 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE glm::vec3 getHeadPosition() const { return getHead()->getPosition(); } - /**jsdoc + /*@jsdoc * Gets the yaw of the avatar's head relative to its body. * @function MyAvatar.getHeadFinalYaw * @returns {number} The yaw of the avatar's head, in degrees. */ Q_INVOKABLE float getHeadFinalYaw() const { return getHead()->getFinalYaw(); } - /**jsdoc + /*@jsdoc * Gets the roll of the avatar's head relative to its body. * @function MyAvatar.getHeadFinalRoll * @returns {number} The roll of the avatar's head, in degrees. */ Q_INVOKABLE float getHeadFinalRoll() const { return getHead()->getFinalRoll(); } - /**jsdoc + /*@jsdoc * Gets the pitch of the avatar's head relative to its body. * @function MyAvatar.getHeadFinalPitch * @returns {number} The pitch of the avatar's head, in degrees. */ Q_INVOKABLE float getHeadFinalPitch() const { return getHead()->getFinalPitch(); } - /**jsdoc + /*@jsdoc * If a face tracker is connected and being used, gets the estimated pitch of the user's head scaled. This is scale such * that the avatar looks at the edge of the view frustum when the user looks at the edge of their screen. * @function MyAvatar.getHeadDeltaPitch @@ -1188,7 +1188,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE float getHeadDeltaPitch() const { return getHead()->getDeltaPitch(); } - /**jsdoc + /*@jsdoc * Gets the current position of the point directly between the avatar's eyes. * @function MyAvatar.getEyePosition * @returns {Vec3} The current position of the point directly between the avatar's eyes. @@ -1198,7 +1198,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE glm::vec3 getEyePosition() const { return getHead()->getEyePosition(); } - /**jsdoc + /*@jsdoc * Gets the position of the avatar your avatar is currently looking at. * @function MyAvatar.getTargetAvatarPosition * @returns {Vec3} The position of the avatar beeing looked at. @@ -1209,7 +1209,7 @@ class MyAvatar : public Avatar { // undefined or {NaN, NaN, NaN} or similar. Q_INVOKABLE glm::vec3 getTargetAvatarPosition() const { return _targetAvatarPosition; } - /**jsdoc + /*@jsdoc * Gets information on the avatar your avatar is currently looking at. * @function MyAvatar.getTargetAvatar * @returns {ScriptAvatar} Information on the avatar being looked at, null if no avatar is being looked at. @@ -1219,7 +1219,7 @@ class MyAvatar : public Avatar { Q_INVOKABLE ScriptAvatarData* getTargetAvatar() const; - /**jsdoc + /*@jsdoc * Gets the position of the avatar's left hand, relative to the avatar, as positioned by a hand controller (e.g., Oculus * Touch or Vive). *

Note: The Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1232,7 +1232,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE glm::vec3 getLeftHandPosition() const; - /**jsdoc + /*@jsdoc * Gets the position of the avatar's right hand, relative to the avatar, as positioned by a hand controller (e.g., Oculus * Touch or Vive). *

Note: The Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1245,7 +1245,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE glm::vec3 getRightHandPosition() const; - /**jsdoc + /*@jsdoc * Gets the position 0.3m in front of the left hand's position in the direction along the palm, in avatar coordinates, as * positioned by a hand controller. * @function MyAvatar.getLeftHandTipPosition @@ -1254,7 +1254,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE glm::vec3 getLeftHandTipPosition() const; - /**jsdoc + /*@jsdoc * Gets the position 0.3m in front of the right hand's position in the direction along the palm, in avatar coordinates, as * positioned by a hand controller. * @function MyAvatar.getRightHandTipPosition @@ -1264,7 +1264,7 @@ class MyAvatar : public Avatar { Q_INVOKABLE glm::vec3 getRightHandTipPosition() const; - /**jsdoc + /*@jsdoc * Gets the pose (position, rotation, velocity, and angular velocity) of the avatar's left hand as positioned by a * hand controller (e.g., Oculus Touch or Vive). *

Note: The Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1277,7 +1277,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE controller::Pose getLeftHandPose() const; - /**jsdoc + /*@jsdoc * Gets the pose (position, rotation, velocity, and angular velocity) of the avatar's left hand as positioned by a * hand controller (e.g., Oculus Touch or Vive). *

Note: The Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1290,7 +1290,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE controller::Pose getRightHandPose() const; - /**jsdoc + /*@jsdoc * Gets the pose (position, rotation, velocity, and angular velocity) of the avatar's left hand, relative to the avatar, as * positioned by a hand controller (e.g., Oculus Touch or Vive), and translated 0.3m along the palm. *

Note: Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1302,7 +1302,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE controller::Pose getLeftHandTipPose() const; - /**jsdoc + /*@jsdoc * Gets the pose (position, rotation, velocity, and angular velocity) of the avatar's right hand, relative to the avatar, as * positioned by a hand controller (e.g., Oculus Touch or Vive), and translated 0.3m along the palm. *

Note: Leap Motion isn't part of the hand controller input system. (Instead, it manipulates the avatar's joints @@ -1332,7 +1332,7 @@ class MyAvatar : public Avatar { virtual void clearJointData(const QString& name) override; virtual void clearJointsData() override; - /**jsdoc + /*@jsdoc * Sets and locks a joint's position and orientation. *

Note: Only works on the hips joint.

* @function MyAvatar.pinJoint @@ -1345,7 +1345,7 @@ class MyAvatar : public Avatar { bool isJointPinned(int index); - /**jsdoc + /*@jsdoc * Clears a lock on a joint's position and orientation, as set by {@link MyAvatar.pinJoint|pinJoint}. *

Note: Only works on the hips joint.

* @function MyAvatar.clearPinOnJoint @@ -1354,14 +1354,14 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool clearPinOnJoint(int index); - /**jsdoc + /*@jsdoc * Gets the maximum error distance from the most recent inverse kinematics (IK) solution. * @function MyAvatar.getIKErrorOnLastSolve * @returns {number} The maximum IK error distance. */ Q_INVOKABLE float getIKErrorOnLastSolve() const; - /**jsdoc + /*@jsdoc * Changes the user's avatar and associated descriptive name. * @function MyAvatar.useFullAvatarURL * @param {string} fullAvatarURL - The URL of the avatar's .fst file. @@ -1369,7 +1369,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelName = QString()); - /**jsdoc + /*@jsdoc * Gets the complete URL for the current avatar. * @function MyAvatar.getFullAvatarURLFromPreferences * @returns {string} The full avatar model name. @@ -1378,7 +1378,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE QUrl getFullAvatarURLFromPreferences() const { return _fullAvatarURLFromPreferences; } - /**jsdoc + /*@jsdoc * Gets the full avatar model name for the current avatar. * @function MyAvatar.getFullAvatarModelName * @returns {string} The full avatar model name. @@ -1449,7 +1449,7 @@ class MyAvatar : public Avatar { bool hasDriveInput() const; - /**jsdoc + /*@jsdoc * Gets the current avatar entity IDs and their properties. * @function MyAvatar.getAvatarEntitiesVariant * @returns {MyAvatar.AvatarEntityData[]} The current avatar entity IDs and their properties. @@ -1460,14 +1460,14 @@ class MyAvatar : public Avatar { void clearWornAvatarEntities(); bool hasAvatarEntities() const; - /**jsdoc + /*@jsdoc * Checks whether your avatar is flying. * @function MyAvatar.isFlying * @returns {boolean} true if your avatar is flying and not taking off or falling, false if not. */ Q_INVOKABLE bool isFlying(); - /**jsdoc + /*@jsdoc * Checks whether your avatar is in the air. * @function MyAvatar.isInAir * @returns {boolean} true if your avatar is taking off, flying, or falling, otherwise false @@ -1475,7 +1475,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool isInAir(); - /**jsdoc + /*@jsdoc * Sets your preference for flying in your current desktop or HMD display mode. Note that your ability to fly also depends * on whether the domain you're in allows you to fly. * @function MyAvatar.setFlyingEnabled @@ -1484,7 +1484,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setFlyingEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets your preference for flying in your current desktop or HMD display mode. Note that your ability to fly also depends * on whether the domain you're in allows you to fly. * @function MyAvatar.getFlyingEnabled @@ -1493,7 +1493,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getFlyingEnabled(); - /**jsdoc + /*@jsdoc * Sets your preference for flying in desktop display mode. Note that your ability to fly also depends on whether the domain * you're in allows you to fly. * @function MyAvatar.setFlyingDesktopPref @@ -1502,7 +1502,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setFlyingDesktopPref(bool enabled); - /**jsdoc + /*@jsdoc * Gets your preference for flying in desktop display mode. Note that your ability to fly also depends on whether the domain * you're in allows you to fly. * @function MyAvatar.getFlyingDesktopPref @@ -1511,7 +1511,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getFlyingDesktopPref(); - /**jsdoc + /*@jsdoc * Sets your preference for flying in HMD display mode. Note that your ability to fly also depends on whether the domain * you're in allows you to fly. * @function MyAvatar.setFlyingHMDPref @@ -1520,7 +1520,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setFlyingHMDPref(bool enabled); - /**jsdoc + /*@jsdoc * Gets your preference for flying in HMD display mode. Note that your ability to fly also depends on whether the domain * you're in allows you to fly. * @function MyAvatar.getFlyingHMDPref @@ -1529,7 +1529,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getFlyingHMDPref(); - /**jsdoc + /*@jsdoc * Set your preference for hand-relative movement. * @function MyAvatar.setHandRelativeMovement * @param {number} enabled - Set true if you want to enable hand-relative movement, otherwise set to false. @@ -1537,7 +1537,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setMovementReference(int enabled); - /**jsdoc + /*@jsdoc * Get your preference for hand-relative movement. * @function MyAvatar.getHandRelativeMovement * @returns {number} true if your preference is for user locomotion to be relative to the direction your @@ -1545,70 +1545,70 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE int getMovementReference(); - /**jsdoc + /*@jsdoc * Set the first 'shifting point' for acceleration step function. * @function MyAvatar.setDriveGear1 * @param {number} shiftPoint - Set the first shift point for analog movement acceleration step function, between [0.0, 1.0]. Must be less than or equal to Gear 2. */ Q_INVOKABLE void setDriveGear1(float shiftPoint); - /**jsdoc + /*@jsdoc * Get the first 'shifting point' for acceleration step function. * @function MyAvatar.getDriveGear1 * @returns {number} Value between [0.0, 1.0]. */ Q_INVOKABLE float getDriveGear1(); - /**jsdoc + /*@jsdoc * Set the second 'shifting point' for acceleration step function. * @function MyAvatar.setDriveGear2 * @param {number} shiftPoint - Defines the second shift point for analog movement acceleration step function, between [0, 1]. Must be greater than or equal to Gear 1 and less than or equal to Gear 2. */ Q_INVOKABLE void setDriveGear2(float shiftPoint); - /**jsdoc + /*@jsdoc * Get the second 'shifting point' for acceleration step function. * @function MyAvatar.getDriveGear2 * @returns {number} Value between [0.0, 1.0]. */ Q_INVOKABLE float getDriveGear2(); - /**jsdoc + /*@jsdoc * Set the third 'shifting point' for acceleration step function. * @function MyAvatar.setDriveGear3 * @param {number} shiftPoint - Defines the third shift point for analog movement acceleration step function, between [0, 1]. Must be greater than or equal to Gear 2 and less than or equal to Gear 4. */ Q_INVOKABLE void setDriveGear3(float shiftPoint); - /**jsdoc + /*@jsdoc * Get the third 'shifting point' for acceleration step function. * @function MyAvatar.getDriveGear3 * @returns {number} Value between [0.0, 1.0]. */ Q_INVOKABLE float getDriveGear3(); - /**jsdoc + /*@jsdoc * Set the fourth 'shifting point' for acceleration step function. * @function MyAvatar.setDriveGear4 * @param {number} shiftPoint - Defines the fourth shift point for analog movement acceleration step function, between [0, 1]. Must be greater than Gear 3 and less than Gear 5. */ Q_INVOKABLE void setDriveGear4(float shiftPoint); - /**jsdoc + /*@jsdoc * Get the fourth 'shifting point' for acceleration step function. * @function MyAvatar.getDriveGear4 * @returns {number} Value between [0.0, 1.0]. */ Q_INVOKABLE float getDriveGear4(); - /**jsdoc + /*@jsdoc * Set the fifth 'shifting point' for acceleration step function. * @function MyAvatar.setDriveGear5 * @param {number} shiftPoint - Defines the fifth shift point for analog movement acceleration step function, between [0, 1]. Must be greater than or equal to Gear 4. */ Q_INVOKABLE void setDriveGear5(float shiftPoint); - /**jsdoc + /*@jsdoc * Get the fifth 'shifting point' for acceleration step function. * @function MyAvatar.getDriveGear5 * @returns {number} Value between [0.0, 1.0]. @@ -1619,7 +1619,7 @@ class MyAvatar : public Avatar { int getControlSchemeIndex(); - /**jsdoc + /*@jsdoc * Gets the target scale of the avatar. The target scale is the desired scale of the avatar without any restrictions on * permissible scale values imposed by the domain. * @function MyAvatar.getAvatarScale @@ -1627,7 +1627,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE float getAvatarScale() const; - /**jsdoc + /*@jsdoc * Sets the target scale of the avatar. The target scale is the desired scale of the avatar without any restrictions on * permissible scale values imposed by the domain. * @function MyAvatar.setAvatarScale @@ -1635,7 +1635,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setAvatarScale(float scale); - /**jsdoc + /*@jsdoc * Sets whether the avatar should collide with entities. *

Note: A false value won't disable collisions if the avatar is in a zone that disallows * collisionless avatars. However, the false value will be set so that collisions are disabled as soon as the @@ -1646,7 +1646,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setCollisionsEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets whether the avatar will currently collide with entities. *

Note: The avatar will always collide with entities if in a zone that disallows collisionless avatars. * @function MyAvatar.getCollisionsEnabled @@ -1654,7 +1654,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool getCollisionsEnabled(); - /**jsdoc + /*@jsdoc * Sets whether the avatar should collide with other avatars. * @function MyAvatar.setOtherAvatarsCollisionsEnabled * @param {boolean} enabled - true to enable the avatar to collide with other avatars, false @@ -1662,14 +1662,14 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setOtherAvatarsCollisionsEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets whether the avatar will collide with other avatars. * @function MyAvatar.getOtherAvatarsCollisionsEnabled * @returns {boolean} true if the avatar will collide with other avatars, false if it won't. */ Q_INVOKABLE bool getOtherAvatarsCollisionsEnabled(); - /**jsdoc + /*@jsdoc * Gets the avatar's collision capsule: a cylinder with hemispherical ends that approximates the extents or the avatar. *

Warning: The values returned are in world coordinates but aren't necessarily up to date with the * avatar's current position.

@@ -1678,7 +1678,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE QVariantMap getCollisionCapsule() const; - /**jsdoc + /*@jsdoc * @function MyAvatar.setCharacterControllerEnabled * @param {boolean} enabled - true to enable the avatar to collide with entities, false to * disable. @@ -1686,14 +1686,14 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setCharacterControllerEnabled(bool enabled); // deprecated - /**jsdoc + /*@jsdoc * @function MyAvatar.getCharacterControllerEnabled * @returns {boolean} true if the avatar will currently collide with entities, false if it won't. * @deprecated This function is deprecated and will be removed. Use {@link MyAvatar.getCollisionsEnabled} instead. */ Q_INVOKABLE bool getCharacterControllerEnabled(); // deprecated - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to the avatar. * @comment Different behavior to the Avatar version of this method. * @function MyAvatar.getAbsoluteJointRotationInObjectFrame @@ -1706,7 +1706,7 @@ class MyAvatar : public Avatar { */ virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to the avatar. * @comment Different behavior to the Avatar version of this method. * @function MyAvatar.getAbsoluteJointTranslationInObjectFrame @@ -1749,7 +1749,7 @@ class MyAvatar : public Avatar { // results are in sensor frame (-z foward) glm::mat4 deriveBodyUsingCgModel(); - /**jsdoc + /*@jsdoc * Tests whether a vector is pointing in the general direction of the avatar's "up" direction (i.e., dot product of vectors * is > 0). * @function MyAvatar.isUp @@ -1759,7 +1759,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE bool isUp(const glm::vec3& direction) { return glm::dot(direction, _worldUpDirection) > 0.0f; }; // true iff direction points up wrt avatar's definition of up. - /**jsdoc + /*@jsdoc * Tests whether a vector is pointing in the general direction of the avatar's "down" direction (i.e., dot product of * vectors is < 0). * @function MyAvatar.isDown @@ -1824,7 +1824,7 @@ class MyAvatar : public Avatar { glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } void prepareAvatarEntityDataForReload(); - /**jsdoc + /*@jsdoc * Turns the avatar's head until it faces the target point within a +90/-90 degree range. * Once this method is called, API calls have full control of the head for a limited time. * If this method is not called for 2 seconds, the engine regains control of the head. @@ -1833,20 +1833,20 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setHeadLookAt(const glm::vec3& lookAtTarget); - /**jsdoc + /*@jsdoc * Gets the current target point of the head's look direction in world coordinates. * @function MyAvatar.getHeadLookAt * @returns {Vec3} The head's look-at target in world coordinates. */ Q_INVOKABLE glm::vec3 getHeadLookAt() { return _lookAtCameraTarget; } - /**jsdoc + /*@jsdoc * Returns control of the avatar's head to the engine, and releases control from API calls. * @function MyAvatar.releaseHeadLookAtControl */ Q_INVOKABLE void releaseHeadLookAtControl(); - /**jsdoc + /*@jsdoc * Forces the avatar's eyes to look at a specified location. Once this method is called, API calls * full control of the eyes for a limited time. If this method is not called for 2 seconds, * the engine regains control of the eyes. @@ -1855,20 +1855,20 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void setEyesLookAt(const glm::vec3& lookAtTarget); - /**jsdoc + /*@jsdoc * Gets the current target point of the eyes look direction in world coordinates. * @function MyAvatar.getEyesLookAt * @returns {Vec3} The eyes' look-at target in world coordinates. */ Q_INVOKABLE glm::vec3 getEyesLookAt() { return _eyesLookAtTarget.get(); } - /**jsdoc + /*@jsdoc * Returns control of the avatar's eyes to the engine, and releases control from API calls. * @function MyAvatar.releaseEyesLookAtControl */ Q_INVOKABLE void releaseEyesLookAtControl(); - /**jsdoc + /*@jsdoc * Sets the point-at target for the "point" reaction that may be started with {@link MyAvatar.beginReaction}. * The point-at target is set only if it is in front of the avatar. *

Note: The "point" reaction should be started before calling this method.

@@ -1880,7 +1880,7 @@ class MyAvatar : public Avatar { glm::quat getLookAtRotation() { return _lookAtYaw * _lookAtPitch; } - /**jsdoc + /*@jsdoc * Creates a new grab that grabs an entity. * @function MyAvatar.grab * @param {Uuid} targetID - The ID of the entity to grab. @@ -1910,14 +1910,14 @@ class MyAvatar : public Avatar { Q_INVOKABLE const QUuid grab(const QUuid& targetID, int parentJointIndex, glm::vec3 positionalOffset, glm::quat rotationalOffset); - /**jsdoc + /*@jsdoc * Releases (deletes) a grab to stop grabbing an entity. * @function MyAvatar.releaseGrab * @param {Uuid} grabID - The ID of the grab to release. */ Q_INVOKABLE void releaseGrab(const QUuid& grabID); - /**jsdoc + /*@jsdoc * Gets details of all avatar entities. *

Warning: Potentially an expensive call. Do not use if possible.

* @function MyAvatar.getAvatarEntityData @@ -1930,14 +1930,14 @@ class MyAvatar : public Avatar { AvatarEntityMap getAvatarEntityDataNonDefault() const override; - /**jsdoc + /*@jsdoc * Sets all avatar entities from an object. * @function MyAvatar.setAvatarEntityData * @param {AvatarEntityMap} avatarEntityData - Details of the avatar entities. */ void setAvatarEntityData(const AvatarEntityMap& avatarEntityData) override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData) override; @@ -1946,14 +1946,14 @@ class MyAvatar : public Avatar { void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload) override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ int sendAvatarDataPacket(bool sendAll = false) override; void addAvatarHandsToFlow(const std::shared_ptr& otherAvatar); - /**jsdoc + /*@jsdoc * Enables and disables flow simulation of physics on the avatar's hair, clothes, and body parts. See * {@link https://docs.vircadia.dev/create/avatars/add-flow.html|Add Flow to Your Avatar} for more * information. @@ -1968,21 +1968,21 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void useFlow(bool isActive, bool isCollidable, const QVariantMap& physicsConfig = QVariantMap(), const QVariantMap& collisionsConfig = QVariantMap()); - /**jsdoc + /*@jsdoc * Gets the current flow configuration. * @function MyAvatar.getFlowData * @returns {MyAvatar.FlowData} */ Q_INVOKABLE QVariantMap getFlowData(); - /**jsdoc + /*@jsdoc * Gets the indexes of currently colliding flow joints. * @function MyAvatar.getCollidingFlowJoints * @returns {number[]} The indexes of currently colliding flow joints. */ Q_INVOKABLE QVariantList getCollidingFlowJoints(); - /**jsdoc + /*@jsdoc * Starts a sitting action for the avatar. * @function MyAvatar.beginSit * @param {Vec3} position - The position where the avatar should sit. @@ -1990,7 +1990,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void beginSit(const glm::vec3& position, const glm::quat& rotation); - /**jsdoc + /*@jsdoc * Ends a sitting action for the avatar. * @function MyAvatar.endSit * @param {Vec3} position - The position of the avatar when standing up. @@ -1998,7 +1998,7 @@ class MyAvatar : public Avatar { */ Q_INVOKABLE void endSit(const glm::vec3& position, const glm::quat& rotation); - /**jsdoc + /*@jsdoc * Gets whether the avatar is in a seated pose. The seated pose is set by calling {@link MyAvatar.beginSit}. * @function MyAvatar.isSeated * @returns {boolean} true if the avatar is in a seated pose, false if it isn't. @@ -2031,12 +2031,12 @@ class MyAvatar : public Avatar { public slots: - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ virtual void setSessionUUID(const QUuid& sessionUUID) override; - /**jsdoc + /*@jsdoc * Increases the avatar's scale by five percent, up to a minimum scale of 1000. * @function MyAvatar.increaseSize * @example @@ -2049,7 +2049,7 @@ public slots: */ void increaseSize(); - /**jsdoc + /*@jsdoc * Decreases the avatar's scale by five percent, down to a minimum scale of 0.25. * @function MyAvatar.decreaseSize * @example @@ -2062,26 +2062,26 @@ public slots: */ void decreaseSize(); - /**jsdoc + /*@jsdoc * Resets the avatar's scale back to the default scale of 1.0. * @function MyAvatar.resetSize */ void resetSize(); - /**jsdoc + /*@jsdoc * @function MyAvatar.animGraphLoaded * @deprecated This function is deprecated and will be removed. */ void animGraphLoaded(); - /**jsdoc + /*@jsdoc * Sets the amount of gravity applied to the avatar in the y-axis direction. (Negative values are downward.) * @function MyAvatar.setGravity * @param {number} gravity - The amount of gravity to be applied to the avatar, in m/s2. */ void setGravity(float gravity); - /**jsdoc + /*@jsdoc * Sets the amount of gravity applied to the avatar in the y-axis direction. (Negative values are downward.) The default * value is -5 m/s2. * @function MyAvatar.getGravity @@ -2089,7 +2089,7 @@ public slots: */ float getGravity(); - /**jsdoc + /*@jsdoc * Moves the avatar to a new position and/or orientation in the domain, with safe landing, while taking into account avatar * leg length. * @function MyAvatar.goToFeetLocation @@ -2102,7 +2102,7 @@ public slots: void goToFeetLocation(const glm::vec3& newPosition, bool hasOrientation = false, const glm::quat& newOrientation = glm::quat(), bool shouldFaceLocation = false); - /**jsdoc + /*@jsdoc * Moves the avatar to a new position and/or orientation in the domain. * @function MyAvatar.goToLocation * @param {Vec3} position - The new position for the avatar, in world coordinates. @@ -2115,21 +2115,21 @@ public slots: void goToLocation(const glm::vec3& newPosition, bool hasOrientation = false, const glm::quat& newOrientation = glm::quat(), bool shouldFaceLocation = false, bool withSafeLanding = true); - /**jsdoc + /*@jsdoc * Moves the avatar to a new position and (optional) orientation in the domain, with safe landing. * @function MyAvatar.goToLocation * @param {MyAvatar.GoToProperties} target - The goto target. */ void goToLocation(const QVariant& properties); - /**jsdoc + /*@jsdoc * Moves the avatar to a new position, with safe landing, and enables collisions. * @function MyAvatar.goToLocationAndEnableCollisions * @param {Vec3} position - The new position for the avatar, in world coordinates. */ void goToLocationAndEnableCollisions(const glm::vec3& newPosition); - /**jsdoc + /*@jsdoc * @function MyAvatar.safeLanding * @param {Vec3} position -The new position for the avatar, in world coordinates. * @returns {boolean} true if the avatar was moved, false if it wasn't. @@ -2138,21 +2138,21 @@ public slots: bool safeLanding(const glm::vec3& position); - /**jsdoc + /*@jsdoc * @function MyAvatar.restrictScaleFromDomainSettings * @param {object} domainSettings - Domain settings. * @deprecated This function is deprecated and will be removed. */ void restrictScaleFromDomainSettings(const QJsonObject& domainSettingsObject); - /**jsdoc + /*@jsdoc * @function MyAvatar.clearScaleRestriction * @deprecated This function is deprecated and will be removed. */ void clearScaleRestriction(); - /**jsdoc + /*@jsdoc * Adds a thrust to your avatar's current thrust to be applied for a short while. * @function MyAvatar.addThrust * @param {Vec3} thrust - The thrust direction and magnitude. @@ -2162,7 +2162,7 @@ public slots: // Set/Get update the thrust that will move the avatar around void addThrust(glm::vec3 newThrust) { _thrust += newThrust; }; - /**jsdoc + /*@jsdoc * Gets the thrust currently being applied to your avatar. * @function MyAvatar.getThrust * @returns {Vec3} The thrust currently being applied to your avatar. @@ -2171,7 +2171,7 @@ public slots: */ glm::vec3 getThrust() { return _thrust; }; - /**jsdoc + /*@jsdoc * Sets the thrust to be applied to your avatar for a short while. * @function MyAvatar.setThrust * @param {Vec3} thrust - The thrust direction and magnitude. @@ -2181,21 +2181,21 @@ public slots: void setThrust(glm::vec3 newThrust) { _thrust = newThrust; } - /**jsdoc + /*@jsdoc * Updates avatar motion behavior from the Developer > Avatar > Enable Default Motor Control and Enable Scripted * Motor Control menu items. * @function MyAvatar.updateMotionBehaviorFromMenu */ Q_INVOKABLE void updateMotionBehaviorFromMenu(); - /**jsdoc + /*@jsdoc * @function MyAvatar.setToggleHips * @param {boolean} enabled - Enabled. * @deprecated This function is deprecated and will be removed. */ void setToggleHips(bool followHead); - /**jsdoc + /*@jsdoc * Displays the base of support area debug graphics if in HMD mode. If your head goes outside this area your avatar's hips * are moved to counterbalance your avatar, and if your head moves too far then your avatar's position is moved (i.e., a * step happens). @@ -2204,14 +2204,14 @@ public slots: */ void setEnableDebugDrawBaseOfSupport(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays default pose debug graphics. * @function MyAvatar.setEnableDebugDrawDefaultPose * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawDefaultPose(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays animation debug graphics. By default, the animation poses used for rendering are displayed. However, * {@link MyAvatar.setDebugDrawAnimPoseName} can be used to set a specific animation node to display. * @function MyAvatar.setEnableDebugDrawAnimPose @@ -2219,7 +2219,7 @@ public slots: */ void setEnableDebugDrawAnimPose(bool isEnabled); - /**jsdoc + /*@jsdoc * Sets the animation node to display when animation debug graphics are enabled with * {@link MyAvatar.setEnableDebugDrawAnimPose}. * @function MyAvatar.setDebugDrawAnimPoseName @@ -2228,75 +2228,75 @@ public slots: */ void setDebugDrawAnimPoseName(QString poseName); - /**jsdoc + /*@jsdoc * Displays position debug graphics. * @function MyAvatar.setEnableDebugDrawPosition * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawPosition(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays controller hand target debug graphics. * @function MyAvatar.setEnableDebugDrawHandControllers * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawHandControllers(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays sensor-to-world matrix debug graphics. * @function MyAvatar.setEnableDebugDrawSensorToWorldMatrix * @param {boolean} enable - true to show the debug graphics, false to hide. */ void setEnableDebugDrawSensorToWorldMatrix(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays inverse kinematics targets debug graphics. * @function MyAvatar.setEnableDebugDrawIKTargets * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawIKTargets(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays inverse kinematics constraints debug graphics. * @function MyAvatar.setEnableDebugDrawIKConstraints * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawIKConstraints(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays inverse kinematics chains debug graphics. * @function MyAvatar.setEnableDebugDrawIKChains * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawIKChains(bool isEnabled); - /**jsdoc + /*@jsdoc * Displays detailed collision debug graphics. * @function MyAvatar.setEnableDebugDrawDetailedCollision * @param {boolean} enabled - true to show the debug graphics, false to hide. */ void setEnableDebugDrawDetailedCollision(bool isEnabled); - /**jsdoc + /*@jsdoc * Gets whether your avatar mesh is visible. * @function MyAvatar.getEnableMeshVisible * @returns {boolean} true if your avatar's mesh is visible, otherwise false. */ bool getEnableMeshVisible() const override; - /**jsdoc + /*@jsdoc * @comment Uses the base class's JSDoc. */ void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true) override; - /**jsdoc + /*@jsdoc * @function MyAvatar.sanitizeAvatarEntityProperties * @param {EntityItemProperties} properties - Properties. * @deprecated This function is deprecated and will be removed. */ void sanitizeAvatarEntityProperties(EntityItemProperties& properties) const; - /**jsdoc + /*@jsdoc * Sets whether your avatar mesh is visible to you. * @function MyAvatar.setEnableMeshVisible * @param {boolean} enabled - true to show your avatar mesh, false to hide. @@ -2308,7 +2308,7 @@ public slots: */ virtual void setEnableMeshVisible(bool isEnabled) override; - /**jsdoc + /*@jsdoc * Sets whether inverse kinematics (IK) is enabled for your avatar. * @function MyAvatar.setEnableInverseKinematics * @param {boolean} enabled - true to enable IK, false to disable. @@ -2316,7 +2316,7 @@ public slots: void setEnableInverseKinematics(bool isEnabled); - /**jsdoc + /*@jsdoc * Gets the URL of the override animation graph. *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

@@ -2326,7 +2326,7 @@ public slots: */ QUrl getAnimGraphOverrideUrl() const; // thread-safe - /**jsdoc + /*@jsdoc * Sets the animation graph to use in preference to the default animation graph. *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

@@ -2335,7 +2335,7 @@ public slots: */ void setAnimGraphOverrideUrl(QUrl value); // thread-safe - /**jsdoc + /*@jsdoc * Gets the URL of animation graph (i.e., the avatar animation JSON) that's currently being used for avatar animations. *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

@@ -2346,7 +2346,7 @@ public slots: */ QUrl getAnimGraphUrl() const; // thread-safe - /**jsdoc + /*@jsdoc * Sets the current animation graph (i.e., the avatar animation JSON) to use for avatar animations and makes it the default. *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

@@ -2355,7 +2355,7 @@ public slots: */ void setAnimGraphUrl(const QUrl& url); // thread-safe - /**jsdoc + /*@jsdoc * Gets your listening position for spatialized audio. The position depends on the value of the * {@link Myavatar|audioListenerMode} property. * @function MyAvatar.getPositionForAudio @@ -2363,7 +2363,7 @@ public slots: */ glm::vec3 getPositionForAudio(); - /**jsdoc + /*@jsdoc * Gets the orientation of your listening position for spatialized audio. The orientation depends on the value of the * {@link Myavatar|audioListenerMode} property. * @function MyAvatar.getOrientationForAudio @@ -2371,14 +2371,14 @@ public slots: */ glm::quat getOrientationForAudio(); - /**jsdoc + /*@jsdoc * @function MyAvatar.setModelScale * @param {number} scale - The scale. * @deprecated This function is deprecated and will be removed. */ virtual void setModelScale(float scale) override; - /**jsdoc + /*@jsdoc * Gets the list of reactions names that can be triggered using {@link MyAvatar.triggerReaction}. *

See also: {@link MyAvatar.getBeginEndReactions}. * @function MyAvatar.getTriggerReactions @@ -2389,7 +2389,7 @@ public slots: QStringList getTriggerReactions() const; - /**jsdoc + /*@jsdoc * Gets the list of reactions names that can be enabled using {@link MyAvatar.beginReaction} and * {@link MyAvatar.endReaction}. *

See also: {@link MyAvatar.getTriggerReactions}. @@ -2401,7 +2401,7 @@ public slots: */ QStringList getBeginEndReactions() const; - /**jsdoc + /*@jsdoc * Plays a reaction on the avatar. Once the reaction is complete it will stop playing. *

Only reaction names returned by {@link MyAvatar.getTriggerReactions} are available.

* @function MyAvatar.triggerReaction @@ -2410,7 +2410,7 @@ public slots: */ bool triggerReaction(QString reactionName); - /**jsdoc + /*@jsdoc * Starts playing a reaction on the avatar. The reaction will continue to play until stopped using * {@link MyAvatar.endReaction} or superseded by another reaction. *

Only reactions returned by {@link MyAvatar.getBeginEndReactions} are available.

@@ -2420,7 +2420,7 @@ public slots: */ bool beginReaction(QString reactionName); - /**jsdoc + /*@jsdoc * Stops playing a reaction that was started using {@link MyAvatar.beginReaction}. * @function MyAvatar.endReaction * @param {string} reactionName - The reaction to stop playing. @@ -2430,14 +2430,14 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when the {@link MyAvatar|audioListenerMode} property value changes. * @function MyAvatar.audioListenerModeChanged * @returns {Signal} */ void audioListenerModeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the walk speed set for the "AnalogPlus" control scheme changes. * @function MyAvatar.analogPlusWalkSpeedChanged * @param {number} speed - The new walk speed set for the "AnalogPlus" control scheme. @@ -2445,7 +2445,7 @@ public slots: */ void analogPlusWalkSpeedChanged(float value); - /**jsdoc + /*@jsdoc * Triggered when the sprint (run) speed set for the "AnalogPlus" control scheme changes. * @function MyAvatar.analogPlusSprintSpeedChanged * @param {number} speed - The new sprint speed set for the "AnalogPlus" control scheme. @@ -2453,7 +2453,7 @@ public slots: */ void analogPlusSprintSpeedChanged(float value); - /**jsdoc + /*@jsdoc * Triggered when the sprint (run) speed set for the current control scheme (see * {@link MyAvatar.getControlScheme|getControlScheme}) changes. * @function MyAvatar.sprintSpeedChanged @@ -2462,7 +2462,7 @@ public slots: */ void sprintSpeedChanged(float value); - /**jsdoc + /*@jsdoc * Triggered when the walk backward speed set for the current control scheme (see * {@link MyAvatar.getControlScheme|getControlScheme}) changes. * @function MyAvatar.walkBackwardSpeedChanged @@ -2471,14 +2471,14 @@ public slots: */ void walkBackwardSpeedChanged(float value); - /**jsdoc + /*@jsdoc * @function MyAvatar.transformChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ void transformChanged(); - /**jsdoc + /*@jsdoc * Triggered when the {@link MyAvatar|collisionSoundURL} property value changes. * @function MyAvatar.newCollisionSoundURL * @param {string} url - The URL of the new collision sound. @@ -2486,7 +2486,7 @@ public slots: */ void newCollisionSoundURL(const QUrl& url); - /**jsdoc + /*@jsdoc * Triggered when the avatar collides with an entity. * @function MyAvatar.collisionWithEntity * @param {Collision} collision - Details of the collision. @@ -2498,7 +2498,7 @@ public slots: */ void collisionWithEntity(const Collision& collision); - /**jsdoc + /*@jsdoc * Triggered when collisions with the environment are enabled or disabled. * @function MyAvatar.collisionsEnabledChanged * @param {boolean} enabled - true if collisions with the environment are enabled, false if @@ -2507,7 +2507,7 @@ public slots: */ void collisionsEnabledChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when collisions with other avatars are enabled or disabled. * @function MyAvatar.otherAvatarsCollisionsEnabledChanged * @param {boolean} enabled - true if collisions with other avatars are enabled, false if they're @@ -2516,7 +2516,7 @@ public slots: */ void otherAvatarsCollisionsEnabledChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when the avatar's animation graph being used changes. * @function MyAvatar.animGraphUrlChanged * @param {string} url - The URL of the new animation graph JSON file. @@ -2527,7 +2527,7 @@ public slots: * }); */ void animGraphUrlChanged(const QUrl& url); - /**jsdoc + /*@jsdoc * @function MyAvatar.energyChanged * @param {number} energy - Avatar energy. * @returns {Signal} @@ -2535,7 +2535,7 @@ public slots: */ void energyChanged(float newEnergy); - /**jsdoc + /*@jsdoc * Triggered when the avatar has been moved to a new position by one of the MyAvatar "goTo" functions. * @function MyAvatar.positionGoneTo * @returns {Signal} @@ -2543,21 +2543,21 @@ public slots: // FIXME: Better name would be goneToLocation(). void positionGoneTo(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's model finishes loading. * @function MyAvatar.onLoadComplete * @returns {Signal} */ void onLoadComplete(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's model has failed to load. * @function MyAvatar.onLoadFailed * @returns {Signal} */ void onLoadFailed(); - /**jsdoc + /*@jsdoc * Triggered when your avatar changes from being active to being away. * @function MyAvatar.wentAway * @returns {Signal} @@ -2569,14 +2569,14 @@ public slots: */ void wentAway(); - /**jsdoc + /*@jsdoc * Triggered when your avatar changes from being away to being active. * @function MyAvatar.wentActive * @returns {Signal} */ void wentActive(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's model (i.e., {@link MyAvatar|skeletonModelURL} property value) is changed. *

Synonym of {@link MyAvatar.skeletonModelURLChanged|skeletonModelURLChanged}.

* @function MyAvatar.skeletonChanged @@ -2584,7 +2584,7 @@ public slots: */ void skeletonChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's dominant hand changes. * @function MyAvatar.dominantHandChanged * @param {string} hand - The dominant hand: "left" for the left hand, "right" for the right hand. @@ -2592,7 +2592,7 @@ public slots: */ void dominantHandChanged(const QString& hand); - /**jsdoc + /*@jsdoc * Triggered when the HMD alignment for your avatar changes. * @function MyAvatar.hmdAvatarAlignmentTypeChanged * @param {string} type - "head" if aligning your head and your avatar's head, "eyes" if aligning @@ -2601,7 +2601,7 @@ public slots: */ void hmdAvatarAlignmentTypeChanged(const QString& type); - /**jsdoc + /*@jsdoc * Triggered when the avatar's sensorToWorldScale property value changes. * @function MyAvatar.sensorToWorldScaleChanged * @param {number} scale - The scale that transforms dimensions in the user's real world to the avatar's size in the virtual @@ -2610,7 +2610,7 @@ public slots: */ void sensorToWorldScaleChanged(float sensorToWorldScale); - /**jsdoc + /*@jsdoc * Triggered when the a model is attached to or detached from one of the avatar's joints using one of * {@link MyAvatar.attach|attach}, {@link MyAvatar.detachOne|detachOne}, {@link MyAvatar.detachAll|detachAll}, or * {@link MyAvatar.setAttachmentData|setAttachmentData}. @@ -2620,7 +2620,7 @@ public slots: */ void attachmentsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's size changes. This can be due to the user changing the size of their avatar or the domain * limiting the size of their avatar. * @function MyAvatar.scaleChanged @@ -2628,7 +2628,7 @@ public slots: */ void scaleChanged(); - /**jsdoc + /*@jsdoc * Triggered when the hand touch effect is enabled or disabled for the avatar. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that * it is really touching that object.

@@ -2639,7 +2639,7 @@ public slots: */ void shouldDisableHandTouchChanged(bool shouldDisable); - /**jsdoc + /*@jsdoc * Triggered when the hand touch is enabled or disabled on a specific entity. *

The hand touch effect makes the avatar's fingers adapt to the shape of any object grabbed, creating the effect that * it is really touching that object.

@@ -2722,7 +2722,7 @@ private slots: void updateEyeContactTarget(float deltaTime); // These are made private for MyAvatar so that you will use the "use" methods instead - /**jsdoc + /*@jsdoc * @comment Borrows the base class's JSDoc. */ Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL) override; diff --git a/interface/src/commerce/Wallet.h b/interface/src/commerce/Wallet.h index 52b956dc5be..224e58d58c5 100644 --- a/interface/src/commerce/Wallet.h +++ b/interface/src/commerce/Wallet.h @@ -55,7 +55,7 @@ class Wallet : public QObject, public Dependency { void getWalletStatus(); - /**jsdoc + /*@jsdoc *

A WalletStatus may have one of the following values:

*
Reset your avatar's size to default then grow it 5 times.Reset your avatar's size to default then shrink it 5 times.
* diff --git a/interface/src/raypick/CollisionPick.cpp b/interface/src/raypick/CollisionPick.cpp index 2602bdb0a05..842de9f48a1 100644 --- a/interface/src/raypick/CollisionPick.cpp +++ b/interface/src/raypick/CollisionPick.cpp @@ -57,7 +57,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v } } -/**jsdoc +/*@jsdoc * An intersection result for a collision pick. * * @typedef {object} CollisionPickResult @@ -66,7 +66,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v * @property {CollisionRegion} collisionRegion - The collision region that was used. Valid even if there was no intersection. */ -/**jsdoc +/*@jsdoc * Information about a {@link CollisionPick}'s intersection with an object. * * @typedef {object} IntersectingObject @@ -76,7 +76,7 @@ void buildObjectIntersectionsMap(IntersectionType intersectionType, const std::v * @property {CollisionContact[]} collisionContacts - Information on the penetration between the pick and the object. */ -/**jsdoc +/*@jsdoc * A pair of points that represents part of an overlap between a {@link CollisionPick} and an object in the physics engine. * Points which are further apart represent deeper overlap. * diff --git a/interface/src/raypick/LaserPointerScriptingInterface.h b/interface/src/raypick/LaserPointerScriptingInterface.h index 48f4842bf83..9796508ca95 100644 --- a/interface/src/raypick/LaserPointerScriptingInterface.h +++ b/interface/src/raypick/LaserPointerScriptingInterface.h @@ -24,7 +24,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY -/**jsdoc +/*@jsdoc * The LaserPointers API is a subset of the {@link Pointers} API. It lets you create, manage, and visually * represent objects for repeatedly calculating ray intersections with avatars, entities, and overlays. Ray pointers can also * be configured to generate events on entities and overlays intersected. @@ -44,7 +44,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ public: - /**jsdoc + /*@jsdoc * Creates a new ray pointer. The pointer can have a wide range of behaviors depending on the properties specified. For * example, it may be a static ray pointer, a mouse ray pointer, or joint ray pointer. *

Warning: Pointers created using this method currently always intersect at least visible and @@ -65,7 +65,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { // jsdoc @borrows from Pointers Q_INVOKABLE void removeLaserPointer(unsigned int uid) const { DependencyManager::get()->removePointer(uid); } - /**jsdoc + /*@jsdoc * Edits a render state of a pointer, to change its visual appearance for the state when the pointer is intersecting * something. *

Note: You can only edit the properties of the existing parts of the pointer; you cannot change the @@ -79,7 +79,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const; - /**jsdoc + /*@jsdoc * Sets the render state of a pointer, to change its visual appearance and possibly disable or enable it. * @function LaserPointers.setRenderState * @param {string} renderState -

The name of the render state to set the pointer to. This may be:

@@ -91,7 +91,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setRenderState(unsigned int uid, const QString& renderState) const { DependencyManager::get()->setRenderState(uid, renderState.toStdString()); } - /**jsdoc + /*@jsdoc * Gets the most recent intersection of a pointer. A pointer continues to be updated ready to return a result, as long as * it is enabled, regardless of the render state. * @function LaserPointers.getPrevRayPickResult @@ -103,7 +103,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { // jsdoc @borrows from Pointers Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking) const { DependencyManager::get()->setPrecisionPicking(uid, precisionPicking); } - /**jsdoc + /*@jsdoc * Sets the length of a pointer. * @function LaserPointers.setLaserLength * @param {number} id - The ID of the pointer. @@ -111,7 +111,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setLaserLength(unsigned int uid, float laserLength) const { DependencyManager::get()->setLength(uid, laserLength); } - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pointer should ignore during intersection. * @function LaserPointers.setIgnoreItems * @param {number} id - The ID of the pointer. @@ -119,7 +119,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setIgnoreItems(unsigned int uid, const ScriptValuePointer& ignoreEntities) const; - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pointer should include during intersection, instead of intersecting with * everything. * @function LaserPointers.setIncludeItems @@ -129,7 +129,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setIncludeItems(unsigned int uid, const ScriptValuePointer& includeEntities) const; - /**jsdoc + /*@jsdoc * Locks a pointer onto a specific entity or avatar. * @function LaserPointers.setLockEndUUID * @param {number} id - The ID of the pointer. @@ -141,7 +141,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setLockEndUUID(unsigned int uid, const QUuid& objectID, bool isAvatar, const glm::mat4& offsetMat = glm::mat4()) const { DependencyManager::get()->setLockEndUUID(uid, objectID, isAvatar, offsetMat); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the left hand: a pointer with joint property set to * "_CONTROLLER_LEFTHAND" or "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND". * @function LaserPointers.isLeftHand @@ -150,7 +150,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isLeftHand(unsigned int uid) { return DependencyManager::get()->isLeftHand(uid); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the right hand: a pointer with joint property set to * "_CONTROLLER_RIGHTHAND" or "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND". * @function LaserPointers.isRightHand @@ -159,7 +159,7 @@ class LaserPointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isRightHand(unsigned int uid) { return DependencyManager::get()->isRightHand(uid); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the system mouse: a pointer with joint property set to * "Mouse". * @function LaserPointers.isMouse diff --git a/interface/src/raypick/ParabolaPick.h b/interface/src/raypick/ParabolaPick.h index 0d720914cc5..cb03ecbb76e 100644 --- a/interface/src/raypick/ParabolaPick.h +++ b/interface/src/raypick/ParabolaPick.h @@ -42,7 +42,7 @@ class ParabolaPickResult : public PickResult { float parabolicDistance { FLT_MAX }; bool intersects { false }; - /**jsdoc + /*@jsdoc * An intersection result for a parabola pick. * * @typedef {object} ParabolaPickResult diff --git a/interface/src/raypick/PickScriptingInterface.cpp b/interface/src/raypick/PickScriptingInterface.cpp index e6eac7d3ba6..954b6be3eab 100644 --- a/interface/src/raypick/PickScriptingInterface.cpp +++ b/interface/src/raypick/PickScriptingInterface.cpp @@ -73,7 +73,7 @@ PickFilter getPickFilter(unsigned int filter) { return PickFilter(filter); } -/**jsdoc +/*@jsdoc * The properties of a ray pick. * * @typedef {object} Picks.RayPickProperties @@ -159,7 +159,7 @@ std::shared_ptr PickScriptingInterface::buildRayPick(const QVariantMa return rayPick; } -/**jsdoc +/*@jsdoc * The properties of a stylus pick. * * @typedef {object} Picks.StylusPickProperties @@ -211,7 +211,7 @@ std::shared_ptr PickScriptingInterface::buildStylusPick(const QVarian // NOTE: Laser pointer still uses scaleWithAvatar. Until scaleWithAvatar is also deprecated for pointers, scaleWithAvatar // should not be removed from the pick API. -/**jsdoc +/*@jsdoc * The properties of a parabola pick. * * @typedef {object} Picks.ParabolaPickProperties @@ -322,7 +322,7 @@ std::shared_ptr PickScriptingInterface::buildParabolaPick(const QVari } -/**jsdoc +/*@jsdoc * The properties of a collision pick. * * @typedef {object} Picks.CollisionPickProperties diff --git a/interface/src/raypick/PickScriptingInterface.h b/interface/src/raypick/PickScriptingInterface.h index da68f89de77..2ce8b2026c0 100644 --- a/interface/src/raypick/PickScriptingInterface.h +++ b/interface/src/raypick/PickScriptingInterface.h @@ -20,7 +20,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Picks API lets you create and manage objects for repeatedly calculating intersections. * * @namespace Picks @@ -110,7 +110,7 @@ class PickScriptingInterface : public QObject, public Dependency { public: void registerMetaTypes(ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Creates a new pick. Different {@link PickType}s use different properties, and within one PickType the properties you * choose can lead to a wide range of behaviors. For example, with PickType.Ray, the properties could * configure a mouse ray pick, an avatar head ray pick, or a joint ray pick. @@ -125,21 +125,21 @@ class PickScriptingInterface : public QObject, public Dependency { // TODO: expand Pointers to be able to be fully configurable with PickFilters Q_INVOKABLE unsigned int createPick(const PickQuery::PickType type, const QVariant& properties); - /**jsdoc + /*@jsdoc * Enables a pick. Enabled picks update their pick results. * @function Picks.enablePick * @param {number} id - The ID of the pick. */ Q_INVOKABLE void enablePick(unsigned int uid); - /**jsdoc + /*@jsdoc * Disables a pick. Disabled picks do not update their pick results. * @function Picks.disablePick * @param {number} id - The ID of the pick. */ Q_INVOKABLE void disablePick(unsigned int uid); - /**jsdoc + /*@jsdoc * Get the enabled status of a pick. Enabled picks update their pick results. * @function Picks.isPickEnabled * @param {number} id - The ID of the pick. @@ -147,14 +147,14 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isPickEnabled(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Removes (deletes) a pick. * @function Picks.removePick * @param {number} id - The ID of the pick. */ Q_INVOKABLE void removePick(unsigned int uid); - /**jsdoc + /*@jsdoc * Gets the current properties of the pick. * @function Picks.getPickProperties * @param {number} id - The ID of the pick. @@ -163,7 +163,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QVariantMap getPickProperties(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Gets the parameters that were passed in to {@link Picks.createPick} to create the pick, if the pick was created through * a script. Note that these properties do not reflect the current state of the pick. * See {@link Picks.getPickProperties}. @@ -174,14 +174,14 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QVariantMap getPickScriptParameters(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Gets all picks which currently exist, including disabled picks. * @function Picks.getPicks * @returns {number[]} picks - The IDs of the picks. */ Q_INVOKABLE QVector getPicks() const; - /**jsdoc + /*@jsdoc * Gets the most recent result from a pick. A pick continues to be updated ready to return a result, as long as it is * enabled. *

Note: Stylus picks only intersect with objects in their include list, set using @@ -233,7 +233,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QVariantMap getPrevPickResult(unsigned int uid); - /**jsdoc + /*@jsdoc * Sets whether or not a pick should use precision picking, i.e., whether it should pick against precise meshes or coarse * meshes. * This has the same effect as using the PICK_PRECISE or PICK_COARSE filter flags. @@ -243,7 +243,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking); - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pick should ignore during intersection. *

Note: Not used by stylus picks.

* @function Picks.setIgnoreItems @@ -252,7 +252,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setIgnoreItems(unsigned int uid, const ScriptValuePointer& ignoreItems); - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pick should include during intersection, instead of intersecting with * everything. *

Note: Stylus picks only intersect with items in their include list.

@@ -262,7 +262,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setIncludeItems(unsigned int uid, const ScriptValuePointer& includeItems); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the left hand: a ray or parabola pick with joint property set to * "_CONTROLLER_LEFTHAND" or "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND", or a stylus pick with * hand property set to 0. @@ -272,7 +272,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isLeftHand(unsigned int uid); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the right hand: a ray or parabola pick with joint property set to * "_CONTROLLER_RIGHTHAND" or "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", or a stylus pick with * hand property set to 1. @@ -282,7 +282,7 @@ class PickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isRightHand(unsigned int uid); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the system mouse: a ray or parabola pick with joint property set to * "Mouse". * @function Picks.isMouse @@ -298,7 +298,7 @@ class PickScriptingInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@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. @@ -306,7 +306,7 @@ public slots: */ static constexpr unsigned int PICK_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES) | PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_OVERLAYS * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_LOCAL_ENTITIES property * instead. @@ -315,7 +315,7 @@ public slots: static constexpr unsigned int PICK_OVERLAYS() { return PickFilter::getBitMask(PickFilter::FlagBit::LOCAL_ENTITIES); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_DOMAIN_ENTITIES * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_DOMAIN_ENTITIES property * instead. @@ -323,7 +323,7 @@ public slots: */ static constexpr unsigned int PICK_DOMAIN_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::DOMAIN_ENTITIES); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_AVATAR_ENTITIES * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_AVATAR_ENTITIES property * instead. @@ -331,7 +331,7 @@ public slots: */ static constexpr unsigned int PICK_AVATAR_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::AVATAR_ENTITIES); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_LOCAL_ENTITIES * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_LOCAL_ENTITIES property * instead. @@ -339,7 +339,7 @@ public slots: */ static constexpr unsigned int PICK_LOCAL_ENTITIES() { return PickFilter::getBitMask(PickFilter::FlagBit::LOCAL_ENTITIES); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_AVATARS * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_AVATARS property * instead. @@ -347,7 +347,7 @@ public slots: */ static constexpr unsigned int PICK_AVATARS() { return PickFilter::getBitMask(PickFilter::FlagBit::AVATARS); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_HUD * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_HUD property instead. * @returns {number} @@ -355,7 +355,7 @@ public slots: static constexpr unsigned int PICK_HUD() { return PickFilter::getBitMask(PickFilter::FlagBit::HUD); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_INCLUDE_VISIBLE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_INCLUDE_VISIBLE property * instead. @@ -363,7 +363,7 @@ public slots: */ static constexpr unsigned int PICK_INCLUDE_VISIBLE() { return PickFilter::getBitMask(PickFilter::FlagBit::VISIBLE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_INCLUDE_INVISIBLE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_INCLUDE_INVISIBLE property * instead. @@ -372,7 +372,7 @@ public slots: static constexpr unsigned int PICK_INCLUDE_INVISIBLE() { return PickFilter::getBitMask(PickFilter::FlagBit::INVISIBLE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_INCLUDE_COLLIDABLE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_INCLUDE_COLLIDABLE property * instead. @@ -380,7 +380,7 @@ public slots: */ static constexpr unsigned int PICK_INCLUDE_COLLIDABLE() { return PickFilter::getBitMask(PickFilter::FlagBit::COLLIDABLE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_INCLUDE_NONCOLLIDABLE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_INCLUDE_NONCOLLIDABLE * property instead. @@ -389,14 +389,14 @@ public slots: static constexpr unsigned int PICK_INCLUDE_NONCOLLIDABLE() { return PickFilter::getBitMask(PickFilter::FlagBit::NONCOLLIDABLE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_PRECISE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_PRECISE property instead. * @returns {number} */ static constexpr unsigned int PICK_PRECISE() { return PickFilter::getBitMask(PickFilter::FlagBit::PRECISE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_COARSE * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_COARSE property instead. * @returns {number} @@ -404,7 +404,7 @@ public slots: static constexpr unsigned int PICK_COARSE() { return PickFilter::getBitMask(PickFilter::FlagBit::COARSE); } - /**jsdoc + /*@jsdoc * @function Picks.PICK_ALL_INTERSECTIONS * @deprecated This function is deprecated and will be removed. Use the Picks.PICK_ALL_INTERSECTIONS property * instead. @@ -412,7 +412,7 @@ public slots: */ static constexpr unsigned int PICK_ALL_INTERSECTIONS() { return PickFilter::getBitMask(PickFilter::FlagBit::PICK_ALL_INTERSECTIONS); } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_NONE * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_NONE property * instead. @@ -420,7 +420,7 @@ public slots: */ static constexpr unsigned int INTERSECTED_NONE() { return IntersectionType::NONE; } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_ENTITY * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_ENTITY property * instead. @@ -428,7 +428,7 @@ public slots: */ static constexpr unsigned int INTERSECTED_ENTITY() { return IntersectionType::ENTITY; } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_LOCAL_ENTITY * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_LOCAL_ENTITY * property instead. @@ -436,7 +436,7 @@ public slots: */ static constexpr unsigned int INTERSECTED_LOCAL_ENTITY() { return IntersectionType::LOCAL_ENTITY; } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_OVERLAY * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_LOCAL_ENTITY * property instead. @@ -444,7 +444,7 @@ public slots: */ static constexpr unsigned int INTERSECTED_OVERLAY() { return INTERSECTED_LOCAL_ENTITY(); } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_AVATAR * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_AVATAR property * instead. @@ -452,7 +452,7 @@ public slots: */ static constexpr unsigned int INTERSECTED_AVATAR() { return IntersectionType::AVATAR; } - /**jsdoc + /*@jsdoc * @function Picks.INTERSECTED_HUD * @deprecated This function is deprecated and will be removed. Use the Picks.INTERSECTED_HUD property * instead. diff --git a/interface/src/raypick/PointerScriptingInterface.cpp b/interface/src/raypick/PointerScriptingInterface.cpp index c6370ffb354..58fc736bb98 100644 --- a/interface/src/raypick/PointerScriptingInterface.cpp +++ b/interface/src/raypick/PointerScriptingInterface.cpp @@ -85,7 +85,7 @@ QVariantMap PointerScriptingInterface::getPointerScriptParameters(unsigned int u return DependencyManager::get()->getPointerScriptParameters(uid); } -/**jsdoc +/*@jsdoc * The properties of a stylus pointer. These include the properties from the underlying stylus pick that the pointer uses. * @typedef {object} Pointers.StylusPointerProperties * @property {Pointers.StylusPointerModel} [model] - Override some or all of the default stylus model properties. @@ -98,7 +98,7 @@ QVariantMap PointerScriptingInterface::getPointerScriptParameters(unsigned int u * @see {@link Picks.StylusPickProperties} for additional properties from the underlying stylus pick. */ -/**jsdoc +/*@jsdoc * The properties of a stylus pointer model. * @typedef {object} Pointers.StylusPointerModel * @property {string} [url] - The url of a model to use for the stylus, to override the default stylus mode. @@ -143,14 +143,14 @@ std::shared_ptr PointerScriptingInterface::buildStylus(const QVariant& return std::make_shared(properties, StylusPointer::buildStylus(propertyMap), hover, enabled, modelPositionOffset, modelRotationOffset, modelDimensions); } -/**jsdoc +/*@jsdoc * Properties that define the visual appearance of a ray pointer when the pointer is not intersecting something. These are the * properties of {@link Pointers.RayPointerRenderState} but with an additional property. * @typedef {object} Pointers.DefaultRayPointerRenderState * @property {number} distance - The distance at which to render the end of the ray pointer. * @see {@link Pointers.RayPointerRenderState} for the remainder of the properties. */ -/**jsdoc +/*@jsdoc * Properties that define the visual appearance of a ray pointer when the pointer is intersecting something. * @typedef {object} Pointers.RayPointerRenderState * @property {string} name - When creating using {@link Pointers.createPointer}, the name of the render state. @@ -173,7 +173,7 @@ std::shared_ptr PointerScriptingInterface::buildStylus(const QVariant& *

When getting using {@link Pointers.getPointerProperties}, the ID of the overlay rendered at the end of the ray; * null if there is no overlay. */ -/**jsdoc +/*@jsdoc * The properties of a ray pointer. These include the properties from the underlying ray pick that the pointer uses. * @typedef {object} Pointers.RayPointerProperties * @property {boolean} [faceAvatar=false] - true if the overlay rendered at the end of the ray rotates about the @@ -331,7 +331,7 @@ std::shared_ptr PointerScriptingInterface::buildLaserPointer(const QVar distanceScaleEnd, scaleWithParent, enabled); } -/**jsdoc +/*@jsdoc * The visual appearance of the parabolic path. * @typedef {object} Pointers.ParabolaPointerPath * @property {Color} [color=255,255,255] - The color of the parabola. @@ -342,14 +342,14 @@ std::shared_ptr PointerScriptingInterface::buildLaserPointer(const QVar * @property {boolean} [drawInFront=false] - true if the parabola is rendered in front of objects in the world, * but behind the HUD, false if it is occluded by objects in front of it. */ -/**jsdoc +/*@jsdoc * Properties that define the visual appearance of a parabola pointer when the pointer is not intersecting something. These are * properties of {@link Pointers.ParabolaPointerRenderState} but with an additional property. * @typedef {object} Pointers.DefaultParabolaPointerRenderState * @property {number} distance - The distance along the parabola at which to render the end of the parabola pointer. * @see {@link Pointers.ParabolaPointerRenderState} for the remainder of the properties. */ -/**jsdoc +/*@jsdoc * Properties that define the visual appearance of a parabola pointer when the pointer is intersecting something. * @typedef {object} Pointers.ParabolaPointerRenderState * @property {string} name - When creating using {@link Pointers.createPointer}, the name of the render state. @@ -368,7 +368,7 @@ std::shared_ptr PointerScriptingInterface::buildLaserPointer(const QVar *

When getting using {@link Pointers.getPointerProperties}, the ID of the overlay rendered at the end of the parabola; * null if there is no overlay. */ -/**jsdoc +/*@jsdoc * The properties of a parabola pointer. These include the properties from the underlying parabola pick that the pointer uses. * @typedef {object} Pointers.ParabolaPointerProperties * @property {boolean} [faceAvatar=false] - true if the overlay rendered at the end of the ray rotates about the diff --git a/interface/src/raypick/PointerScriptingInterface.h b/interface/src/raypick/PointerScriptingInterface.h index e72b4710de8..226e10433ad 100644 --- a/interface/src/raypick/PointerScriptingInterface.h +++ b/interface/src/raypick/PointerScriptingInterface.h @@ -19,7 +19,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Pointers API lets you create, manage, and visually represent objects for repeatedly calculating * intersections with avatars, entities, and overlays. Pointers can also be configured to generate events on entities and * overlays intersected. @@ -37,7 +37,7 @@ class PointerScriptingInterface : public QObject, public Dependency { public: - /**jsdoc + /*@jsdoc * Specifies that a {@link Controller} action or function should trigger events on the entity or overlay currently * intersected by a {@link Pointers.RayPointerProperties|Ray} or {@link Pointers.ParabolaPointerProperties|Parabola} * pointer. @@ -54,7 +54,7 @@ class PointerScriptingInterface : public QObject, public Dependency { * */ - /**jsdoc + /*@jsdoc * Creates a new ray, parabola, or stylus pointer. The pointer can have a wide range of behaviors depending on the * properties specified. For example, a ray pointer may be a static ray pointer, a mouse ray pointer, or joint ray * pointer. @@ -135,21 +135,21 @@ class PointerScriptingInterface : public QObject, public Dependency { // TODO: expand Pointers to be able to be fully configurable with PickFilters Q_INVOKABLE unsigned int createPointer(const PickQuery::PickType& type, const QVariant& properties); - /**jsdoc + /*@jsdoc * Enables and shows a pointer. Enabled pointers update their pick results and generate events. * @function Pointers.enablePointer * @param {number} id - The ID of the pointer. */ Q_INVOKABLE void enablePointer(unsigned int uid) const { DependencyManager::get()->enablePointer(uid); } - /**jsdoc + /*@jsdoc * Disables and hides a pointer. Disabled pointers do not update their pick results or generate events. * @function Pointers.disablePointer * @param {number} id - The ID of the pointer. */ Q_INVOKABLE void disablePointer(unsigned int uid) const { DependencyManager::get()->disablePointer(uid); } - /**jsdoc + /*@jsdoc * Gets the enabled status of a pointer. Enabled pointers update their pick results and generate events. * @function Pointers.isPointerEnabled * @param {number} id - The ID of the pointer. @@ -157,14 +157,14 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isPointerEnabled(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Removes (deletes) a pointer. * @function Pointers.removePointer * @param {number} id - The ID of the pointer. */ Q_INVOKABLE void removePointer(unsigned int uid) const { DependencyManager::get()->removePointer(uid); } - /**jsdoc + /*@jsdoc * Gets the parameters that were passed in to {@link Pointers.createPointer} to create the pointer when the pointer was * created through a script. *

Note: These properties do not reflect the current state of the pointer. To get the current state @@ -176,14 +176,14 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QVariantMap getPointerScriptParameters(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Gets all pointers which currently exist, including disabled pointers. * @function Pointers.getPointers * @returns {number[]} pointers - The IDs of the pointers. */ Q_INVOKABLE QVector getPointers() const; - /**jsdoc + /*@jsdoc * Edits a render state of a {@link Pointers.RayPointerProperties|ray} or * {@link Pointers.ParabolaPointerProperties|parabola} pointer, to change its visual appearance for the state when the * pointer is intersecting something. @@ -255,7 +255,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void editRenderState(unsigned int uid, const QString& renderState, const QVariant& properties) const; - /**jsdoc + /*@jsdoc * Sets the render state of a pointer, to change its visual appearance and possibly disable or enable it. * @function Pointers.setRenderState * @param {number} id - The ID of the pointer. @@ -334,7 +334,7 @@ class PointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setRenderState(unsigned int uid, const QString& renderState) const { DependencyManager::get()->setRenderState(uid, renderState.toStdString()); } - /**jsdoc + /*@jsdoc * Gets the most recent intersection of a pointer. A pointer continues to be updated ready to return a result, as long as * it is enabled, regardless of the render state. * @function Pointers.getPrevPickResult @@ -344,7 +344,7 @@ class PointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE QVariantMap getPrevPickResult(unsigned int uid) const; - /**jsdoc + /*@jsdoc * Sets whether or not a pointer should use precision picking, i.e., whether it should pick against precise meshes or * coarse meshes. This has the same effect as using the PICK_PRECISE or PICK_COARSE filter flags. * @function Pointers.setPrecisionPicking @@ -353,7 +353,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking) const { DependencyManager::get()->setPrecisionPicking(uid, precisionPicking); } - /**jsdoc + /*@jsdoc * Sets the length of a pointer. *

Note: Not used by stylus pointers.

* @function Pointers.setLength @@ -362,7 +362,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setLength(unsigned int uid, float length) const { DependencyManager::get()->setLength(uid, length); } - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pointer should ignore during intersection. *

Note: Not used by stylus pointers.

* @function Pointers.setIgnoreItems @@ -371,7 +371,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setIgnoreItems(unsigned int uid, const ScriptValuePointer& ignoreEntities) const; - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a pointer should include during intersection, instead of intersecting with * everything. *

Note: Stylus pointers only intersect with items in their include list.

@@ -382,7 +382,7 @@ class PointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setIncludeItems(unsigned int uid, const ScriptValuePointer& includeEntities) const; - /**jsdoc + /*@jsdoc * Locks a pointer onto a specific entity or avatar. *

Note: Not used by stylus pointers.

* @function Pointers.setLockEndUUID @@ -395,7 +395,7 @@ class PointerScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setLockEndUUID(unsigned int uid, const QUuid& objectID, bool isAvatar, const glm::mat4& offsetMat = glm::mat4()) const { DependencyManager::get()->setLockEndUUID(uid, objectID, isAvatar, offsetMat); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the left hand: a ray or parabola pointer with joint property set to * "_CONTROLLER_LEFTHAND" or "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND", or a stylus pointer with * hand property set to 0. @@ -405,7 +405,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isLeftHand(unsigned int uid) { return DependencyManager::get()->isLeftHand(uid); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the right hand: a ray or parabola pointer with joint property set to * "_CONTROLLER_RIGHTHAND" or "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", or a stylus pointer with * hand property set to 1. @@ -415,7 +415,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isRightHand(unsigned int uid) { return DependencyManager::get()->isRightHand(uid); } - /**jsdoc + /*@jsdoc * Checks if a pointer is associated with the system mouse: a ray or parabola pointer with joint property set * to "Mouse". * @function Pointers.isMouse @@ -424,7 +424,7 @@ class PointerScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isMouse(unsigned int uid) { return DependencyManager::get()->isMouse(uid); } - /**jsdoc + /*@jsdoc * Gets information about a pointer. * @function Pointers.getPointerProperties * @param {number} id - The ID of the pointer. diff --git a/interface/src/raypick/RayPick.h b/interface/src/raypick/RayPick.h index 3bd82f41942..d5e604c4df8 100644 --- a/interface/src/raypick/RayPick.h +++ b/interface/src/raypick/RayPick.h @@ -39,7 +39,7 @@ class RayPickResult : public PickResult { float distance { FLT_MAX }; bool intersects { false }; - /**jsdoc + /*@jsdoc * An intersection result for a ray pick. * * @typedef {object} RayPickResult diff --git a/interface/src/raypick/RayPickScriptingInterface.h b/interface/src/raypick/RayPickScriptingInterface.h index 33ce979da60..33f6fe099ee 100644 --- a/interface/src/raypick/RayPickScriptingInterface.h +++ b/interface/src/raypick/RayPickScriptingInterface.h @@ -22,7 +22,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The RayPick API is a subset of the {@link Picks} API, as used for ray picks. * * @namespace RayPick @@ -69,7 +69,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { public: - /**jsdoc + /*@jsdoc * Creates a new ray pick. *

Warning: Picks created using this method currently always intersect at least visible and collidable * things but this may not always be the case.

@@ -79,28 +79,28 @@ class RayPickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE unsigned int createRayPick(const QVariant& properties); - /**jsdoc + /*@jsdoc * Enables a ray pick. * @function RayPick.enableRayPick * @param {number} id - The ID of the ray pick. */ Q_INVOKABLE void enableRayPick(unsigned int uid); - /**jsdoc + /*@jsdoc * Disables a ray pick. * @function RayPick.disableRayPick * @param {number} id - The ID of the ray pick. */ Q_INVOKABLE void disableRayPick(unsigned int uid); - /**jsdoc + /*@jsdoc * Removes (deletes) a ray pick. * @function RayPick.removeRayPick * @param {number} id - The ID of the ray pick. */ Q_INVOKABLE void removeRayPick(unsigned int uid); - /**jsdoc + /*@jsdoc * Gets the most recent pick result from a ray pick. A ray pick continues to be updated ready to return a result, as long * as it is enabled. * @function RayPick.getPrevRayPickResult @@ -110,7 +110,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { Q_INVOKABLE QVariantMap getPrevRayPickResult(unsigned int uid); - /**jsdoc + /*@jsdoc * Sets whether or not a ray pick should use precision picking, i.e., whether it should pick against precise meshes or * coarse meshes. * @function RayPick.setPrecisionPicking @@ -119,7 +119,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setPrecisionPicking(unsigned int uid, bool precisionPicking); - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a ray pick should ignore during intersection. * @function RayPick.setIgnoreItems * @param {number} id - The ID of the ray pick. @@ -127,7 +127,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setIgnoreItems(unsigned int uid, const ScriptValuePointer& ignoreEntities); - /**jsdoc + /*@jsdoc * Sets a list of entity and avatar IDs that a ray pick should include during intersection, instead of intersecting with * everything. * @function RayPick.setIncludeItems @@ -137,7 +137,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { Q_INVOKABLE void setIncludeItems(unsigned int uid, const ScriptValuePointer& includeEntities); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the left hand: a ray or parabola pick with joint property set to * "_CONTROLLER_LEFTHAND" or "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND", or a stylus pick with * hand property set to 0. @@ -147,7 +147,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isLeftHand(unsigned int uid); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the right hand: a ray or parabola pick with joint property set to * "_CONTROLLER_RIGHTHAND" or "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", or a stylus pick with * hand property set to 1. @@ -157,7 +157,7 @@ class RayPickScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool isRightHand(unsigned int uid); - /**jsdoc + /*@jsdoc * Checks if a pick is associated with the system mouse: a ray or parabola pick with joint property set to * "Mouse". * @function RayPick.isMouse @@ -168,42 +168,42 @@ class RayPickScriptingInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * @function RayPick.PICK_ENTITIES * @deprecated This function is deprecated and will be removed. Use the Raypick.PICK_ENTITIES property instead. * @returns {number} */ static unsigned int PICK_ENTITIES() { return PickScriptingInterface::PICK_ENTITIES(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_OVERLAYS * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_OVERLAYS property instead. * @returns {number} */ static unsigned int PICK_OVERLAYS() { return PickScriptingInterface::PICK_OVERLAYS(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_AVATARS * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_AVATARS property instead. * @returns {number} */ static unsigned int PICK_AVATARS() { return PickScriptingInterface::PICK_AVATARS(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_HUD * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_HUD property instead. * @returns {number} */ static unsigned int PICK_HUD() { return PickScriptingInterface::PICK_HUD(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_COARSE * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_COARSE property instead. * @returns {number} */ static unsigned int PICK_COARSE() { return PickScriptingInterface::PICK_COARSE(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_INCLUDE_INVISIBLE * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_INCLUDE_INVISIBLE * property instead. @@ -211,7 +211,7 @@ public slots: */ static unsigned int PICK_INCLUDE_INVISIBLE() { return PickScriptingInterface::PICK_INCLUDE_INVISIBLE(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_INCLUDE_NONCOLLIDABLE * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_INCLUDE_NONCOLLIDABLE * property instead. @@ -219,7 +219,7 @@ public slots: */ static unsigned int PICK_INCLUDE_NONCOLLIDABLE() { return PickScriptingInterface::PICK_INCLUDE_NONCOLLIDABLE(); } - /**jsdoc + /*@jsdoc * @function RayPick.PICK_ALL_INTERSECTIONS * @deprecated This function is deprecated and will be removed. Use the RayPick.PICK_ALL_INTERSECTIONS * property instead. @@ -227,7 +227,7 @@ public slots: */ static unsigned int PICK_ALL_INTERSECTIONS() { return PickScriptingInterface::PICK_ALL_INTERSECTIONS(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_NONE * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_NONE property * instead. @@ -235,7 +235,7 @@ public slots: */ static unsigned int INTERSECTED_NONE() { return PickScriptingInterface::INTERSECTED_NONE(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_ENTITY * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_ENTITY property * instead. @@ -243,7 +243,7 @@ public slots: */ static unsigned int INTERSECTED_ENTITY() { return PickScriptingInterface::INTERSECTED_ENTITY(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_OVERLAY * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_LOCAL_ENTITY * property instead. @@ -251,7 +251,7 @@ public slots: */ static unsigned int INTERSECTED_LOCAL_ENTITY() { return PickScriptingInterface::INTERSECTED_LOCAL_ENTITY(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_OVERLAY * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_OVERLAY property * instead. @@ -259,7 +259,7 @@ public slots: */ static unsigned int INTERSECTED_OVERLAY() { return PickScriptingInterface::INTERSECTED_LOCAL_ENTITY(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_AVATAR * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_AVATAR property * instead. @@ -267,7 +267,7 @@ public slots: */ static unsigned int INTERSECTED_AVATAR() { return PickScriptingInterface::INTERSECTED_AVATAR(); } - /**jsdoc + /*@jsdoc * @function RayPick.INTERSECTED_HUD * @deprecated This function is deprecated and will be removed. Use the RayPick.INTERSECTED_HUD property * instead. diff --git a/interface/src/raypick/StylusPick.h b/interface/src/raypick/StylusPick.h index 89444149d87..fa9ed90a1c0 100644 --- a/interface/src/raypick/StylusPick.h +++ b/interface/src/raypick/StylusPick.h @@ -40,7 +40,7 @@ class StylusPickResult : public PickResult { glm::vec3 intersection { NAN }; glm::vec3 surfaceNormal { NAN }; - /**jsdoc + /*@jsdoc * An intersection result for a stylus pick. * * @typedef {object} StylusPickResult diff --git a/interface/src/scripting/AccountServicesScriptingInterface.cpp b/interface/src/scripting/AccountServicesScriptingInterface.cpp index 8e48e3b5ca1..e889bf7aa1f 100644 --- a/interface/src/scripting/AccountServicesScriptingInterface.cpp +++ b/interface/src/scripting/AccountServicesScriptingInterface.cpp @@ -112,7 +112,7 @@ DownloadInfoResult::DownloadInfoResult() : { } -/**jsdoc +/*@jsdoc * Information on the assets currently being downloaded and pending download. * @typedef {object} AccountServices.DownloadInfoResult * @property {number[]} downloading - The download percentage remaining of each asset currently downloading. diff --git a/interface/src/scripting/AccountServicesScriptingInterface.h b/interface/src/scripting/AccountServicesScriptingInterface.h index 3a31217120b..8e66b894cb5 100644 --- a/interface/src/scripting/AccountServicesScriptingInterface.h +++ b/interface/src/scripting/AccountServicesScriptingInterface.h @@ -39,7 +39,7 @@ void DownloadInfoResultFromScriptValue(const ScriptValuePointer& object, Downloa class AccountServicesScriptingInterface : public QObject { Q_OBJECT - /**jsdoc + /*@jsdoc * The AccountServices API provides functions that give information on user connectivity, visibility, and * asset download progress. * @@ -64,7 +64,7 @@ class AccountServicesScriptingInterface : public QObject { * — typically "https://metaverse.highfidelity.com". Read-only. */ - /**jsdoc + /*@jsdoc * The Account API provides functions that give information on user connectivity, visibility, and asset * download progress. * @@ -104,7 +104,7 @@ class AccountServicesScriptingInterface : public QObject { * @borrows AccountServices.loggedInChanged as loggedInChanged */ - /**jsdoc + /*@jsdoc * The GlobalServices API provides functions that give information on user connectivity, visibility, and asset * download progress. * @@ -158,21 +158,21 @@ class AccountServicesScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Gets information on the download progress of assets in the domain. * @function AccountServices.getDownloadInfo * @returns {AccountServices.DownloadInfoResult} Information on the download progress of assets. */ DownloadInfoResult getDownloadInfo(); - /**jsdoc + /*@jsdoc * Triggers a {@link AccountServices.downloadInfoChanged|downloadInfoChanged} signal with information on the current * download progress of the assets in the domain. * @function AccountServices.updateDownloadInfo */ void updateDownloadInfo(); - /**jsdoc + /*@jsdoc * Checks whether the user is logged in. * @function AccountServices.isLoggedIn * @returns {boolean} true if the user is logged in, false if not. @@ -182,14 +182,14 @@ public slots: */ bool isLoggedIn(); - /**jsdoc + /*@jsdoc * The function returns the login status of the user and prompts the user to log in (with a login dialog) if they're not already logged in. * @function AccountServices.checkAndSignalForAccessToken * @returns {boolean} true if the user is logged in, false if not. */ bool checkAndSignalForAccessToken(); - /**jsdoc + /*@jsdoc * Logs the user out. * @function AccountServices.logOut */ @@ -207,14 +207,14 @@ private slots: signals: - /**jsdoc + /*@jsdoc * Not currently used. * @function AccountServices.connected * @returns {Signal} */ void connected(); - /**jsdoc + /*@jsdoc * Triggered when the user logs out. * @function AccountServices.disconnected * @param {string} reason - Has the value, "logout". @@ -222,7 +222,7 @@ private slots: */ void disconnected(const QString& reason); - /**jsdoc + /*@jsdoc * Triggered when the username logged in with changes, i.e., when the user logs in or out. * @function AccountServices.myUsernameChanged * @param {string} username - The user name of the user logged in. If there is no user logged in, it is "". @@ -234,7 +234,7 @@ private slots: */ void myUsernameChanged(const QString& username); - /**jsdoc + /*@jsdoc * Triggered when the download progress of the assets in the domain changes. * @function AccountServices.downloadInfoChanged * @param {AccountServices.DownloadInfoResult} downloadInfo - Information on the download progress of assets. @@ -242,7 +242,7 @@ private slots: */ void downloadInfoChanged(DownloadInfoResult info); - /**jsdoc + /*@jsdoc * Triggered when the user's visibility to others changes. * @function AccountServices.findableByChanged * @param {string} findableBy - The user's visibility to other people: @@ -270,7 +270,7 @@ private slots: */ void findableByChanged(const QString& discoverabilityMode); - /**jsdoc + /*@jsdoc * Triggered when the login status of the user changes. * @function AccountServices.loggedInChanged * @param {boolean} loggedIn - true if the user is logged in, false if not. diff --git a/interface/src/scripting/Audio.h b/interface/src/scripting/Audio.h index 707c8aac333..bb8a92aa73e 100644 --- a/interface/src/scripting/Audio.h +++ b/interface/src/scripting/Audio.h @@ -30,7 +30,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { Q_OBJECT SINGLETON_DEPENDENCY - /**jsdoc + /*@jsdoc * The Audio API provides facilities to interact with audio inputs and outputs and to play sounds. * * @namespace Audio @@ -161,7 +161,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { void saveData(); void loadData(); - /**jsdoc + /*@jsdoc * @function Audio.setInputDevice * @param {object} device - Device. * @param {boolean} isHMD - Is HMD. @@ -169,7 +169,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ Q_INVOKABLE void setInputDevice(const HifiAudioDeviceInfo& device, bool isHMD); - /**jsdoc + /*@jsdoc * @function Audio.setOutputDevice * @param {object} device - Device. * @param {boolean} isHMD - Is HMD. @@ -177,7 +177,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ Q_INVOKABLE void setOutputDevice(const HifiAudioDeviceInfo& device, bool isHMD); - /**jsdoc + /*@jsdoc * Enables or disables reverberation. Reverberation is done by the client on the post-mix audio. The reverberation options * come from either the domain's audio zone configured on the server or settings scripted by * {@link Audio.setReverbOptions|setReverbOptions}. @@ -210,21 +210,21 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { * }, 8000); */ Q_INVOKABLE void setReverb(bool enable); - /**jsdoc + /*@jsdoc * Configures reverberation options. Use {@link Audio.setReverb|setReverb} to enable or disable reverberation. * @function Audio.setReverbOptions * @param {AudioEffectOptions} options - The reverberation options. */ Q_INVOKABLE void setReverbOptions(const AudioEffectOptions* options); - /**jsdoc + /*@jsdoc * Sets the gain (relative volume) that avatars' voices are played at. This gain is used at the server. * @function Audio.setAvatarGain * @param {number} gain - The avatar gain (dB) at the server. */ Q_INVOKABLE void setAvatarGain(float gain); - /**jsdoc + /*@jsdoc * Gets the gain (relative volume) that avatars' voices are played at. This gain is used at the server. * @function Audio.getAvatarGain * @returns {number} The avatar gain (dB) at the server. @@ -237,63 +237,63 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ Q_INVOKABLE float getAvatarGain(); - /**jsdoc + /*@jsdoc * Sets the gain (relative volume) that environment sounds from the server are played at. * @function Audio.setInjectorGain * @param {number} gain - The injector gain (dB) at the server. */ Q_INVOKABLE void setInjectorGain(float gain); - /**jsdoc + /*@jsdoc * Gets the gain (relative volume) that environment sounds from the server are played at. * @function Audio.getInjectorGain * @returns {number} The injector gain (dB) at the server. */ Q_INVOKABLE float getInjectorGain(); - /**jsdoc + /*@jsdoc * Sets the gain (relative volume) that environment sounds from the client are played at. * @function Audio.setLocalInjectorGain * @param {number} gain - The injector gain (dB) in the client. */ Q_INVOKABLE void setLocalInjectorGain(float gain); - /**jsdoc + /*@jsdoc * Gets the gain (relative volume) that environment sounds from the client are played at. * @function Audio.getLocalInjectorGain * @returns {number} The injector gain (dB) in the client. */ Q_INVOKABLE float getLocalInjectorGain(); - /**jsdoc + /*@jsdoc * Sets the gain (relative volume) that system sounds are played at. * @function Audio.setSystemInjectorGain * @param {number} gain - The injector gain (dB) in the client. */ Q_INVOKABLE void setSystemInjectorGain(float gain); - /**jsdoc + /*@jsdoc * Gets the gain (relative volume) that system sounds are played at. * @function Audio.getSystemInjectorGain * @returns {number} The injector gain (dB) in the client. */ Q_INVOKABLE float getSystemInjectorGain(); - /**jsdoc + /*@jsdoc * Sets the noise gate threshold before your mic audio is transmitted. (Applies only if Audio.noiseReductionAutomatic is false.) * @function Audio.setNoiseReductionThreshold * @param {number} threshold - The level that your input must surpass to be transmitted. 0.0 (open the gate completely) – 1.0 */ Q_INVOKABLE void setNoiseReductionThreshold(float threshold); - /**jsdoc + /*@jsdoc * Gets the noise reduction threshold. * @function Audio.getNoiseReductionThreshold * @returns {number} The noise reduction threshold. 0.01.0 */ Q_INVOKABLE float getNoiseReductionThreshold(); - /**jsdoc + /*@jsdoc * Starts making an audio recording of the audio being played in-world (i.e., not local-only audio) to a file in WAV format. * @function Audio.startRecording * @param {string} filename - The path and name of the file to make the recording in. Should have a .wav @@ -314,20 +314,20 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ Q_INVOKABLE bool startRecording(const QString& filename); - /**jsdoc + /*@jsdoc * Finishes making an audio recording started with {@link Audio.startRecording|startRecording}. * @function Audio.stopRecording */ Q_INVOKABLE void stopRecording(); - /**jsdoc + /*@jsdoc * Checks whether an audio recording is currently being made. * @function Audio.getRecording * @returns {boolean} true if an audio recording is currently being made, otherwise false. */ Q_INVOKABLE bool getRecording(); - /**jsdoc + /*@jsdoc * Sets the output volume gain that will be used when the user is holding the push-to-talk key. * Should be negative. * @function Audio.setPushingToTalkOutputGainDesktop @@ -335,7 +335,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ Q_INVOKABLE void setPushingToTalkOutputGainDesktop(float gain); - /**jsdoc + /*@jsdoc * Gets the output volume gain that is used when the user is holding the push-to-talk key. * Should be negative. * @function Audio.getPushingToTalkOutputGainDesktop @@ -345,14 +345,14 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { signals: - /**jsdoc + /*@jsdoc * @function Audio.nop * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ void nop(); - /**jsdoc + /*@jsdoc * Triggered when the audio input is muted or unmuted for the current context (desktop or HMD). * @function Audio.mutedChanged * @param {boolean} isMuted - true if the audio input is muted for the current context (desktop or HMD), @@ -365,7 +365,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void mutedChanged(bool isMuted); - /**jsdoc + /*@jsdoc * Triggered when desktop audio input is muted or unmuted. * @function Audio.mutedDesektopChanged * @param {boolean} isMuted - true if desktop audio input is muted, otherwise false. @@ -377,7 +377,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void mutedDesktopChanged(bool isMuted); - /**jsdoc + /*@jsdoc * Triggered when HMD audio input is muted or unmuted. * @function Audio.mutedHMDChanged * @param {boolean} isMuted - true if HMD audio input is muted, otherwise false. @@ -385,7 +385,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void mutedHMDChanged(bool isMuted); - /**jsdoc + /*@jsdoc * Triggered when push-to-talk is enabled or disabled for the current context (desktop or HMD). * @function Audio.pushToTalkChanged * @param {boolean} enabled - true if push-to-talk is enabled, otherwise false. @@ -397,7 +397,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void pushToTalkChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when push-to-talk is enabled or disabled for desktop mode. * @function Audio.pushToTalkDesktopChanged * @param {boolean} enabled - true if push-to-talk is enabled for desktop mode, otherwise false. @@ -405,7 +405,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void pushToTalkDesktopChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when push-to-talk is enabled or disabled for HMD mode. * @function Audio.pushToTalkHMDChanged * @param {boolean} enabled - true if push-to-talk is enabled for HMD mode, otherwise false. @@ -413,7 +413,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void pushToTalkHMDChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when audio input noise reduction is enabled or disabled. * @function Audio.noiseReductionChanged * @param {boolean} isEnabled - true if audio input noise reduction is enabled, otherwise false. @@ -421,7 +421,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void noiseReductionChanged(bool isEnabled); - /**jsdoc + /*@jsdoc * Triggered when the audio input noise reduction mode is changed. * @function Audio.noiseReductionAutomaticChanged * @param {boolean} isEnabled - true if audio input noise reduction automatic mode is enabled, false if in manual mode. @@ -429,7 +429,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void noiseReductionAutomaticChanged(bool isEnabled); - /**jsdoc + /*@jsdoc * Triggered when the audio input noise reduction threshold is changed. * @function Audio.noiseReductionThresholdChanged * @param {number} threshold - The threshold for the audio input noise reduction, range 0.0 (open the gate completely) – 1.0 @@ -438,7 +438,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void noiseReductionThresholdChanged(float threshold); - /**jsdoc + /*@jsdoc * Triggered when "warn when muted" is enabled or disabled. * @function Audio.warnWhenMutedChanged * @param {boolean} isEnabled - true if "warn when muted" is enabled, otherwise false. @@ -446,7 +446,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void warnWhenMutedChanged(bool isEnabled); - /**jsdoc + /*@jsdoc * Triggered when acoustic echo cancellation is enabled or disabled. * @function Audio.acousticEchoCancellationChanged * @param {boolean} isEnabled - true if acoustic echo cancellation is enabled, otherwise false. @@ -454,7 +454,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void acousticEchoCancellationChanged(bool isEnabled); - /**jsdoc + /*@jsdoc * Triggered when the input audio volume changes. * @function Audio.inputVolumeChanged * @param {number} volume - The requested volume to be applied to the audio input, range 0.0 – @@ -465,7 +465,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void inputVolumeChanged(float volume); - /**jsdoc + /*@jsdoc * Triggered when the input audio level changes. * @function Audio.inputLevelChanged * @param {number} level - The loudness of the input audio, range 0.0 (no sound) – 1.0 (the @@ -474,7 +474,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void inputLevelChanged(float level); - /**jsdoc + /*@jsdoc * Triggered when the clipping state of the input audio changes. * @function Audio.clippingChanged * @param {boolean} isClipping - true if the audio input is clipping, otherwise false. @@ -482,7 +482,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void clippingChanged(bool isClipping); - /**jsdoc + /*@jsdoc * Triggered when the current context of the audio changes. * @function Audio.contextChanged * @param {string} context - The current context of the audio: either "Desktop" or "HMD". @@ -490,7 +490,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void contextChanged(const QString& context); - /**jsdoc + /*@jsdoc * Triggered when the user starts or stops push-to-talk. * @function Audio.pushingToTalkChanged * @param {boolean} talking - true if started push-to-talk, false if stopped push-to-talk. @@ -498,7 +498,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void pushingToTalkChanged(bool talking); - /**jsdoc + /*@jsdoc * Triggered when the avatar gain changes. * @function Audio.avatarGainChanged * @param {number} gain - The new avatar gain value (dB). @@ -506,7 +506,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void avatarGainChanged(float gain); - /**jsdoc + /*@jsdoc * Triggered when the local injector gain changes. * @function Audio.localInjectorGainChanged * @param {number} gain - The new local injector gain value (dB). @@ -514,7 +514,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void localInjectorGainChanged(float gain); - /**jsdoc + /*@jsdoc * Triggered when the server injector gain changes. * @function Audio.serverInjectorGainChanged * @param {number} gain - The new server injector gain value (dB). @@ -522,7 +522,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void serverInjectorGainChanged(float gain); - /**jsdoc + /*@jsdoc * Triggered when the system injector gain changes. * @function Audio.systemInjectorGainChanged * @param {number} gain - The new system injector gain value (dB). @@ -530,7 +530,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { */ void systemInjectorGainChanged(float gain); - /**jsdoc + /*@jsdoc * Triggered when the push to talk gain changes. * @function Audio.pushingToTalkOutputGainDesktopChanged * @param {number} gain - The new output gain value (dB). @@ -540,7 +540,7 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { public slots: - /**jsdoc + /*@jsdoc * @function Audio.onContextChanged * @deprecated This function is deprecated and will be removed. */ diff --git a/interface/src/scripting/ClipboardScriptingInterface.h b/interface/src/scripting/ClipboardScriptingInterface.h index 9660b2158b8..41f50e34686 100644 --- a/interface/src/scripting/ClipboardScriptingInterface.h +++ b/interface/src/scripting/ClipboardScriptingInterface.h @@ -17,7 +17,7 @@ #include -/**jsdoc +/*@jsdoc * The Clipboard API enables you to export and import entities to and from JSON files. * * @namespace Clipboard @@ -32,7 +32,7 @@ class ClipboardScriptingInterface : public QObject { ClipboardScriptingInterface(); public: - /**jsdoc + /*@jsdoc * Gets the extents of the entities held in the clipboard. * @function Clipboard.getContentsDimensions * @returns {Vec3} The extents of the content held in the clipboard. @@ -46,14 +46,14 @@ class ClipboardScriptingInterface : public QObject { */ Q_INVOKABLE glm::vec3 getContentsDimensions(); - /**jsdoc + /*@jsdoc * Gets the largest dimension of the extents of the entities held in the clipboard. * @function Clipboard.getClipboardContentsLargestDimension * @returns {number} The largest dimension of the extents of the content held in the clipboard. */ Q_INVOKABLE float getClipboardContentsLargestDimension(); - /**jsdoc + /*@jsdoc * Imports entities from a JSON file into the clipboard. * @function Clipboard.importEntities * @param {string} filename - The path and name of the JSON file to import. @@ -73,7 +73,7 @@ class ClipboardScriptingInterface : public QObject { */ Q_INVOKABLE bool importEntities(const QString& filename, const bool isObservable = true, const qint64 callerId = -1); - /**jsdoc + /*@jsdoc * Exports specified entities to a JSON file. * @function Clipboard.exportEntities * @param {string} filename - Path and name of the file to export the entities to. Should have the extension ".json". @@ -100,7 +100,7 @@ class ClipboardScriptingInterface : public QObject { */ Q_INVOKABLE bool exportEntities(const QString& filename, const QVector& entityIDs); - /**jsdoc + /*@jsdoc * Exports all entities that have centers within a cube to a JSON file. * @function Clipboard.exportEntities * @variation 0 @@ -113,7 +113,7 @@ class ClipboardScriptingInterface : public QObject { */ Q_INVOKABLE bool exportEntities(const QString& filename, float x, float y, float z, float scale); - /**jsdoc + /*@jsdoc * Pastes the contents of the clipboard into the domain. * @function Clipboard.pasteEntities * @param {Vec3} position - The position to paste the clipboard contents at. diff --git a/interface/src/scripting/ControllerScriptingInterface.h b/interface/src/scripting/ControllerScriptingInterface.h index f65791335dd..175021e559d 100644 --- a/interface/src/scripting/ControllerScriptingInterface.h +++ b/interface/src/scripting/ControllerScriptingInterface.h @@ -25,7 +25,7 @@ class ScriptEngine; -/**jsdoc +/*@jsdoc * The Controller API provides facilities to interact with computer and controller hardware. * *

Facilities

@@ -265,7 +265,7 @@ class ControllerScriptingInterface : public controller::ScriptingInterface { public slots: - /**jsdoc + /*@jsdoc * Disables default Interface actions for a particular key event. * @function Controller.captureKeyEvents * @param {KeyEvent} event - Details of the key event to be captured. The key property must be specified. The @@ -284,7 +284,7 @@ public slots: */ virtual void captureKeyEvents(const KeyEvent& event); - /**jsdoc + /*@jsdoc * Re-enables default Interface actions for a particular key event that has been disabled using * {@link Controller.captureKeyEvents|captureKeyEvents}. * @function Controller.releaseKeyEvents @@ -293,7 +293,7 @@ public slots: */ virtual void releaseKeyEvents(const KeyEvent& event); - /**jsdoc + /*@jsdoc * Disables default Interface actions for a joystick. * @function Controller.captureJoystick * @param {number} joystickID - The integer ID of the joystick. @@ -301,7 +301,7 @@ public slots: */ virtual void captureJoystick(int joystickIndex); - /**jsdoc + /*@jsdoc * Re-enables default Interface actions for a joystick that has been disabled using * {@link Controller.captureJoystick|captureJoystick}. * @function Controller.releaseJoystick @@ -310,7 +310,7 @@ public slots: */ virtual void releaseJoystick(int joystickIndex); - /**jsdoc + /*@jsdoc * Disables {@link Entities.mousePressOnEntity} and {@link Entities.mouseDoublePressOnEntity} events on entities. * @function Controller.captureEntityClickEvents * @example
@@ -328,7 +328,7 @@ public slots: */ virtual void captureEntityClickEvents(); - /**jsdoc + /*@jsdoc * Re-enables {@link Entities.mousePressOnEntity} and {@link Entities.mouseDoublePressOnEntity} events on entities that were * disabled using {@link Controller.captureEntityClickEvents|captureEntityClickEvents}. * @function Controller.releaseEntityClickEvents @@ -336,14 +336,14 @@ public slots: virtual void releaseEntityClickEvents(); - /**jsdoc + /*@jsdoc * Gets the dimensions of the Interface window's interior if in desktop mode or the HUD surface if in HMD mode. * @function Controller.getViewportDimensions * @returns {Vec2} The dimensions of the Interface window interior if in desktop mode or HUD surface if in HMD mode. */ virtual glm::vec2 getViewportDimensions() const; - /**jsdoc + /*@jsdoc * Gets the recommended area to position UI on the HUD surface if in HMD mode or Interface's window interior if in desktop * mode. * @function Controller.getRecommendedHUDRect @@ -351,7 +351,7 @@ public slots: */ virtual QVariant getRecommendedHUDRect() const; - /**jsdoc + /*@jsdoc * Enables or disables the virtual game pad that is displayed on certain devices (e.g., Android). * @function Controller.setVPadEnabled * @param {boolean} enable - If true then the virtual game pad doesn't work, otherwise it does work provided @@ -360,14 +360,14 @@ public slots: */ virtual void setVPadEnabled(bool enable); - /**jsdoc + /*@jsdoc * Shows or hides the virtual game pad that is displayed on certain devices (e.g., Android). * @function Controller.setVPadHidden * @param {boolean} hidden - If true then the virtual game pad is hidden, otherwise it is shown. */ virtual void setVPadHidden(bool hidden); // Call it when a window should hide it - /**jsdoc + /*@jsdoc * Sets the amount of extra margin between the virtual game pad that is displayed on certain devices (e.g., Android) and * the bottom of the display. * @function Controller.setVPadExtraBottomMargin @@ -376,7 +376,7 @@ public slots: virtual void setVPadExtraBottomMargin(int margin); signals: - /**jsdoc + /*@jsdoc * Triggered when a keyboard key is pressed. * @function Controller.keyPressEvent * @param {KeyEvent} event - Details of the key press. @@ -388,7 +388,7 @@ public slots: */ void keyPressEvent(const KeyEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a keyboard key is released from being pressed. * @function Controller.keyReleaseEvent * @param {KeyEvent} event - Details of the key release. @@ -396,7 +396,7 @@ public slots: */ void keyReleaseEvent(const KeyEvent& event); - /**jsdoc + /*@jsdoc * Triggered when the mouse moves. * @function Controller.mouseMoveEvent * @param {MouseEvent} event - Details of the mouse movement. @@ -408,7 +408,7 @@ public slots: */ void mouseMoveEvent(const MouseEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is pressed. * @function Controller.mousePressEvent * @param {MouseEvent} event - Details of the button press. @@ -416,7 +416,7 @@ public slots: */ void mousePressEvent(const MouseEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is double-pressed. * @function Controller.mouseDoublePressEvent * @param {MouseEvent} event - Details of the button double-press. @@ -424,7 +424,7 @@ public slots: */ void mouseDoublePressEvent(const MouseEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is released from being pressed. * @function Controller.mouseReleaseEvent * @param {MouseEvent} event - Details of the button release. @@ -432,7 +432,7 @@ public slots: */ void mouseReleaseEvent(const MouseEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a touch event starts in the Interface window on a touch-enabled display or device. * @function Controller.touchBeginEvent * @param {TouchEvent} event - Details of the touch begin. @@ -444,7 +444,7 @@ public slots: */ void touchBeginEvent(const TouchEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a touch event ends in the Interface window on a touch-enabled display or device. * @function Controller.touchEndEvent * @param {TouchEvent} event - Details of the touch end. @@ -452,7 +452,7 @@ public slots: */ void touchEndEvent(const TouchEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a touch event update occurs in the Interface window on a touch-enabled display or device. * @function Controller.touchUpdateEvent * @param {TouchEvent} event - Details of the touch update. @@ -460,7 +460,7 @@ public slots: */ void touchUpdateEvent(const TouchEvent& event); - /**jsdoc + /*@jsdoc * Triggered when the mouse wheel is rotated. * @function Controller.wheelEvent * @param {WheelEvent} event - Details of the wheel movement. diff --git a/interface/src/scripting/DesktopScriptingInterface.cpp b/interface/src/scripting/DesktopScriptingInterface.cpp index e527561b056..cec701c911f 100644 --- a/interface/src/scripting/DesktopScriptingInterface.cpp +++ b/interface/src/scripting/DesktopScriptingInterface.cpp @@ -22,7 +22,7 @@ #include #include -/**jsdoc +/*@jsdoc * The possible docking locations of an InteractiveWindow. * @typedef {object} InteractiveWindow.DockAreas * @property {InteractiveWindow.DockArea} TOP - Dock to the top edge of the Interface window. @@ -37,7 +37,7 @@ static const QVariantMap DOCK_AREA { { "RIGHT", DockArea::RIGHT } }; -/**jsdoc +/*@jsdoc * The possible relative position anchors of an InteractiveWindow relative to the Interface window. * @typedef {object} InteractiveWindow.RelativePositionAnchors * @property {InteractiveWindow.RelativePositionAnchor} NO_ANCHOR - Position is not relative to any part of the Interface @@ -70,7 +70,7 @@ int DesktopScriptingInterface::getHeight() { return size.height(); } -/**jsdoc +/*@jsdoc * The possible display modes for an InteractiveWindow. * @typedef {object} InteractiveWindow.PresentationModes * @property {InteractiveWindow.PresentationMode} VIRTUAL - The window is displayed inside Interface: in the desktop window in diff --git a/interface/src/scripting/DesktopScriptingInterface.h b/interface/src/scripting/DesktopScriptingInterface.h index 0c8dc741994..68eb27c7d06 100644 --- a/interface/src/scripting/DesktopScriptingInterface.h +++ b/interface/src/scripting/DesktopScriptingInterface.h @@ -18,7 +18,7 @@ #include "ui/InteractiveWindow.h" -/**jsdoc +/*@jsdoc * The Desktop API provides the dimensions of the computer screen, sets the opacity of the HUD surface, and * enables QML and HTML windows to be shown inside or outside of Interface. * @@ -59,14 +59,14 @@ class DesktopScriptingInterface : public QObject, public Dependency { public: DesktopScriptingInterface(QObject* parent= nullptr, bool restricted = false); - /**jsdoc + /*@jsdoc * Sets the opacity of the HUD surface. * @function Desktop.setHUDAlpha * @param {number} alpha - The opacity, 0.0 – 1.0. */ Q_INVOKABLE void setHUDAlpha(float alpha); - /**jsdoc + /*@jsdoc * Opens a QML window within Interface: in the Interface window in desktop mode or on the HUD surface in HMD mode. If a * window of the specified name already exists, it is shown, otherwise a new window is created from the QML. * @function Desktop.show @@ -77,7 +77,7 @@ class DesktopScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void show(const QString& path, const QString& title); - /**jsdoc + /*@jsdoc * Creates a new window that can be displayed either within Interface or as a separate desktop window. * @function Desktop.createWindow * @param {string} url - The QML file that specifies the window content. The QML file can use a WebView diff --git a/interface/src/scripting/DialogsManagerScriptingInterface.h b/interface/src/scripting/DialogsManagerScriptingInterface.h index ee1baeecf5a..41d348f4606 100644 --- a/interface/src/scripting/DialogsManagerScriptingInterface.h +++ b/interface/src/scripting/DialogsManagerScriptingInterface.h @@ -14,7 +14,7 @@ #include -/**jsdoc +/*@jsdoc * The DialogsMamnager API provides facilities to work with some key dialogs. * * @namespace DialogsManager @@ -30,33 +30,33 @@ class DialogsManagerScriptingInterface : public QObject { DialogsManagerScriptingInterface(); static DialogsManagerScriptingInterface* getInstance(); - /**jsdoc + /*@jsdoc * Currently performs no action. * @function DialogsManager.showFeed */ Q_INVOKABLE void showFeed(); public slots: - /**jsdoc + /*@jsdoc * Shows the "Goto" dialog. * @function DialogsManager.showAddressBar */ void showAddressBar(); - /**jsdoc + /*@jsdoc * Hides the "Goto" dialog. * @function DialogsManager.hideAddressBar */ void hideAddressBar(); - /**jsdoc + /*@jsdoc * Shows the login dialog. * @function DialogsManager.showLoginDialog */ void showLoginDialog(); signals: - /**jsdoc + /*@jsdoc * Triggered when the "Goto" dialog is opened or closed. *

Warning: Currently isn't always triggered.

* @function DialogsManager.addressBarShown diff --git a/interface/src/scripting/GooglePolyScriptingInterface.h b/interface/src/scripting/GooglePolyScriptingInterface.h index ad44ad62239..693b07f18ed 100644 --- a/interface/src/scripting/GooglePolyScriptingInterface.h +++ b/interface/src/scripting/GooglePolyScriptingInterface.h @@ -15,7 +15,7 @@ #include #include -/**jsdoc +/*@jsdoc * The GooglePoly API allows you to interact with Google Poly models direct from inside High Fidelity. * @namespace GooglePoly * @@ -32,13 +32,13 @@ class GooglePolyScriptingInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * @function GooglePoly.setAPIKey * @param {string} key */ void setAPIKey(const QString& key); - /**jsdoc + /*@jsdoc * @function GooglePoly.getAssetList * @param {string} keyword * @param {string} category @@ -47,7 +47,7 @@ public slots: */ QString getAssetList(const QString& keyword, const QString& category, const QString& format); - /**jsdoc + /*@jsdoc * @function GooglePoly.getFBX * @param {string} keyword * @param {string} category @@ -55,7 +55,7 @@ public slots: */ QString getFBX(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getOBJ * @param {string} keyword * @param {string} category @@ -63,7 +63,7 @@ public slots: */ QString getOBJ(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getBlocks * @param {string} keyword * @param {string} category @@ -71,7 +71,7 @@ public slots: */ QString getBlocks(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getGLTF * @param {string} keyword * @param {string} category @@ -79,7 +79,7 @@ public slots: */ QString getGLTF(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getGLTF2 * @param {string} keyword * @param {string} category @@ -87,7 +87,7 @@ public slots: */ QString getGLTF2(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getTilt * @param {string} keyword * @param {string} category @@ -95,7 +95,7 @@ public slots: */ QString getTilt(const QString& keyword, const QString& category); - /**jsdoc + /*@jsdoc * @function GooglePoly.getModelInfo * @param {string} input * @returns {string} diff --git a/interface/src/scripting/HMDScriptingInterface.h b/interface/src/scripting/HMDScriptingInterface.h index 73d6dfb5974..d7fb0b3dce7 100644 --- a/interface/src/scripting/HMDScriptingInterface.h +++ b/interface/src/scripting/HMDScriptingInterface.h @@ -26,7 +26,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The HMD API provides access to the HMD used in VR display mode. * * @namespace HMD @@ -118,7 +118,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen public: - /**jsdoc + /*@jsdoc * Calculates the intersection of a ray with the HUD overlay. * @function HMD.calculateRayUICollisionPoint * @param {Vec3} position - The origin of the ray. @@ -146,7 +146,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen glm::vec3 calculateParabolaUICollisionPoint(const glm::vec3& position, const glm::vec3& velocity, const glm::vec3& acceleration, float& parabolicDistance) const; - /**jsdoc + /*@jsdoc * Gets the 2D HUD overlay coordinates of a 3D point on the HUD overlay. * 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay. * @function HMD.overlayFromWorldPoint @@ -172,7 +172,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE glm::vec2 overlayFromWorldPoint(const glm::vec3& position) const; - /**jsdoc + /*@jsdoc * Gets the 3D world coordinates of a 2D point on the HUD overlay. * 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay. * @function HMD.worldPointFromOverlay @@ -181,7 +181,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE glm::vec3 worldPointFromOverlay(const glm::vec2& overlay) const; - /**jsdoc + /*@jsdoc * Gets the 2D point on the HUD overlay represented by given spherical coordinates. * 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay. * Spherical coordinates are polar coordinates in radians with { x: 0, y: 0 } being the center of the HUD @@ -192,7 +192,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE glm::vec2 sphericalToOverlay(const glm::vec2 & sphericalPos) const; - /**jsdoc + /*@jsdoc * Gets the spherical coordinates of a 2D point on the HUD overlay. * 2D HUD overlay coordinates are pixels with the origin at the top left of the overlay. * Spherical coordinates are polar coordinates in radians with { x: 0, y: 0 } being the center of the HUD @@ -203,21 +203,21 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE glm::vec2 overlayToSpherical(const glm::vec2 & overlayPos) const; - /**jsdoc + /*@jsdoc * Recenters the HMD HUD to the current HMD position and orientation. * @function HMD.centerUI */ Q_INVOKABLE void centerUI(); - /**jsdoc + /*@jsdoc * Gets the name of the HMD audio input device. * @function HMD.preferredAudioInput * @returns {string} The name of the HMD audio input device if in HMD mode, otherwise an empty string. */ Q_INVOKABLE QString preferredAudioInput() const; - /**jsdoc + /*@jsdoc * Gets the name of the HMD audio output device. * @function HMD.preferredAudioOutput * @returns {string} The name of the HMD audio output device if in HMD mode, otherwise an empty string. @@ -225,7 +225,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen Q_INVOKABLE QString preferredAudioOutput() const; - /**jsdoc + /*@jsdoc * Checks whether there is an HMD available. * @function HMD.isHMDAvailable * @param {string} [name=""] - The name of the HMD to check for, e.g., "Oculus Rift". The name is the same as @@ -239,7 +239,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE bool isHMDAvailable(const QString& name = ""); - /**jsdoc + /*@jsdoc * Checks whether there is an HMD head controller available. * @function HMD.isHeadControllerAvailable * @param {string} [name=""] - The name of the HMD head controller to check for, e.g., "Oculus". If no name is @@ -253,7 +253,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE bool isHeadControllerAvailable(const QString& name = ""); - /**jsdoc + /*@jsdoc * Checks whether there are HMD hand controllers available. * @function HMD.isHandControllerAvailable * @param {string} [name=""] - The name of the HMD hand controller to check for, e.g., "Oculus". If no name is @@ -267,7 +267,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE bool isHandControllerAvailable(const QString& name = ""); - /**jsdoc + /*@jsdoc * Checks whether there are specific HMD controllers available. * @function HMD.isSubdeviceContainingNameAvailable * @param {string} name - The name of the HMD controller to check for, e.g., "OculusTouch". @@ -279,7 +279,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE bool isSubdeviceContainingNameAvailable(const QString& name); - /**jsdoc + /*@jsdoc * Signals that models of the HMD hand controllers being used should be displayed. The models are displayed at their actual, * real-world locations. * @function HMD.requestShowHandControllers @@ -291,14 +291,14 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ Q_INVOKABLE void requestShowHandControllers(); - /**jsdoc + /*@jsdoc * Signals that it is no longer necessary to display models of the HMD hand controllers being used. If no other scripts * want the models displayed then they are no longer displayed. * @function HMD.requestHideHandControllers */ Q_INVOKABLE void requestHideHandControllers(); - /**jsdoc + /*@jsdoc * Checks whether any script wants models of the HMD hand controllers displayed. Requests are made and canceled using * {@link HMD.requestShowHandControllers|requestShowHandControllers} and * {@link HMD.requestHideHandControllers|requestHideHandControllers}. @@ -308,14 +308,14 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen Q_INVOKABLE bool shouldShowHandControllers() const; - /**jsdoc + /*@jsdoc * Causes the borders in HUD windows to be enlarged when the laser intersects them in HMD mode. By default, borders are not * enlarged. * @function HMD.activateHMDHandMouse */ Q_INVOKABLE void activateHMDHandMouse(); - /**jsdoc + /*@jsdoc * Causes the border in HUD windows to no longer be enlarged when the laser intersects them in HMD mode. By default, * borders are not enlarged. * @function HMD.deactivateHMDHandMouse @@ -323,7 +323,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen Q_INVOKABLE void deactivateHMDHandMouse(); - /**jsdoc + /*@jsdoc * Suppresses the activation of the HMD-provided keyboard, if any. Successful calls should be balanced with a call to * {@link HMD.unsuppressKeyboard|unsuppressKeyboard} within a reasonable amount of time. * @function HMD.suppressKeyboard @@ -338,14 +338,14 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen /// call to unsuppressKeyboard() within a reasonable amount of time Q_INVOKABLE bool suppressKeyboard(); - /**jsdoc + /*@jsdoc * Unsuppresses the activation of the HMD-provided keyboard, if any. * @function HMD.unsuppressKeyboard */ /// Enable the keyboard following a suppressKeyboard call Q_INVOKABLE void unsuppressKeyboard(); - /**jsdoc + /*@jsdoc * Checks whether the HMD-provided keyboard, if any, is visible. * @function HMD.isKeyboardVisible * @returns {boolean} true if the current HMD provides a keyboard and it is visible, otherwise @@ -354,13 +354,13 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen /// Query the display plugin to determine the current VR keyboard visibility Q_INVOKABLE bool isKeyboardVisible(); - /**jsdoc + /*@jsdoc * Closes the tablet if it is open. * @function HMD.closeTablet */ Q_INVOKABLE void closeTablet(); - /**jsdoc + /*@jsdoc * Opens the tablet if the tablet is used in the current display mode and it isn't already showing, and sets the tablet to * contextual mode if requested. In contextual mode, the page displayed on the tablet is wholly controlled by script (i.e., * the user cannot navigate to another). @@ -393,7 +393,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen void setVisionSqueezeTurningYFactor(float value); signals: - /**jsdoc + /*@jsdoc * Triggered when a request to show or hide models of the HMD hand controllers is made using * {@link HMD.requestShowHandControllers|requestShowHandControllers} or * {@link HMD.requestHideHandControllers|requestHideHandControllers}. @@ -412,7 +412,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ bool shouldShowHandControllersChanged(); - /**jsdoc + /*@jsdoc * Triggered when the tablet is shown or hidden. * @function HMD.showTabletChanged * @param {boolean} showTablet - true if the tablet is showing, otherwise false. @@ -420,7 +420,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ void showTabletChanged(bool showTablet); - /**jsdoc + /*@jsdoc * Triggered when the ability to display the mini tablet has changed. * @function HMD.miniTabletEnabledChanged * @param {boolean} enabled - true if the mini tablet is enabled to be displayed, otherwise false. @@ -428,7 +428,7 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen */ bool miniTabletEnabledChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when the altering the mode for going into an away state when the interface focus is lost in VR. * @function HMD.awayStateWhenFocusLostInVRChanged * @param {boolean} enabled - true if the setting to go into an away state in VR when the interface focus is lost is enabled, otherwise false. @@ -439,14 +439,14 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen public: HMDScriptingInterface(); - /**jsdoc + /*@jsdoc * Gets the position on the HUD overlay that your HMD is looking at, in HUD coordinates. * @function HMD.getHUDLookAtPosition2D * @returns {Vec2} The position on the HUD overlay that your HMD is looking at, in pixels. */ static ScriptValuePointer getHUDLookAtPosition2D(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Gets the position on the HUD overlay that your HMD is looking at, in world coordinates. * @function HMD.getHUDLookAtPosition3D * @returns {Vec3} The position on the HUD overlay the your HMD is looking at, in world coordinates. diff --git a/interface/src/scripting/KeyboardScriptingInterface.h b/interface/src/scripting/KeyboardScriptingInterface.h index dc680b05cf1..196c55ffa4a 100644 --- a/interface/src/scripting/KeyboardScriptingInterface.h +++ b/interface/src/scripting/KeyboardScriptingInterface.h @@ -17,7 +17,7 @@ #include "DependencyManager.h" -/**jsdoc +/*@jsdoc * The Keyboard API provides facilities to use an in-world, virtual keyboard. When enabled, this keyboard is * displayed instead of the 2D keyboard that raises at the bottom of the tablet or Web entities when a text input field has * focus and you're in HMD mode. @@ -48,7 +48,7 @@ class KeyboardScriptingInterface : public QObject, public Dependency { KeyboardScriptingInterface() = default; ~KeyboardScriptingInterface() = default; - /**jsdoc + /*@jsdoc * Loads a JSON file that defines the virtual keyboard's layout. The default JSON file used is * {@link https://github.com/highfidelity/hifi/blob/master/interface/resources/config/keyboard.json|https://github.com/highfidelity/hifi/.../keyboard.json}. * @function Keyboard.loadKeyboardFile @@ -56,45 +56,45 @@ class KeyboardScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void loadKeyboardFile(const QString& string); - /**jsdoc + /*@jsdoc * Enables the left mallet so that it is displayed when in HMD mode. * @function Keyboard.enableLeftMallet */ Q_INVOKABLE void enableLeftMallet(); - /**jsdoc + /*@jsdoc * Enables the right mallet so that it is displayed when in HMD mode. * @function Keyboard.enableRightMallet */ Q_INVOKABLE void enableRightMallet(); - /**jsdoc + /*@jsdoc * Disables the left mallet so that it is not displayed when in HMD mode. * @function Keyboard.disableLeftMallet */ Q_INVOKABLE void disableLeftMallet(); - /**jsdoc + /*@jsdoc * Disables the right mallet so that it is not displayed when in HMD mode. * @function Keyboard.disableRightMallet */ Q_INVOKABLE void disableRightMallet(); - /**jsdoc + /*@jsdoc * Configures the virtual keyboard to recognize a ray pointer as the left hand's laser. * @function Keyboard.setLeftHandLaser * @param {number} leftHandLaser - The ID of a ray pointer created by {@link Pointers.createPointer}. */ Q_INVOKABLE void setLeftHandLaser(unsigned int leftHandLaser); - /**jsdoc + /*@jsdoc * Configures the virtual keyboard to recognize a ray pointer as the right hand's laser. * @function Keyboard.setRightHandLaser * @param {number} rightHandLaser - The ID of a ray pointer created by {@link Pointers.createPointer}. */ Q_INVOKABLE void setRightHandLaser(unsigned int rightHandLaser); - /**jsdoc + /*@jsdoc * Checks whether an entity is part of the virtual keyboard. * @function Keyboard.containsID * @param {Uuid} entityID - The entity ID. diff --git a/interface/src/scripting/MenuScriptingInterface.h b/interface/src/scripting/MenuScriptingInterface.h index 110df8dd06e..83dda80bf81 100644 --- a/interface/src/scripting/MenuScriptingInterface.h +++ b/interface/src/scripting/MenuScriptingInterface.h @@ -17,7 +17,7 @@ class MenuItemProperties; -/**jsdoc +/*@jsdoc * The Menu API provides access to the menu that is displayed at the top of the window on a user's desktop and in * the tablet when the "MENU" button is pressed. * @@ -57,7 +57,7 @@ private slots: void menuItemTriggered(); public slots: - /**jsdoc + /*@jsdoc * Adds a new top-level menu. * @function Menu.addMenu * @param {string} menuName - Name that will be displayed for the menu. Nested menus can be specified using the @@ -73,7 +73,7 @@ public slots: */ void addMenu(const QString& menuName, const QString& grouping = QString()); - /**jsdoc + /*@jsdoc * Removes a top-level menu. * @function Menu.removeMenu * @param {string} menuName - Name of the menu to remove. @@ -83,7 +83,7 @@ public slots: */ void removeMenu(const QString& menuName); - /**jsdoc + /*@jsdoc * Checks whether a top-level menu exists. * @function Menu.menuExists * @param {string} menuName - Name of the menu to check exists. @@ -95,7 +95,7 @@ public slots: */ bool menuExists(const QString& menuName); - /**jsdoc + /*@jsdoc * Adds a separator with an unclickable label below it. The separator will be placed at the bottom of the menu. To add a * separator at a specific point in the menu, use {@link Menu.addMenuItem} with {@link Menu.MenuItemProperties} instead. * @function Menu.addSeparator @@ -106,7 +106,7 @@ public slots: */ void addSeparator(const QString& menuName, const QString& separatorName); - /**jsdoc + /*@jsdoc * Removes a separator from a menu. * @function Menu.removeSeparator * @param {string} menuName - Name of the menu to remove the separator from. @@ -116,7 +116,7 @@ public slots: */ void removeSeparator(const QString& menuName, const QString& separatorName); - /**jsdoc + /*@jsdoc * Adds a new menu item to a menu. The menu item is specified using {@link Menu.MenuItemProperties}. * @function Menu.addMenuItem * @param {Menu.MenuItemProperties} properties - Properties of the menu item to create. @@ -130,7 +130,7 @@ public slots: */ void addMenuItem(const MenuItemProperties& properties); - /**jsdoc + /*@jsdoc * Adds a new menu item to a menu. The new item is added at the end of the menu. * @function Menu.addMenuItem * @variation 0 @@ -143,7 +143,7 @@ public slots: void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey); void addMenuItem(const QString& menuName, const QString& menuitem); - /**jsdoc + /*@jsdoc * Removes a menu item from a menu. * @function Menu.removeMenuItem * @param {string} menuName - Name of the menu to remove a menu item from. @@ -153,7 +153,7 @@ public slots: */ void removeMenuItem(const QString& menuName, const QString& menuitem); - /**jsdoc + /*@jsdoc * Checks whether a menu item exists. * @function Menu.menuItemExists * @param {string} menuName - Name of the menu that the menu item is in. @@ -166,7 +166,7 @@ public slots: */ bool menuItemExists(const QString& menuName, const QString& menuitem); - /**jsdoc + /*@jsdoc * Checks whether a checkable menu item is checked. * @function Menu.isOptionChecked * @param {string} menuOption - The name of the menu item. @@ -176,7 +176,7 @@ public slots: */ bool isOptionChecked(const QString& menuOption); - /**jsdoc + /*@jsdoc * Sets a checkable menu item as checked or unchecked. * @function Menu.setIsOptionChecked * @param {string} menuOption - The name of the menu item to modify. @@ -187,7 +187,7 @@ public slots: */ void setIsOptionChecked(const QString& menuOption, bool isChecked); - /**jsdoc + /*@jsdoc * Triggers a menu item as if the user clicked on it. * @function Menu.triggerOption * @param {string} menuOption - The name of the menu item to trigger. @@ -196,7 +196,7 @@ public slots: */ void triggerOption(const QString& menuOption); - /**jsdoc + /*@jsdoc * Checks whether a menu or menu item is enabled. If disabled, the item is grayed out and unusable. * Menus are enabled by default. * @function Menu.isMenuEnabled @@ -207,7 +207,7 @@ public slots: */ bool isMenuEnabled(const QString& menuName); - /**jsdoc + /*@jsdoc * Sets a menu or menu item to be enabled or disabled. If disabled, the item is grayed out and unusable. * @function Menu.setMenuEnabled * @param {string} menuName - The name of the menu or menu item to modify. @@ -219,7 +219,7 @@ public slots: void setMenuEnabled(const QString& menuName, bool isEnabled); signals: - /**jsdoc + /*@jsdoc * Triggered when a menu item is clicked or triggered by {@link Menu.triggerOption}. * @function Menu.menuItemEvent * @param {string} menuItem - Name of the menu item that was clicked or triggered. diff --git a/interface/src/scripting/PerformanceScriptingInterface.h b/interface/src/scripting/PerformanceScriptingInterface.h index 8a7e403e5d9..d5048115c77 100644 --- a/interface/src/scripting/PerformanceScriptingInterface.h +++ b/interface/src/scripting/PerformanceScriptingInterface.h @@ -18,7 +18,7 @@ #include "../RefreshRateManager.h" -/**jsdoc +/*@jsdoc * The Performance API provides control and information on graphics performance settings. * * @namespace Performance @@ -37,7 +37,7 @@ class PerformanceScriptingInterface : public QObject { public: - /**jsdoc + /*@jsdoc *

Graphics performance presets.

*
Disable entity click events for a short period.
* @@ -63,7 +63,7 @@ class PerformanceScriptingInterface : public QObject { }; Q_ENUM(PerformancePreset) - /**jsdoc + /*@jsdoc *

Refresh rate profile.

*
* @@ -93,21 +93,21 @@ class PerformanceScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Sets graphics performance to a preset. * @function Performance.setPerformancePreset * @param {Performance.PerformancePreset} performancePreset - The graphics performance preset to to use. */ void setPerformancePreset(PerformancePreset performancePreset); - /**jsdoc + /*@jsdoc * Gets the current graphics performance preset in use. * @function Performance.getPerformancePreset * @returns {Performance.PerformancePreset} The current graphics performance preset in use. */ PerformancePreset getPerformancePreset() const; - /**jsdoc + /*@jsdoc * Gets the names of the graphics performance presets. * @function Performance.getPerformancePresetNames * @returns {string[]} The names of the graphics performance presets. The array index values correspond to @@ -116,21 +116,21 @@ public slots: QStringList getPerformancePresetNames() const; - /**jsdoc + /*@jsdoc * Sets the curfrent refresh rate profile. * @function Performance.setRefreshRateProfile * @param {Performance.RefreshRateProfile} refreshRateProfile - The refresh rate profile. */ void setRefreshRateProfile(RefreshRateProfile refreshRateProfile); - /**jsdoc + /*@jsdoc * Gets the current refresh rate profile in use. * @function Performance.getRefreshRateProfile * @returns {Performance.RefreshRateProfile} The refresh rate profile. */ RefreshRateProfile getRefreshRateProfile() const; - /**jsdoc + /*@jsdoc * Gets the names of the refresh rate profiles. * @function Performance.getRefreshRateProfileNames * @returns {string[]} The names of the refresh rate profiles. The array index values correspond to @@ -139,7 +139,7 @@ public slots: QStringList getRefreshRateProfileNames() const; - /**jsdoc + /*@jsdoc * Gets the current target refresh rate, in Hz, per the current refresh rate profile and refresh rate regime if in desktop * mode; a higher rate if in VR mode. * @function Performance.getActiveRefreshRate @@ -147,14 +147,14 @@ public slots: */ int getActiveRefreshRate() const; - /**jsdoc + /*@jsdoc * Gets the current user experience mode. * @function Performance.getUXMode * @returns {UXMode} The current user experience mode. */ RefreshRateManager::UXMode getUXMode() const; - /**jsdoc + /*@jsdoc * Gets the current refresh rate regime that's in effect. * @function Performance.getRefreshRateRegime * @returns {RefreshRateRegime} The current refresh rate regime. @@ -163,7 +163,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when the performance preset or refresh rate profile is changed. * @function Performance.settingsChanged * @returns {Signal} diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h index 09c695ae0e8..8391c404d83 100644 --- a/interface/src/scripting/PlatformInfoScriptingInterface.h +++ b/interface/src/scripting/PlatformInfoScriptingInterface.h @@ -12,7 +12,7 @@ #include #include -/**jsdoc +/*@jsdoc * The PlatformInfo API provides information about the hardware platform being used. * * @namespace PlatformInfo @@ -29,7 +29,7 @@ class PlatformInfoScriptingInterface : public QObject { PlatformInfoScriptingInterface(); virtual ~PlatformInfoScriptingInterface(); - /**jsdoc + /*@jsdoc *

The platform tier of a computer is an indication of its rendering capability.

*
* @@ -54,13 +54,13 @@ class PlatformInfoScriptingInterface : public QObject { Q_ENUM(PlatformTier); public slots: - /**jsdoc + /*@jsdoc * @function PlatformInfo.getInstance * @deprecated This function is deprecated and will be removed. */ static PlatformInfoScriptingInterface* getInstance(); - /**jsdoc + /*@jsdoc * Gets the operating system type. * @function PlatformInfo.getOperatingSystemType * @returns {string} The operating system type: "WINDOWS", "MACOS", or "UNKNOWN". @@ -69,7 +69,7 @@ public slots: */ QString getOperatingSystemType(); - /**jsdoc + /*@jsdoc * Gets information on the CPU model. * @function PlatformInfo.getCPUBrand * @returns {string} Information on the CPU. @@ -78,7 +78,7 @@ public slots: */ QString getCPUBrand(); - /**jsdoc + /*@jsdoc * Gets the number of logical CPU cores. * @function PlatformInfo.getNumLogicalCores * @returns {number} The number of logical CPU cores. @@ -87,7 +87,7 @@ public slots: */ unsigned int getNumLogicalCores(); - /**jsdoc + /*@jsdoc * Gets the total amount of usable physical memory, in MB. * @function PlatformInfo.getTotalSystemMemoryMB * @returns {number} The total system memory in megabytes. @@ -96,7 +96,7 @@ public slots: */ int getTotalSystemMemoryMB(); - /**jsdoc + /*@jsdoc * Gets the model of the graphics card currently being used. * @function PlatformInfo.getGraphicsCardType * @returns {string} The model of the graphics card currently being used. @@ -107,21 +107,21 @@ public slots: */ QString getGraphicsCardType(); - /**jsdoc + /*@jsdoc * Checks whether Oculus Touch controllers are connected. * @function PlatformInfo.hasRiftControllers * @returns {boolean} true if Oculus Touch controllers are connected, false if they aren't. */ bool hasRiftControllers(); - /**jsdoc + /*@jsdoc * Checks whether Vive controllers are connected. * @function PlatformInfo.hasViveControllers * @returns {boolean} true if Vive controllers are connected, false if they aren't. */ bool hasViveControllers(); - /**jsdoc + /*@jsdoc * Checks whether HTML on 3D surfaces (e.g., Web entities) is supported. * @function PlatformInfo.has3DHTML * @returns {boolean} true if the current display supports HTML on 3D surfaces, false if it @@ -129,28 +129,28 @@ public slots: */ bool has3DHTML(); - /**jsdoc + /*@jsdoc * Checks whether Interface is running on a stand-alone HMD device (CPU incorporated into the HMD display). * @function PlatformInfo.isStandalone * @returns {boolean} true if Interface is running on a stand-alone HMD device, false if it isn't. */ bool isStandalone(); - /**jsdoc + /*@jsdoc * Gets the number of CPUs. * @function PlatformInfo.getNumCPUs * @returns {number} The number of CPUs. */ int getNumCPUs(); - /**jsdoc + /*@jsdoc * Gets the index number of the master CPU. * @function PlatformInfo.getMasterCPU * @returns {number} The index of the master CPU. */ int getMasterCPU(); - /**jsdoc + /*@jsdoc * Gets the platform description of a CPU. * @function PlatformInfo.getCPU * @param {number} index - The index number of the CPU. @@ -165,21 +165,21 @@ public slots: */ QString getCPU(int index); - /**jsdoc + /*@jsdoc * Gets the number of GPUs. * @function PlatformInfo.getNumGPUs * @returns {number} The number of GPUs. */ int getNumGPUs(); - /**jsdoc + /*@jsdoc * Gets the index number of the master GPU. * @function PlatformInfo.getMasterGPU * @returns {number} The index of the master GPU. */ int getMasterGPU(); - /**jsdoc + /*@jsdoc * Gets the platform description of a GPU. * @param {number} index - The index number of the GPU. * @function PlatformInfo.getGPU @@ -194,21 +194,21 @@ public slots: */ QString getGPU(int index); - /**jsdoc + /*@jsdoc * Gets the number of displays. * @function PlatformInfo.getNumDisplays * @returns {number} The number of displays. */ int getNumDisplays(); - /**jsdoc + /*@jsdoc * Gets the index number of the master display. * @function PlatformInfo.getMasterDisplay * @returns {number} The index of the master display. */ int getMasterDisplay(); - /**jsdoc + /*@jsdoc * Gets the platform description of a display. * @param {number} index - The index number of the display. * @function PlatformInfo.getDisplay @@ -223,7 +223,7 @@ public slots: */ QString getDisplay(int index); - /**jsdoc + /*@jsdoc * Gets the platform description of computer memory. * @function PlatformInfo.getMemory * @returns {string} The computer's {@link PlatformInfo.MemoryDescription|MemoryDescription} information as a JSON string. @@ -232,21 +232,21 @@ public slots: */ QString getMemory(); - /**jsdoc + /*@jsdoc * Gets the platform description of the computer. * @function PlatformInfo.getComputer * @returns {string} The {@link PlatformInfo.ComputerDescription|ComputerDescription} information as a JSON string. */ QString getComputer(); - /**jsdoc + /*@jsdoc * Gets the complete description of the computer as a whole. * @function PlatformInfo.getPlatform * @returns {string} The {@link PlatformInfo.PlatformDescription|PlatformDescription} information as a JSON string. */ QString getPlatform(); - /**jsdoc + /*@jsdoc * Gets the platform tier of the computer, profiled at Interface start-up. * @function PlatformInfo.getTierProfiled * @returns {PlatformInfo.PlatformTier} The platform tier of the computer. @@ -257,14 +257,14 @@ public slots: */ PlatformTier getTierProfiled(); - /**jsdoc + /*@jsdoc * Gets the names of the possible platform tiers, per {@link PlatformInfo.PlatformTier}. * @function PlatformInfo.getPlatformTierNames * @returns {string[]} The names of the possible platform tiers. */ QStringList getPlatformTierNames(); - /**jsdoc + /*@jsdoc * Gets whether the current hardware can use deferred rendering. * @function PlatformInfo.isRenderMethodDeferredCapable * @returns {boolean} true if the current hardware can use deferred rendering, false if it can't. diff --git a/interface/src/scripting/RatesScriptingInterface.h b/interface/src/scripting/RatesScriptingInterface.h index 6feef94d174..3ac6dd3191a 100644 --- a/interface/src/scripting/RatesScriptingInterface.h +++ b/interface/src/scripting/RatesScriptingInterface.h @@ -14,7 +14,7 @@ #include -/**jsdoc +/*@jsdoc * The Rates API provides some information on current rendering performance. * * @namespace Rates diff --git a/interface/src/scripting/RenderScriptingInterface.h b/interface/src/scripting/RenderScriptingInterface.h index 1c2443144a1..97b736259bd 100644 --- a/interface/src/scripting/RenderScriptingInterface.h +++ b/interface/src/scripting/RenderScriptingInterface.h @@ -14,7 +14,7 @@ #include "RenderForward.h" -/**jsdoc +/*@jsdoc * The Render API enables you to configure the graphics engine. * * @namespace Render @@ -43,7 +43,7 @@ class RenderScriptingInterface : public QObject { static RenderScriptingInterface* getInstance(); - /**jsdoc + /*@jsdoc *

The rendering method is specified by the following values:

*
* @@ -73,7 +73,7 @@ class RenderScriptingInterface : public QObject { void loadSettings(); public slots: - /**jsdoc + /*@jsdoc * Gets the configuration for a rendering job by name. *

Warning: For internal, debugging purposes. Subject to change.

* @function Render.getConfig @@ -83,7 +83,7 @@ public slots: QObject* getConfig(const QString& name) { return qApp->getRenderEngine()->getConfiguration()->getConfig(name); } - /**jsdoc + /*@jsdoc * Gets the render method being used. * @function Render.getRenderMethod * @returns {Render.RenderMethod} The render method being used. @@ -93,14 +93,14 @@ public slots: */ RenderMethod getRenderMethod() const; - /**jsdoc + /*@jsdoc * Sets the render method to use. * @function Render.setRenderMethod * @param {Render.RenderMethod} renderMethod - The render method to use. */ void setRenderMethod(RenderMethod renderMethod); - /**jsdoc + /*@jsdoc * Gets the names of the possible render methods, per {@link Render.RenderMethod}. * @function Render.getRenderMethodNames * @returns {string[]} The names of the possible render methods. @@ -114,56 +114,56 @@ public slots: QStringList getRenderMethodNames() const; - /**jsdoc + /*@jsdoc * Gets whether or not shadows are enabled. * @function Render.getShadowsEnabled * @returns {boolean} true if shadows are enabled, false if they're disabled. */ bool getShadowsEnabled() const; - /**jsdoc + /*@jsdoc * Sets whether or not shadows are enabled. * @function Render.setShadowsEnabled * @param {boolean} enabled - true to enable shadows, false to disable. */ void setShadowsEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets whether or not ambient occlusion is enabled. * @function Render.getAmbientOcclusionEnabled * @returns {boolean} true if ambient occlusion is enabled, false if it's disabled. */ bool getAmbientOcclusionEnabled() const; - /**jsdoc + /*@jsdoc * Sets whether or not ambient occlusion is enabled. * @function Render.setAmbientOcclusionEnabled * @param {boolean} enabled - true to enable ambient occlusion, false to disable. */ void setAmbientOcclusionEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets whether or not anti-aliasing is enabled. * @function Render.getAntialiasingEnabled * @returns {boolean} true if anti-aliasing is enabled, false if it's disabled. */ bool getAntialiasingEnabled() const; - /**jsdoc + /*@jsdoc * Sets whether or not anti-aliasing is enabled. * @function Render.setAntialiasingEnabled * @param {boolean} enabled - true to enable anti-aliasing, false to disable. */ void setAntialiasingEnabled(bool enabled); - /**jsdoc + /*@jsdoc * Gets the view port resolution scale. * @function Render.getViewportResolutionScale * @returns {number} The view port resolution scale, > 0.0. */ float getViewportResolutionScale() const; - /**jsdoc + /*@jsdoc * Sets the view port resolution scale. * @function Render.setViewportResolutionScale * @param {number} resolutionScale - The view port resolution scale to set, > 0.0. @@ -172,7 +172,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when one of the Render API's properties changes. * @function Render.settingsChanged * @returns {Signal} diff --git a/interface/src/scripting/SelectionScriptingInterface.cpp b/interface/src/scripting/SelectionScriptingInterface.cpp index 32f837668dd..b56c109b958 100644 --- a/interface/src/scripting/SelectionScriptingInterface.cpp +++ b/interface/src/scripting/SelectionScriptingInterface.cpp @@ -43,7 +43,7 @@ bool GameplayObjects::removeFromGameplayObjects(const EntityItemID& entityID) { SelectionScriptingInterface::SelectionScriptingInterface() { } -/**jsdoc +/*@jsdoc *

The type of a specific item in a selection list.

*
* @@ -245,7 +245,7 @@ void SelectionScriptingInterface::printList(const QString& listName) { } } -/**jsdoc +/*@jsdoc * A selection list. * @typedef {object} Selection.SelectedItemsList * @property {Uuid[]} avatars - The IDs of the avatars in the selection list. @@ -439,7 +439,7 @@ bool SelectionHighlightStyle::fromVariantMap(const QVariantMap& properties) { return true; } -/**jsdoc +/*@jsdoc * The highlighting style of a selection list. * @typedef {object} Selection.HighlightStyle * @property {Color} outlineUnoccludedColor=255,178,51 - Unoccluded outline color. diff --git a/interface/src/scripting/SelectionScriptingInterface.h b/interface/src/scripting/SelectionScriptingInterface.h index f477a25b42e..f13d8d24271 100644 --- a/interface/src/scripting/SelectionScriptingInterface.h +++ b/interface/src/scripting/SelectionScriptingInterface.h @@ -76,7 +76,7 @@ class SelectionHighlightStyle { render::HighlightStyle _style; }; -/**jsdoc +/*@jsdoc * The Selection API provides a means of grouping together and highlighting avatars and entities in named lists. * * @namespace Selection @@ -124,7 +124,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { public: SelectionScriptingInterface(); - /**jsdoc + /*@jsdoc * Gets the names of all current selection lists. * @function Selection.getListNames * @returns {string[]} The names of all current selection lists. @@ -133,7 +133,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QStringList getListNames() const; - /**jsdoc + /*@jsdoc * Deletes a selection list. * @function Selection.removeListFromMap * @param {string} listName - The name of the selection list to delete. @@ -141,7 +141,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool removeListFromMap(const QString& listName); - /**jsdoc + /*@jsdoc * Adds an item to a selection list. The list is created if it doesn't exist. * @function Selection.addToSelectedItemsList * @param {string} listName - The name of the selection list to add the item to. @@ -152,7 +152,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool addToSelectedItemsList(const QString& listName, const QString& itemType, const QUuid& id); - /**jsdoc + /*@jsdoc * Removes an item from a selection list. * @function Selection.removeFromSelectedItemsList * @param {string} listName - The name of the selection list to remove the item from. @@ -163,7 +163,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool removeFromSelectedItemsList(const QString& listName, const QString& itemType, const QUuid& id); - /**jsdoc + /*@jsdoc * Removes all items from a selection list. * @function Selection.clearSelectedItemsList * @param {string} listName - The name of the selection list. @@ -171,14 +171,14 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool clearSelectedItemsList(const QString& listName); - /**jsdoc + /*@jsdoc * Prints the list of avatars and entities in a selection to the program log (but not the Script Log window). * @function Selection.printList * @param {string} listName - The name of the selection list. */ Q_INVOKABLE void printList(const QString& listName); - /**jsdoc + /*@jsdoc * Gets the list of avatars and entities in a selection list. * @function Selection.getSelectedItemsList * @param {string} listName - The name of the selection list. @@ -186,14 +186,14 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE QVariantMap getSelectedItemsList(const QString& listName) const; - /**jsdoc + /*@jsdoc * Gets the names of all current selection lists that have highlighting enabled. * @function Selection.getHighlightedListNames * @returns {string[]} The names of the selection lists that currently have highlighting enabled. */ Q_INVOKABLE QStringList getHighlightedListNames() const; - /**jsdoc + /*@jsdoc * Enables highlighting for a selection list. All items in or subsequently added to the list are displayed with the * highlight effect specified. The method can be called multiple times with different values in the style to modify the * highlighting. @@ -205,7 +205,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool enableListHighlight(const QString& listName, const QVariantMap& highlightStyle); - /**jsdoc + /*@jsdoc * Disables highlighting for a selection list. *

Note: This function implicitly calls {@link Selection.disableListToScene|disableListToScene}.

* @function Selection.disableListHighlight @@ -214,7 +214,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool disableListHighlight(const QString& listName); - /**jsdoc + /*@jsdoc * Enables scene selection for a selection list. All items in or subsequently added to the list are sent to a scene * selection in the rendering engine for debugging purposes. * @function Selection.enableListToScene @@ -223,7 +223,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool enableListToScene(const QString& listName); - /**jsdoc + /*@jsdoc * Disables scene selection for a selection list. * @function Selection.disableListToScene * @param {string} listName - The name of the selection list. @@ -231,7 +231,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool disableListToScene(const QString& listName); - /**jsdoc + /*@jsdoc * Gets the current highlighting style for a selection list. * @function Selection.getListHighlightStyle * @param {string} listName - The name of the selection list. @@ -248,7 +248,7 @@ class SelectionScriptingInterface : public QObject, public Dependency { void onSelectedItemsListChanged(const QString& listName); signals: - /**jsdoc + /*@jsdoc * Triggered when a selection list's content changes or the list is deleted. * @function Selection.selectedItemsListChanged * @param {string} listName - The name of the selection list that changed. diff --git a/interface/src/scripting/SettingsScriptingInterface.h b/interface/src/scripting/SettingsScriptingInterface.h index f321c41e76a..c51161b6423 100644 --- a/interface/src/scripting/SettingsScriptingInterface.h +++ b/interface/src/scripting/SettingsScriptingInterface.h @@ -15,7 +15,7 @@ #include #include -/**jsdoc +/*@jsdoc * The Settings API provides a facility to store and retrieve values that persist between Interface runs. * * @namespace Settings @@ -32,7 +32,7 @@ class SettingsScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Retrieves the value from a named setting. * @function Settings.getValue * @param {string} key - The name of the setting. @@ -49,7 +49,7 @@ public slots: QVariant getValue(const QString& setting); QVariant getValue(const QString& setting, const QVariant& defaultValue); - /**jsdoc + /*@jsdoc * Stores a value in a named setting. If the setting already exists, its value is overwritten. If the value is * null or undefined, the setting is deleted. * @function Settings.setValue diff --git a/interface/src/scripting/TestScriptingInterface.h b/interface/src/scripting/TestScriptingInterface.h index d7c501d705f..2bc2092396a 100644 --- a/interface/src/scripting/TestScriptingInterface.h +++ b/interface/src/scripting/TestScriptingInterface.h @@ -27,64 +27,64 @@ class TestScriptingInterface : public QObject { public slots: static TestScriptingInterface* getInstance(); - /**jsdoc + /*@jsdoc * Exits the application * @function Test.quit */ void quit(); - /**jsdoc + /*@jsdoc * Waits for all texture transfers to be complete * @function Test.waitForTextureIdle */ void waitForTextureIdle(); - /**jsdoc + /*@jsdoc * Waits for all pending downloads to be complete * @function Test.waitForDownloadIdle */ void waitForDownloadIdle(); - /**jsdoc + /*@jsdoc * Waits for all file parsing operations to be complete * @function Test.waitForProcessingIdle */ void waitForProcessingIdle(); - /**jsdoc + /*@jsdoc * Waits for all pending downloads, parsing and texture transfers to be complete * @function Test.waitIdle */ void waitIdle(); - /**jsdoc + /*@jsdoc * Waits for establishment of connection to server * @function Test.waitForConnection * @param {int} maxWaitMs [default=10000] - Number of milliseconds to wait */ bool waitForConnection(qint64 maxWaitMs = 10000); - /**jsdoc + /*@jsdoc * Waits a specific number of milliseconds * @function Test.wait * @param {int} milliseconds - Number of milliseconds to wait */ void wait(int milliseconds); - /**jsdoc + /*@jsdoc * Waits for all pending downloads, parsing and texture transfers to be complete * @function Test.loadTestScene * @param {string} sceneFile - URL of scene to load */ bool loadTestScene(QString sceneFile); - /**jsdoc + /*@jsdoc * Clears all caches * @function Test.clear */ void clear(); - /**jsdoc + /*@jsdoc * Start recording Chrome compatible tracing events * logRules can be used to specify a set of logging category rules to limit what gets captured * @function Test.startTracing @@ -92,7 +92,7 @@ public slots: */ bool startTracing(QString logrules = ""); - /**jsdoc + /*@jsdoc * Stop recording Chrome compatible tracing events and serialize recorded events to a file * Using a filename with a .gz extension will automatically compress the output file * @function Test.stopTracing @@ -101,14 +101,14 @@ public slots: */ bool stopTracing(QString filename); - /**jsdoc + /*@jsdoc * Starts a specific trace event * @function Test.startTraceEvent * @param {string} name - Name of event */ void startTraceEvent(QString name); - /**jsdoc + /*@jsdoc * Stop a specific name event * Using a filename with a .gz extension will automatically compress the output file * @function Test.endTraceEvent @@ -116,14 +116,14 @@ public slots: */ void endTraceEvent(QString name); - /**jsdoc + /*@jsdoc * Write detailed timing stats of next physics stepSimulation() to filename * @function Test.savePhysicsSimulationStats * @param {string} filename - Name of file to save to */ void savePhysicsSimulationStats(QString filename); - /**jsdoc + /*@jsdoc * Profiles a specific function * @function Test.savePhysicsSimulationStats * @param {string} name - Name used to reference the function @@ -131,13 +131,13 @@ public slots: */ Q_INVOKABLE void profileRange(const QString& name, ScriptValuePointer function); - /**jsdoc + /*@jsdoc * Clear all caches (menu command Reload Content) * @function Test.clearCaches */ void clearCaches(); - /**jsdoc + /*@jsdoc * Save a JSON object to a file in the test results location * @function Test.saveObject * @param {string} name - Name of the object @@ -145,34 +145,34 @@ public slots: */ void saveObject(QVariant v, const QString& filename); - /**jsdoc + /*@jsdoc * Maximizes the window * @function Test.showMaximized */ void showMaximized(); - /**jsdoc + /*@jsdoc * Values higher than 0 will create replicas of other-avatars when entering a domain for testing purpouses * @function Test.setOtherAvatarsReplicaCount * @param {number} count - Number of replicas we want to create */ Q_INVOKABLE void setOtherAvatarsReplicaCount(int count); - /**jsdoc + /*@jsdoc * Return the number of replicas that are being created of other-avatars when entering a domain * @function Test.getOtherAvatarsReplicaCount * @returns {number} Current number of replicas of other-avatars. */ Q_INVOKABLE int getOtherAvatarsReplicaCount(); - /**jsdoc + /*@jsdoc * Set number of cycles texture size is required to be stable * @function Test.setMinimumGPUTextureMemStabilityCount * @param {number} count - Number of cycles to wait */ Q_INVOKABLE void setMinimumGPUTextureMemStabilityCount(int count); - /**jsdoc + /*@jsdoc * Check whether all textures have been loaded. * @function Test.isTextureLoadingComplete * @returns {boolean} true texture memory usage is not increasing diff --git a/interface/src/scripting/WalletScriptingInterface.h b/interface/src/scripting/WalletScriptingInterface.h index 849caa8427a..12c8dd6fc91 100644 --- a/interface/src/scripting/WalletScriptingInterface.h +++ b/interface/src/scripting/WalletScriptingInterface.h @@ -29,7 +29,7 @@ class CheckoutProxy : public QmlWrapper { CheckoutProxy(QObject* qmlObject, QObject* parent = nullptr); }; -/**jsdoc +/*@jsdoc * The WalletScriptingInterface API provides functions related to the user's wallet and verification of certified * avatar entities. * @@ -54,13 +54,13 @@ class WalletScriptingInterface : public QObject, public Dependency { WalletScriptingInterface(); - /**jsdoc + /*@jsdoc * Checks and updates the user's wallet status. * @function WalletScriptingInterface.refreshWalletStatus */ Q_INVOKABLE void refreshWalletStatus(); - /**jsdoc + /*@jsdoc * Gets the current status of the user's wallet. * @function WalletScriptingInterface.getWalletStatus * @returns {WalletScriptingInterface.WalletStatus} @@ -70,7 +70,7 @@ class WalletScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE uint getWalletStatus() { return _walletStatus; } - /**jsdoc + /*@jsdoc * Check that a certified avatar entity is owned by the avatar whose entity it is. The result of the check is provided via * the {@link WalletScriptingInterface.ownershipVerificationSuccess|ownershipVerificationSuccess} and * {@link WalletScriptingInterface.ownershipVerificationFailed|ownershipVerificationFailed} signals. @@ -117,7 +117,7 @@ class WalletScriptingInterface : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when the user's wallet status changes. * @function WalletScriptingInterface.walletStatusChanged * @returns {Signal} @@ -128,14 +128,14 @@ class WalletScriptingInterface : public QObject, public Dependency { */ void walletStatusChanged(); - /**jsdoc + /*@jsdoc * Triggered when the user's limited commerce status changes. * @function WalletScriptingInterface.limitedCommerceChanged * @returns {Signal} */ void limitedCommerceChanged(); - /**jsdoc + /*@jsdoc * Triggered when the user rezzes a certified entity but the user's wallet is not ready. So the certified location of the * entity cannot be updated in the metaverse. * @function WalletScriptingInterface.walletNotSetup @@ -143,7 +143,7 @@ class WalletScriptingInterface : public QObject, public Dependency { */ void walletNotSetup(); - /**jsdoc + /*@jsdoc * Triggered when a certified avatar entity's ownership check requested via * {@link WalletScriptingInterface.proveAvatarEntityOwnershipVerification|proveAvatarEntityOwnershipVerification} or * {@link ContextOverlay.requestOwnershipVerification} succeeds. @@ -153,7 +153,7 @@ class WalletScriptingInterface : public QObject, public Dependency { */ void ownershipVerificationSuccess(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Triggered when a certified avatar entity's ownership check requested via * {@link WalletScriptingInterface.proveAvatarEntityOwnershipVerification|proveAvatarEntityOwnershipVerification} or * {@link ContextOverlay.requestOwnershipVerification} fails. diff --git a/interface/src/scripting/WindowScriptingInterface.cpp b/interface/src/scripting/WindowScriptingInterface.cpp index 2ba394b1f6f..e9dac455c99 100644 --- a/interface/src/scripting/WindowScriptingInterface.cpp +++ b/interface/src/scripting/WindowScriptingInterface.cpp @@ -518,7 +518,7 @@ int WindowScriptingInterface::openMessageBox(QString title, QString text, int bu return createMessageBox(title, text, buttons, defaultButton); } -/**jsdoc +/*@jsdoc *

The buttons that may be included in a message box created by {@link Window.openMessageBox|openMessageBox} are defined by * numeric values: *

diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index aec9b4a7dc8..418869519f6 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -27,7 +27,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Window API provides various facilities not covered elsewhere, including: window dimensions, window focus, * camera view, announcements, user connections, common dialog boxes, snapshots, file import, domain navigation, domain changes, * domain physics, OS clipboard, build number. @@ -69,27 +69,27 @@ class WindowScriptingInterface : public QObject, protected Scriptable, public De public slots: - /**jsdoc + /*@jsdoc * Checks whether the Interface window has focus. * @function Window.hasFocus * @returns {boolean} true if the Interface window has focus, false if it doesn't. */ ScriptValuePointer hasFocus(); - /**jsdoc + /*@jsdoc * Makes the Interface window have focus. On Windows, if Interface doesn't already have focus, the task bar icon flashes to * indicate that Interface wants attention but focus isn't taken away from the application that the user is using. * @function Window.setFocus */ void setFocus(); - /**jsdoc + /*@jsdoc * Raises the Interface window if it is minimized. If raised, the window gains focus. * @function Window.raise */ void raise(); - /**jsdoc + /*@jsdoc * Displays a dialog with the specified message and an "OK" button. The dialog is non-modal; the script continues without * waiting for a user response. * @function Window.alert @@ -100,7 +100,7 @@ public slots: */ void alert(const QString& message = ""); - /**jsdoc + /*@jsdoc * Prompts the user to confirm something. Displays a modal dialog with a message plus "Yes" and "No" buttons. * @function Window.confirm * @param {string} [message=""] - The question to display. @@ -111,7 +111,7 @@ public slots: */ ScriptValuePointer confirm(const QString& message = ""); - /**jsdoc + /*@jsdoc * Prompts the user to enter some text. Displays a modal dialog with a message and a text box, plus "OK" and "Cancel" * buttons. * @function Window.prompt @@ -128,7 +128,7 @@ public slots: */ ScriptValuePointer prompt(const QString& message, const QString& defaultText); - /**jsdoc + /*@jsdoc * Prompts the user to enter some text. Displays a non-modal dialog with a message and a text box, plus "OK" and "Cancel" * buttons. A {@link Window.promptTextChanged|promptTextChanged} signal is emitted when the user OKs the dialog; no signal * is emitted if the user cancels the dialog. @@ -146,7 +146,7 @@ public slots: */ void promptAsync(const QString& message = "", const QString& defaultText = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose a directory. Displays a modal dialog that navigates the directory tree. * @function Window.browseDir * @param {string} [title=""] - The title to display at the top of the dialog. @@ -158,7 +158,7 @@ public slots: */ ScriptValuePointer browseDir(const QString& title = "", const QString& directory = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose a directory. Displays a non-modal dialog that navigates the directory tree. A * {@link Window.browseDirChanged|browseDirChanged} signal is emitted when a directory is chosen; no signal is emitted if * the user cancels the dialog. @@ -176,7 +176,7 @@ public slots: */ void browseDirAsync(const QString& title = "", const QString& directory = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose a file. Displays a modal dialog that navigates the directory tree. * @function Window.browse * @param {string} [title=""] - The title to display at the top of the dialog. @@ -190,7 +190,7 @@ public slots: */ ScriptValuePointer browse(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose a file. Displays a non-modal dialog that navigates the directory tree. A * {@link Window.browseChanged|browseChanged} signal is emitted when a file is chosen; no signal is emitted if the user * cancels the dialog. @@ -210,7 +210,7 @@ public slots: */ void browseAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Prompts the user to specify the path and name of a file to save to. Displays a modal dialog that navigates the directory * tree and allows the user to type in a file name. * @function Window.save @@ -226,7 +226,7 @@ public slots: */ ScriptValuePointer save(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Prompts the user to specify the path and name of a file to save to. Displays a non-modal dialog that navigates the * directory tree and allows the user to type in a file name. A {@link Window.saveFileChanged|saveFileChanged} signal is * emitted when a file is specified; no signal is emitted if the user cancels the dialog. @@ -246,7 +246,7 @@ public slots: */ void saveAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose an Asset Server item. Displays a modal dialog that navigates the tree of assets on the Asset * Server. * @function Window.browseAssets @@ -261,7 +261,7 @@ public slots: */ ScriptValuePointer browseAssets(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Prompts the user to choose an Asset Server item. Displays a non-modal dialog that navigates the tree of assets on the * Asset Server. An {@link Window.assetsDirChanged|assetsDirChanged} signal is emitted when an asset is chosen; no signal is * emitted if the user cancels the dialog. @@ -281,7 +281,7 @@ public slots: */ void browseAssetsAsync(const QString& title = "", const QString& directory = "", const QString& nameFilter = ""); - /**jsdoc + /*@jsdoc * Opens the Asset Browser dialog. If a file to upload is specified, the user is prompted to enter the folder and name to * map the file to on the asset server. * @function Window.showAssetServer @@ -293,35 +293,35 @@ public slots: */ void showAssetServer(const QString& upload = ""); - /**jsdoc + /*@jsdoc * Gets Interface's build number. * @function Window.checkVersion * @returns {string} Interface's build number. */ QString checkVersion(); - /**jsdoc + /*@jsdoc * Gets Interface's user agent. * @function Window.getUserAgent * @returns {string} Interface's user agent. */ QString getUserAgent(); - /**jsdoc + /*@jsdoc * Gets the signature for Interface's protocol version. * @function Window.protocolSignature * @returns {string} A string uniquely identifying the version of the metaverse protocol that Interface is using. */ QString protocolSignature(); - /**jsdoc + /*@jsdoc * Copies text to the operating system's clipboard. * @function Window.copyToClipboard * @param {string} text - The text to copy to the operating system's clipboard. */ void copyToClipboard(const QString& text); - /**jsdoc + /*@jsdoc * Takes a snapshot of the current Interface view from the primary camera. When a still image only is captured, * {@link Window.stillSnapshotTaken|stillSnapshotTaken} is emitted; when a still image plus moving images are captured, * {@link Window.processingGifStarted|processingGifStarted} and {@link Window.processingGifCompleted|processingGifCompleted} @@ -369,7 +369,7 @@ public slots: */ void takeSnapshot(bool notify = true, bool includeAnimated = false, float aspectRatio = 0.0f, const QString& filename = QString()); - /**jsdoc + /*@jsdoc * Takes a still snapshot of the current view from the secondary camera that can be set up through the {@link Render} API. *

Snapshots are saved to the path specified in Settings > General > Snapshots, which can be accessed via the * {@link Snapshot} API.

@@ -384,7 +384,7 @@ public slots: */ void takeSecondaryCameraSnapshot(const bool& notify = true, const QString& filename = QString()); - /**jsdoc + /*@jsdoc * Takes a 360° snapshot at a given position for the secondary camera. The secondary camera does not need to have been * set up. *

Snapshots are saved to the path specified in Settings > General > Snapshots, which can be accessed via the @@ -403,7 +403,7 @@ public slots: */ void takeSecondaryCamera360Snapshot(const glm::vec3& cameraPosition, const bool& cubemapOutputFormat = false, const bool& notify = true, const QString& filename = QString()); - /**jsdoc + /*@jsdoc * Emits a {@link Window.connectionAdded|connectionAdded} or a {@link Window.connectionError|connectionError} signal that * indicates whether or not a user connection was successfully made using the Web API. * @function Window.makeConnection @@ -413,7 +413,7 @@ public slots: */ void makeConnection(bool success, const QString& userNameOrError); - /**jsdoc + /*@jsdoc * Displays a notification message. Notifications are displayed in panels by the default script, nofications.js. An * {@link Window.announcement|announcement} signal is emitted when this function is called. * @function Window.displayAnnouncement @@ -429,7 +429,7 @@ public slots: */ void displayAnnouncement(const QString& message); - /**jsdoc + /*@jsdoc * Prepares a snapshot ready for sharing. A {@link Window.snapshotShared|snapshotShared} signal is emitted when the snapshot * has been prepared. * @function Window.shareSnapshot @@ -438,7 +438,7 @@ public slots: */ void shareSnapshot(const QString& path, const QUrl& href = QUrl("")); - /**jsdoc + /*@jsdoc * Checks to see if physics is active for you in the domain you're visiting - there is a delay between your arrival at a * domain and physics becoming active for you in that domain. * @function Window.isPhysicsEnabled @@ -461,7 +461,7 @@ public slots: */ bool isPhysicsEnabled(); - /**jsdoc + /*@jsdoc * Sets what to show on the PC display. For entity camera view, the entity camera is configured using * {@link Camera.setCameraEntity} and {@link Camera|Camera.mode}. * @function Window.setDisplayTexture @@ -470,7 +470,7 @@ public slots: */ bool setDisplayTexture(const QString& name); - /**jsdoc + /*@jsdoc * Checks if a 2D point is within the desktop window if in desktop mode, or the drawable area of the HUD overlay if in HMD * mode. * @function Window.isPointOnDesktopWindow @@ -479,21 +479,21 @@ public slots: */ bool isPointOnDesktopWindow(QVariant point); - /**jsdoc + /*@jsdoc * Gets the size of the drawable area of the Interface window if in desktop mode or the HMD rendering surface if in HMD mode. * @function Window.getDeviceSize * @returns {Vec2} The width and height of the Interface window or HMD rendering surface, in pixels. */ glm::vec2 getDeviceSize() const; - /**jsdoc + /*@jsdoc * Gets the last domain connection error when a connection is refused. * @function Window.getLastDomainConnectionError * @returns {Window.ConnectionRefusedReason} Integer number that enumerates the last domain connection refused. */ int getLastDomainConnectionError() const; - /**jsdoc + /*@jsdoc * Opens a non-modal message box that can have a variety of button combinations. See also, * {@link Window.updateMessageBox|updateMessageBox} and {@link Window.closeMessageBox|closeMessageBox}. * @function Window.openMessageBox @@ -525,7 +525,7 @@ public slots: */ int openMessageBox(QString title, QString text, int buttons, int defaultButton); - /**jsdoc + /*@jsdoc * Opens a URL in the Interface window or other application, depending on the URL's scheme. The following schemes are * supported: *

    @@ -539,7 +539,7 @@ public slots: */ void openUrl(const QUrl& url); - /**jsdoc + /*@jsdoc * Opens an Android activity and optionally return back to the scene when the activity is completed. Android only. * @function Window.openAndroidActivity * @param {string} activityName - The name of the activity to open: one of "Home", "Login", or @@ -549,7 +549,7 @@ public slots: */ void openAndroidActivity(const QString& activityName, const bool backToScene); - /**jsdoc + /*@jsdoc * Updates the content of a message box that was opened with {@link Window.openMessageBox|openMessageBox}. * @function Window.updateMessageBox * @param {number} id - The ID of the message box. @@ -561,28 +561,28 @@ public slots: */ void updateMessageBox(int id, QString title, QString text, int buttons, int defaultButton); - /**jsdoc + /*@jsdoc * Closes a message box that was opened with {@link Window.openMessageBox|openMessageBox}. * @function Window.closeMessageBox * @param {number} id - The ID of the message box. */ void closeMessageBox(int id); - /**jsdoc + /*@jsdoc * @function Window.domainLoadingProgress * @returns {number} Progress. * @deprecated This function is deprecated and will be removed. */ float domainLoadingProgress(); - /**jsdoc + /*@jsdoc * Gets the number of display plugins currently available. * @function Window.getDisplayPluginCount * @returns {number} The number of display plugins currently available. */ int getDisplayPluginCount(); - /**jsdoc + /*@jsdoc * Gets the name of a display plugin. * @function Window.getDisplayPluginName * @param {number} index - The index of the display plugin. Must be less than the value returned by @@ -595,7 +595,7 @@ public slots: */ QString getDisplayPluginName(int index); - /**jsdoc + /*@jsdoc * Checks whether a display plugin is an HMD. * @function Window.isDisplayPluginHmd * @param {number} index - The index of the display plugin. Must be less than the value returned by @@ -604,7 +604,7 @@ public slots: */ bool isDisplayPluginHmd(int index); - /**jsdoc + /*@jsdoc * Gets the index of the currently active display plugin. * @function Window.getActiveDisplayPlugin * @returns {number} The index of the currently active display plugin. The first display plugin has an index of @@ -612,7 +612,7 @@ public slots: */ int getActiveDisplayPlugin(); - /**jsdoc + /*@jsdoc * Sets the currently active display plugin. * @function Window.setActiveDisplayPlugin * @param {number} index - The index of the display plugin. Must be less than the value returned by @@ -620,7 +620,7 @@ public slots: */ void setActiveDisplayPlugin(int index); - /**jsdoc + /*@jsdoc * Opens an Interface web browser window. * @function Window.openWebBrowser * @param {string} [url=""] - The URL of the web page to display. @@ -635,7 +635,7 @@ private slots: signals: - /**jsdoc + /*@jsdoc * 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 @@ -650,7 +650,7 @@ private slots: */ void domainChanged(QUrl domainURL); - /**jsdoc + /*@jsdoc * Triggered when you try to navigate to a *.json, *.svo, or *.svo.json URL in a Web browser within Interface. * @function Window.svoImportRequested * @param {string} url - The URL of the file to import. @@ -658,7 +658,7 @@ private slots: */ void svoImportRequested(const QString& url); - /**jsdoc + /*@jsdoc * Triggered when you try to visit a domain but are refused connection. * @function Window.domainConnectionRefused * @param {string} reasonMessage - A description of the refusal. @@ -668,7 +668,7 @@ private slots: */ void domainConnectionRefused(const QString& reasonMessage, int reasonCode, const QString& extraInfo); - /**jsdoc + /*@jsdoc * Triggered when you try to visit a domain but are redirected into the error state. * @function Window.redirectErrorStateChanged * @param {boolean} isInErrorState - true if the user has been redirected to the error URL, false @@ -677,7 +677,7 @@ private slots: */ void redirectErrorStateChanged(bool isInErrorState); - /**jsdoc + /*@jsdoc * Triggered when the interstitial mode changes. * @function Window.interstitialModeChanged * @param {boolean} interstitialMode - true if the interstitial graphics are displayed when the domain is @@ -686,7 +686,7 @@ private slots: */ void interstitialModeChanged(bool interstitialMode); - /**jsdoc + /*@jsdoc * Triggered when a still snapshot has been taken by calling {@link Window.takeSnapshot|takeSnapshot} with * includeAnimated = false or {@link Window.takeSecondaryCameraSnapshot|takeSecondaryCameraSnapshot}. * @function Window.stillSnapshotTaken @@ -697,7 +697,7 @@ private slots: */ void stillSnapshotTaken(const QString& pathStillSnapshot, bool notify); - /**jsdoc + /*@jsdoc * Triggered when a still 360° snapshot has been taken by calling * {@link Window.takeSecondaryCamera360Snapshot|takeSecondaryCamera360Snapshot}. * @function Window.snapshot360Taken @@ -708,7 +708,7 @@ private slots: */ void snapshot360Taken(const QString& path360Snapshot, bool notify); - /**jsdoc + /*@jsdoc * Triggered when a snapshot submitted via {@link Window.shareSnapshot|shareSnapshot} is ready for sharing. The snapshot * may then be shared via the {@link Account.metaverseServerURL} Web API. * @function Window.snapshotShared @@ -719,7 +719,7 @@ private slots: */ void snapshotShared(bool isError, const QString& reply); - /**jsdoc + /*@jsdoc * Triggered when the snapshot images have been captured by {@link Window.takeSnapshot|takeSnapshot} and the GIF is * starting to be processed. * @function Window.processingGifStarted @@ -728,7 +728,7 @@ private slots: */ void processingGifStarted(const QString& pathStillSnapshot); - /**jsdoc + /*@jsdoc * Triggered when a GIF has been prepared of the snapshot images captured by {@link Window.takeSnapshot|takeSnapshot}. * @function Window.processingGifCompleted * @param {string} pathAnimatedSnapshot - The path and name of the moving snapshot GIF file. @@ -737,7 +737,7 @@ private slots: void processingGifCompleted(const QString& pathAnimatedSnapshot); - /**jsdoc + /*@jsdoc * Triggered when you've successfully made a user connection. * @function Window.connectionAdded * @param {string} message - A description of the success. @@ -745,7 +745,7 @@ private slots: */ void connectionAdded(const QString& connectionName); - /**jsdoc + /*@jsdoc * Triggered when you failed to make a user connection. * @function Window.connectionError * @param {string} message - A description of the error. @@ -753,7 +753,7 @@ private slots: */ void connectionError(const QString& errorString); - /**jsdoc + /*@jsdoc * Triggered when a message is announced by {@link Window.displayAnnouncement|displayAnnouncement}. * @function Window.announcement * @param {string} message - The message text. @@ -762,7 +762,7 @@ private slots: void announcement(const QString& message); - /**jsdoc + /*@jsdoc * Triggered when the user closes a message box that was opened with {@link Window.openMessageBox|openMessageBox}. * @function Window.messageBoxClosed * @param {number} id - The ID of the message box that was closed. @@ -772,7 +772,7 @@ private slots: */ void messageBoxClosed(int id, int button); - /**jsdoc + /*@jsdoc * Triggered when the user chooses a directory in a {@link Window.browseDirAsync|browseDirAsync} dialog. * @function Window.browseDirChanged * @param {string} directory - The directory the user chose in the dialog. @@ -780,7 +780,7 @@ private slots: */ void browseDirChanged(QString browseDir); - /**jsdoc + /*@jsdoc * Triggered when the user chooses an asset in a {@link Window.browseAssetsAsync|browseAssetsAsync} dialog. * @function Window.assetsDirChanged * @param {string} asset - The path and name of the asset the user chose in the dialog. @@ -788,7 +788,7 @@ private slots: */ void assetsDirChanged(QString assetsDir); - /**jsdoc + /*@jsdoc * Triggered when the user specifies a file in a {@link Window.saveAsync|saveAsync} dialog. * @function Window.saveFileChanged * @param {string} filename - The path and name of the file that the user specified in the dialog. @@ -796,7 +796,7 @@ private slots: */ void saveFileChanged(QString filename); - /**jsdoc + /*@jsdoc * Triggered when the user chooses a file in a {@link Window.browseAsync|browseAsync} dialog. * @function Window.browseChanged * @param {string} filename - The path and name of the file the user chose in the dialog. @@ -804,7 +804,7 @@ private slots: */ void browseChanged(QString filename); - /**jsdoc + /*@jsdoc * Triggered when the user OKs a {@link Window.promptAsync|promptAsync} dialog. * @function Window.promptTextChanged * @param {string} text - The text the user entered in the dialog. @@ -813,7 +813,7 @@ private slots: void promptTextChanged(QString text); - /**jsdoc + /*@jsdoc * Triggered when the position or size of the Interface window changes. * @function Window.geometryChanged * @param {Rect} geometry - The position and size of the drawable area of the Interface window. @@ -828,7 +828,7 @@ private slots: void geometryChanged(QRect geometry); - /**jsdoc + /*@jsdoc * Triggered when "minimized" state of the Interface window changes. * @function Window.minimizedChanged * @param {boolean} isMinimized - true if the Interface window is minimized, false if it isn't. diff --git a/interface/src/ui/AvatarInputs.h b/interface/src/ui/AvatarInputs.h index 3b0e57d037c..ba9d06c11be 100644 --- a/interface/src/ui/AvatarInputs.h +++ b/interface/src/ui/AvatarInputs.h @@ -23,7 +23,7 @@ class AvatarInputs : public QObject { Q_OBJECT HIFI_QML_DECL - /**jsdoc + /*@jsdoc * The AvatarInputs API provides facilities to manage user inputs. * * @namespace AvatarInputs @@ -61,7 +61,7 @@ class AvatarInputs : public QObject { public: static AvatarInputs* getInstance(); - /**jsdoc + /*@jsdoc * Converts non-linear audio loudness to a linear audio level. * @function AvatarInputs.loudnessToAudioLevel * @param {number} loudness - The non-linear audio loudness. @@ -78,7 +78,7 @@ class AvatarInputs : public QObject { public slots: - /**jsdoc + /*@jsdoc * Sets whether or not the microphone mute button and audio level meter is shown. * @function AvatarInputs.setShowAudioTools * @param {boolean} showAudioTools - true to show the microphone mute button and audio level meter, @@ -86,7 +86,7 @@ public slots: */ void setShowAudioTools(bool showAudioTools); - /**jsdoc + /*@jsdoc * Sets whether or not the privacy shield button is shown. * @function AvatarInputs.setShowBubbleTools * @param {boolean} showBubbleTools - true to show the privacy shield button, false to hide it. @@ -95,28 +95,28 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when webcam face tracking is enabled or disabled. * @deprecated This signal is deprecated and has been removed. * @function AvatarInputs.cameraEnabledChanged * @returns {Signal} */ - /**jsdoc + /*@jsdoc * Triggered when webcam face tracking is muted (temporarily disabled) or unmuted. * @deprecated This signal is deprecated and has been removed. * @function AvatarInputs.cameraMutedChanged * @returns {Signal} */ - /**jsdoc + /*@jsdoc * Triggered when the display mode changes between desktop and HMD. * @function AvatarInputs.isHMDChanged * @returns {Signal} */ void isHMDChanged(); - /**jsdoc + /*@jsdoc * Triggered when the visibility of the microphone mute button and audio level meter changes. * @function AvatarInputs.showAudioToolsChanged * @param {boolean} show - true if the microphone mute button and audio level meter are shown, @@ -125,7 +125,7 @@ public slots: */ void showAudioToolsChanged(bool show); - /**jsdoc + /*@jsdoc * Triggered when the visibility of the privacy shield button changes. * @function AvatarInputs.showBubbleToolsChanged * @param {boolean} show - true if the privacy shield UI button is shown, false if @@ -134,7 +134,7 @@ public slots: */ void showBubbleToolsChanged(bool show); - /**jsdoc + /*@jsdoc * Triggered when another user enters the privacy shield. * @function AvatarInputs.avatarEnteredIgnoreRadius * @param {QUuid} avatarID - The session ID of the user that entered the privacy shield. @@ -146,7 +146,7 @@ public slots: */ void avatarEnteredIgnoreRadius(QUuid avatarID); - /**jsdoc + /*@jsdoc * Triggered when another user leaves the privacy shield. *

    Note: Currently doesn't work.

    * @function AvatarInputs.avatarLeftIgnoreRadius @@ -156,7 +156,7 @@ public slots: */ void avatarLeftIgnoreRadius(QUuid avatarID); - /**jsdoc + /*@jsdoc * Triggered when the privacy shield is enabled or disabled. * @function AvatarInputs.ignoreRadiusEnabledChanged * @param {boolean} enabled - true if the privacy shield is enabled, false if it is disabled. @@ -164,7 +164,7 @@ public slots: */ void ignoreRadiusEnabledChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when another user enters the privacy shield. * @function AvatarInputs.enteredIgnoreRadiusChanged * @returns {Signal} @@ -173,13 +173,13 @@ public slots: protected: - /**jsdoc + /*@jsdoc * Resets sensors, audio, avatar animations, and the avatar rig. * @function AvatarInputs.resetSensors */ Q_INVOKABLE void resetSensors(); - /**jsdoc + /*@jsdoc * Toggles the muting (temporary disablement) of webcam face tracking on/off. *

    Deprecated: This function is deprecated and has been removed.

    * @function AvatarInputs.toggleCameraMute diff --git a/interface/src/ui/InteractiveWindow.cpp b/interface/src/ui/InteractiveWindow.cpp index 898ee707721..2f49bc9615f 100644 --- a/interface/src/ui/InteractiveWindow.cpp +++ b/interface/src/ui/InteractiveWindow.cpp @@ -130,7 +130,7 @@ void InteractiveWindow::emitMainWindowResizeEvent() { emit qApp->getWindow()->windowGeometryChanged(qApp->getWindow()->geometry()); } -/**jsdoc +/*@jsdoc * Property values used when creating an InteractiveWindow. * @typedef {object} InteractiveWindow.WindowProperties * @property {string} [title="InteractiveWindow] - The title of the window. @@ -153,7 +153,7 @@ void InteractiveWindow::emitMainWindowResizeEvent() { * pixels. Excludes the window frame. * @property {boolean} [isFullScreenWindow] - true to make the window full screen. */ -/**jsdoc +/*@jsdoc *

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

    *
@@ -214,7 +214,7 @@ InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap //add any whitelisted callbacks OffscreenUi::applyWhiteList(sourceUrl, quickView->rootContext()); - /**jsdoc + /*@jsdoc * Configures how a NATIVE window is displayed. * @typedef {object} InteractiveWindow.PresentationWindowInfo * @property {InteractiveWindow.DockArea} dockArea - The edge of the Interface window to dock to. diff --git a/interface/src/ui/InteractiveWindow.h b/interface/src/ui/InteractiveWindow.h index 744bb5042bb..160ddb122ce 100644 --- a/interface/src/ui/InteractiveWindow.h +++ b/interface/src/ui/InteractiveWindow.h @@ -59,7 +59,7 @@ public slots: namespace InteractiveWindowEnums { Q_NAMESPACE - /**jsdoc + /*@jsdoc *

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

*
@@ -80,7 +80,7 @@ namespace InteractiveWindowEnums { }; Q_ENUM_NS(InteractiveWindowFlags); - /**jsdoc + /*@jsdoc *

A display mode for an InteractiveWindow.

*
* @@ -101,7 +101,7 @@ namespace InteractiveWindowEnums { }; Q_ENUM_NS(InteractiveWindowPresentationMode); - /**jsdoc + /*@jsdoc *

A docking location of an InteractiveWindow.

*
* @@ -124,7 +124,7 @@ namespace InteractiveWindowEnums { }; Q_ENUM_NS(DockArea); - /**jsdoc + /*@jsdoc *

The anchor for a relative position of an InteractiveWindow.

*
* @@ -154,7 +154,7 @@ namespace InteractiveWindowEnums { using namespace InteractiveWindowEnums; -/**jsdoc +/*@jsdoc * An InteractiveWindow can display either inside Interface or in its own window separate from the Interface * window. The window content is defined by a QML file, which can optionally include a WebView control that embeds * an HTML web page. (The WebView control is defined by a "WebView.qml" file included in the Interface install.) @@ -233,7 +233,7 @@ class InteractiveWindow : public QObject { public slots: - /**jsdoc + /*@jsdoc * Sends a message to the QML page. To receive the message, the QML page must implement a function: *
function fromScript(message) {
      *   ...
@@ -282,7 +282,7 @@ public slots:
     // Scripts can use this to send a message to the QML object
     void sendToQml(const QVariant& message);
 
-    /**jsdoc
+    /*@jsdoc
      * Sends a message to an embedded HTML web page. To receive the message, the HTML page's script must connect to the 
      * EventBridge that is automatically provided for the script:
      * 
EventBridge.scriptEventReceived.connect(function(message) {
@@ -294,26 +294,26 @@ public slots:
     // QmlWindow content may include WebView requiring EventBridge.
     void emitScriptEvent(const QVariant& scriptMessage);
 
-    /**jsdoc
+    /*@jsdoc
      * @function InteractiveWindow.emitWebEvent
      * @param {object|string} message - Message.
      * @deprecated This function is deprecated and will be removed.
      */
     void emitWebEvent(const QVariant& webMessage);
 
-    /**jsdoc
+    /*@jsdoc
      * Closes the window. It can then no longer be used.
      * @function InteractiveWindow.close
      */
     Q_INVOKABLE void close();
 
-    /**jsdoc
+    /*@jsdoc
      * Makes the window visible and raises it to the top.
      * @function InteractiveWindow.show
      */
     Q_INVOKABLE void show();
 
-    /**jsdoc
+    /*@jsdoc
      * Raises the window to the top.
      * @function InteractiveWindow.raise
      */
@@ -321,49 +321,49 @@ public slots:
 
 signals:
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window is made visible or invisible, or is closed.
      * @function InteractiveWindow.visibleChanged
      * @returns {Signal}
      */
     void visibleChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window's position changes.
      * @function InteractiveWindow.positionChanged
      * @returns {Signal}
      */
     void positionChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window's size changes.
      * @function InteractiveWindow.sizeChanged
      * @returns {Signal}
      */
     void sizeChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window's presentation mode changes.
      * @function InteractiveWindow.presentationModeChanged
      * @returns {Signal}
      */
     void presentationModeChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when window's title changes.
      * @function InteractiveWindow.titleChanged
      * @returns {Signal}
      */
     void titleChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window is closed.
      * @function InteractiveWindow.closed
      * @returns {Signal}
      */
     void closed();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when a message from the QML page is received. The QML page can send a message (string or object) by calling:
      * 
sendToScript(message);
* @function InteractiveWindow.fromQml @@ -373,7 +373,7 @@ public slots: // Scripts can connect to this signal to receive messages from the QML object void fromQml(const QVariant& message); - /**jsdoc + /*@jsdoc * @function InteractiveWindow.scriptEventReceived * @param {object} message - Message. * @returns {Signal} @@ -382,7 +382,7 @@ public slots: // InteractiveWindow content may include WebView requiring EventBridge. void scriptEventReceived(const QVariant& message); - /**jsdoc + /*@jsdoc * Triggered when a message from an embedded HTML web page is received. The HTML web page can send a message by calling: *
EventBridge.emitWebEvent(message);
* @function InteractiveWindow.webEventReceived @@ -392,7 +392,7 @@ public slots: void webEventReceived(const QVariant& message); protected slots: - /**jsdoc + /*@jsdoc * @function InteractiveWindow.qmlToScript * @param {object} message - Message. * @deprecated This method is deprecated and will be removed. diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 9589fc26ff6..c2f1abdd94f 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -362,10 +362,10 @@ void setupPreferences() { auto getter = [myAvatar]()->float { return qApp->getCamera().getSensitivity(); }; auto setter = [myAvatar](float value) { qApp->getCamera().setSensitivity(value); }; auto preference = new SpinnerSliderPreference(VR_MOVEMENT, "Camera Sensitivity", getter, setter); - preference->setMin(0.01f); + preference->setMin(0.1f); preference->setMax(5.0f); preference->setStep(0.1f); - preference->setDecimals(2); + preference->setDecimals(1); preferences->addPreference(preference); } { @@ -385,7 +385,7 @@ void setupPreferences() { preference->setMin(6.0f); preference->setMax(30.0f); preference->setStep(1); - preference->setDecimals(2); + preference->setDecimals(0); preferences->addPreference(preference); } { @@ -465,8 +465,8 @@ void setupPreferences() { auto preference = new SpinnerPreference(VR_MOVEMENT, "User real-world height (meters)", getter, setter); preference->setMin(1.0f); preference->setMax(2.2f); - preference->setDecimals(3); - preference->setStep(0.001f); + preference->setDecimals(2); + preference->setStep(0.01f); preferences->addPreference(preference); } @@ -478,7 +478,7 @@ void setupPreferences() { preference->setMin(1.0f); preference->setMax(360.0f); preference->setStep(1); - preference->setDecimals(1); + preference->setDecimals(0); preferences->addPreference(preference); } { @@ -488,7 +488,7 @@ void setupPreferences() { preference->setMin(1.0f); preference->setMax(360.0f); preference->setStep(1); - preference->setDecimals(1); + preference->setDecimals(0); preferences->addPreference(preference); } diff --git a/interface/src/ui/Snapshot.cpp b/interface/src/ui/Snapshot.cpp index 4882d6e5da5..6266e24d40e 100644 --- a/interface/src/ui/Snapshot.cpp +++ b/interface/src/ui/Snapshot.cpp @@ -47,7 +47,7 @@ const QString FILENAME_PATH_FORMAT = "vircadia-snap-by-%1-on-%2.jpg"; const QString DATETIME_FORMAT = "yyyy-MM-dd_hh-mm-ss"; const QString SNAPSHOTS_DIRECTORY = "Snapshots"; -const QString URL = "highfidelity_url"; +const QString URL = "vircadia_url"; static const int SNAPSHOT_360_TIMER_INTERVAL = 350; static const QList SUPPORTED_IMAGE_FORMATS = { "jpg", "jpeg", "png" }; diff --git a/interface/src/ui/Snapshot.h b/interface/src/ui/Snapshot.h index 73c5a8e3c50..9cff0a6f8ba 100644 --- a/interface/src/ui/Snapshot.h +++ b/interface/src/ui/Snapshot.h @@ -37,7 +37,7 @@ class SnapshotMetaData { }; -/**jsdoc +/*@jsdoc * The Snapshot API provides access to the path that snapshots are saved to. This path is that provided in * Settings > General > Snapshots. Snapshots may be taken using Window API functions such as * {@link Window.takeSnapshot}. @@ -67,7 +67,7 @@ class Snapshot : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when the path that snapshots are saved to is changed. * @function Snapshot.snapshotLocationSet * @param {string} location - The new snapshots location. @@ -82,14 +82,14 @@ class Snapshot : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Gets the path that snapshots are saved to. * @function Snapshot.getSnapshotsLocation * @returns {string} The path to save snapshots to. */ Q_INVOKABLE QString getSnapshotsLocation(); - /**jsdoc + /*@jsdoc * Sets the path that snapshots are saved to. * @function Snapshot.setSnapshotsLocation * @param {String} location - The path to save snapshots to. diff --git a/interface/src/ui/Stats.h b/interface/src/ui/Stats.h index ebd65de6128..a3366904bda 100644 --- a/interface/src/ui/Stats.h +++ b/interface/src/ui/Stats.h @@ -23,7 +23,7 @@ public: \ private: \ type _##name{ initialValue }; -/**jsdoc +/*@jsdoc * The Stats API provides statistics on Interface and domain operation, per the statistics overlay. * *

Note: This API is primarily an internal diagnostics tool and is provided "as is".

@@ -626,7 +626,7 @@ class Stats : public QQuickItem { public slots: - /**jsdoc + /*@jsdoc * Updates statistics to make current values available to scripts even though the statistics overlay may not be displayed. * (Many statistics values are normally updated only if the statistics overlay is displayed.) *

Note: Not all statistics values are updated when the statistics overlay isn't displayed or @@ -655,364 +655,364 @@ public slots: // Signals for properties... - /**jsdoc + /*@jsdoc * Triggered when the value of the expanded property changes. * @function Stats.expandedChanged * @returns {Signal} */ void expandedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the timingExpanded property changes. * @function Stats.timingExpandedChanged * @returns {Signal} */ void timingExpandedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the serverCount property changes. * @function Stats.serverCountChanged * @returns {Signal} */ void serverCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the renderrate property changes. * @function Stats.renderrateChanged * @returns {Signal} */ void renderrateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the presentrate property changes. * @function Stats.presentrateChanged * @returns {Signal} */ void presentrateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the stutterrate property changes. * @function Stats.stutterrateChanged * @returns {Signal} */ void stutterrateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the appdropped property changes. * @function Stats.appdroppedChanged * @returns {Signal} */ void appdroppedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the longsubmits property changes. * @function Stats.longsubmitsChanged * @returns {Signal} */ void longsubmitsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the longrenders property changes. * @function Stats.longrendersChanged * @returns {Signal} */ void longrendersChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the longframes property changes. * @function Stats.longframesChanged * @returns {Signal} */ void longframesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the presentnewrate property changes. * @function Stats.presentnewrateChanged * @returns {Signal} */ void presentnewrateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the presentdroprate property changes. * @function Stats.presentdroprateChanged * @returns {Signal} */ void presentdroprateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gameLoopRate property changes. * @function Stats.gameLoopRateChanged * @returns {Signal} */ void gameLoopRateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarCount property changes. * @function Stats.avatarCountChanged * @returns {Signal} */ void avatarCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the refreshRateTarget property changes. * @function Stats.refreshRateTargetChanged * @returns {Signal} */ void refreshRateTargetChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the refreshRateMode property changes. * @function Stats.refreshRateModeChanged * @returns {Signal} */ void refreshRateModeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the refreshRateRegime property changes. * @function Stats.refreshRateRegimeChanged * @returns {Signal} */ void refreshRateRegimeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the uxMode property changes. * @function Stats.uxModeChanged * @returns {Signal} */ void uxModeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the heroAvatarCount property changes. * @function Stats.heroAvatarCountChanged * @returns {Signal} */ void heroAvatarCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the physicsObjectCount property changes. * @function Stats.physicsObjectCountChanged * @returns {Signal} */ void physicsObjectCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the updatedAvatarCount property changes. * @function Stats.updatedAvatarCountChanged * @returns {Signal} */ void updatedAvatarCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the updatedHeroAvatarCount property changes. * @function Stats.updatedHeroAvatarCountChanged * @returns {Signal} */ void updatedHeroAvatarCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the notUpdatedAvatarCount property changes. * @function Stats.notUpdatedAvatarCountChanged * @returns {Signal} */ void notUpdatedAvatarCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the packetInCount property changes. * @function Stats.packetInCountChanged * @returns {Signal} */ void packetInCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the packetOutCount property changes. * @function Stats.packetOutCountChanged * @returns {Signal} */ void packetOutCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the mbpsIn property changes. * @function Stats.mbpsInChanged * @returns {Signal} */ void mbpsInChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the mbpsOut property changes. * @function Stats.mbpsOutChanged * @returns {Signal} */ void mbpsOutChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the assetMbpsIn property changes. * @function Stats.assetMbpsInChanged * @returns {Signal} */ void assetMbpsInChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the assetMbpsOut property changes. * @function Stats.assetMbpsOutChanged * @returns {Signal} */ void assetMbpsOutChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioPing property changes. * @function Stats.audioPingChanged * @returns {Signal} */ void audioPingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarPing property changes. * @function Stats.avatarPingChanged * @returns {Signal} */ void avatarPingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the entitiesPing property changes. * @function Stats.entitiesPingChanged * @returns {Signal} */ void entitiesPingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the assetPing property changes. * @function Stats.assetPingChanged * @returns {Signal} */ void assetPingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the messagePing property changes. * @function Stats.messagePingChanged * @returns {Signal} */ void messagePingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the position property changes. * @function Stats.positionChanged * @returns {Signal} */ void positionChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the speed property changes. * @function Stats.speedChanged * @returns {Signal} */ void speedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the yaw property changes. * @function Stats.yawChanged * @returns {Signal} */ void yawChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarMixerInKbps property changes. * @function Stats.avatarMixerInKbpsChanged * @returns {Signal} */ void avatarMixerInKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarMixerInPps property changes. * @function Stats.avatarMixerInPpsChanged * @returns {Signal} */ void avatarMixerInPpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarMixerOutKbps property changes. * @function Stats.avatarMixerOutKbpsChanged * @returns {Signal} */ void avatarMixerOutKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarMixerOutPps property changes. * @function Stats.avatarMixerOutPpsChanged * @returns {Signal} */ void avatarMixerOutPpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the myAvatarSendRate property changes. * @function Stats.myAvatarSendRateChanged * @returns {Signal} */ void myAvatarSendRateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerInKbps property changes. * @function Stats.audioMixerInKbpsChanged * @returns {Signal} */ void audioMixerInKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerInPps property changes. * @function Stats.audioMixerInPpsChanged * @returns {Signal} */ void audioMixerInPpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerOutKbps property changes. * @function Stats.audioMixerOutKbpsChanged * @returns {Signal} */ void audioMixerOutKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerOutPps property changes. * @function Stats.audioMixerOutPpsChanged * @returns {Signal} */ void audioMixerOutPpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerKbps property changes. * @function Stats.audioMixerKbpsChanged * @returns {Signal} */ void audioMixerKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioMixerPps property changes. * @function Stats.audioMixerPpsChanged * @returns {Signal} */ void audioMixerPpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioOutboundPPS property changes. * @function Stats.audioOutboundPPSChanged * @returns {Signal} */ void audioOutboundPPSChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioSilentOutboundPPS property changes. * @function Stats.audioSilentOutboundPPSChanged * @returns {Signal} */ void audioSilentOutboundPPSChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioInboundPPS property changes. * @function Stats.audioInboundPPSChanged * @returns {Signal} */ void audioInboundPPSChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioAudioInboundPPS property changes. * @function Stats.audioAudioInboundPPSChanged * @returns {Signal} @@ -1021,504 +1021,504 @@ public slots: */ void audioAudioInboundPPSChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioSilentInboundPPS property changes. * @function Stats.audioSilentInboundPPSChanged * @returns {Signal} */ void audioSilentInboundPPSChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioPacketLoss property changes. * @function Stats.audioPacketLossChanged * @returns {Signal} */ void audioPacketLossChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioCodec property changes. * @function Stats.audioCodecChanged * @returns {Signal} */ void audioCodecChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioNoiseGate property changes. * @function Stats.audioNoiseGateChanged * @returns {Signal} */ void audioNoiseGateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the audioInjectors property changes. * @function Stats.audioInjectorsChanged * @returns {Signal} */ void audioInjectorsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the entityPacketsInKbps property changes. * @function Stats.entityPacketsInKbpsChanged * @returns {Signal} */ void entityPacketsInKbpsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the downloads property changes. * @function Stats.downloadsChanged * @returns {Signal} */ void downloadsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the downloadLimit property changes. * @function Stats.downloadLimitChanged * @returns {Signal} */ void downloadLimitChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the downloadsPending property changes. * @function Stats.downloadsPendingChanged * @returns {Signal} */ void downloadsPendingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the downloadUrls property changes. * @function Stats.downloadUrlsChanged * @returns {Signal} */ void downloadUrlsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the processing property changes. * @function Stats.processingChanged * @returns {Signal} */ void processingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the processingPending property changes. * @function Stats.processingPendingChanged * @returns {Signal} */ void processingPendingChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the triangles property changes. * @function Stats.trianglesChanged * @returns {Signal} */ void trianglesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the drawcalls property changes. * @function Stats.drawcallsChanged * @returns {Signal} */ void drawcallsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the materialSwitches property changes. * @function Stats.materialSwitchesChanged * @returns {Signal} */ void materialSwitchesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the itemConsidered property changes. * @function Stats.itemConsideredChanged * @returns {Signal} */ void itemConsideredChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the itemOutOfView property changes. * @function Stats.itemOutOfViewChanged * @returns {Signal} */ void itemOutOfViewChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the itemTooSmall property changes. * @function Stats.itemTooSmallChanged * @returns {Signal} */ void itemTooSmallChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the itemRendered property changes. * @function Stats.itemRenderedChanged * @returns {Signal} */ void itemRenderedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the shadowConsidered property changes. * @function Stats.shadowConsideredChanged * @returns {Signal} */ void shadowConsideredChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the shadowOutOfView property changes. * @function Stats.shadowOutOfViewChanged * @returns {Signal} */ void shadowOutOfViewChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the shadowTooSmall property changes. * @function Stats.shadowTooSmallChanged * @returns {Signal} */ void shadowTooSmallChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the shadowRendered property changes. * @function Stats.shadowRenderedChanged * @returns {Signal} */ void shadowRenderedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the sendingMode property changes. * @function Stats.sendingModeChanged * @returns {Signal} */ void sendingModeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the packetStats property changes. * @function Stats.packetStatsChanged * @returns {Signal} */ void packetStatsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the lodAngle property changes. * @function Stats.lodAngleChanged * @returns {Signal} */ void lodAngleChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the lodTargetFramerate property changes. * @function Stats.lodTargetFramerateChanged * @returns {Signal} */ void lodTargetFramerateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the lodStatus property changes. * @function Stats.lodStatusChanged * @returns {Signal} */ void lodStatusChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the numEntityUpdates property changes. * @function Stats.numEntityUpdatesChanged * @returns {Signal} */ void numEntityUpdatesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the numNeededEntityUpdates property changes. * @function Stats.numNeededEntityUpdatesChanged * @returns {Signal} */ void numNeededEntityUpdatesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the timingStats property changes. * @function Stats.timingStatsChanged * @returns {Signal} */ void timingStatsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gameUpdateStats property changes. * @function Stats.gameUpdateStatsChanged * @returns {Signal} */ void gameUpdateStatsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the serverElements property changes. * @function Stats.serverElementsChanged * @returns {Signal} */ void serverElementsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the serverInternal property changes. * @function Stats.serverInternalChanged * @returns {Signal} */ void serverInternalChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the serverLeaves property changes. * @function Stats.serverLeavesChanged * @returns {Signal} */ void serverLeavesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the localElements property changes. * @function Stats.localElementsChanged * @returns {Signal} */ void localElementsChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the localInternal property changes. * @function Stats.localInternalChanged * @returns {Signal} */ void localInternalChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the localLeaves property changes. * @function Stats.localLeavesChanged * @returns {Signal} */ void localLeavesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the rectifiedTextureCount property changes. * @function Stats.rectifiedTextureCountChanged * @returns {Signal} */ void rectifiedTextureCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the decimatedTextureCount property changes. * @function Stats.decimatedTextureCountChanged * @returns {Signal} */ void decimatedTextureCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuBuffers property changes. * @function Stats.gpuBuffersChanged * @returns {Signal} */ void gpuBuffersChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuBufferMemory property changes. * @function Stats.gpuBufferMemoryChanged * @returns {Signal} */ void gpuBufferMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextures property changes. * @function Stats.gpuTexturesChanged * @returns {Signal} */ void gpuTexturesChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the glContextSwapchainMemory property changes. * @function Stats.glContextSwapchainMemoryChanged * @returns {Signal} */ void glContextSwapchainMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the qmlTextureMemory property changes. * @function Stats.qmlTextureMemoryChanged * @returns {Signal} */ void qmlTextureMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the texturePendingTransfers property changes. * @function Stats.texturePendingTransfersChanged * @returns {Signal} */ void texturePendingTransfersChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureMemory property changes. * @function Stats.gpuTextureMemoryChanged * @returns {Signal} */ void gpuTextureMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureResidentMemory property changes. * @function Stats.gpuTextureResidentMemoryChanged * @returns {Signal} */ void gpuTextureResidentMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureFramebufferMemory property changes. * @function Stats.gpuTextureFramebufferMemoryChanged * @returns {Signal} */ void gpuTextureFramebufferMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureResourceMemory property changes. * @function Stats.gpuTextureResourceMemoryChanged * @returns {Signal} */ void gpuTextureResourceMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureResourceIdealMemory property changes. * @function Stats.gpuTextureResourceIdealMemoryChanged * @returns {Signal} */ void gpuTextureResourceIdealMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureResourcePopulatedMemory property changes. * @function Stats.gpuTextureResourcePopulatedMemoryChanged * @returns {Signal} */ void gpuTextureResourcePopulatedMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureExternalMemory property changes. * @function Stats.gpuTextureExternalMemoryChanged * @returns {Signal} */ void gpuTextureExternalMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuTextureMemoryPressureState property changes. * @function Stats.gpuTextureMemoryPressureStateChanged * @returns {Signal} */ void gpuTextureMemoryPressureStateChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuFreeMemory property changes. * @function Stats.gpuFreeMemoryChanged * @returns {Signal} */ void gpuFreeMemoryChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuFrameSize property changes. * @function Stats.gpuFrameSizeChanged * @returns {Signal} */ void gpuFrameSizeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuFrameTime property changes. * @function Stats.gpuFrameTimeChanged * @returns {Signal} */ void gpuFrameTimeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the gpuFrameTimePerPixel property changes. * @function Stats.gpuFrameTimePerPixelChanged * @returns {Signal} */ void gpuFrameTimePerPixelChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the batchFrameTime property changes. * @function Stats.batchFrameTimeChanged * @returns {Signal} */ void batchFrameTimeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the engineFrameTime property changes. * @function Stats.engineFrameTimeChanged * @returns {Signal} */ void engineFrameTimeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the avatarSimulationTime property changes. * @function Stats.avatarSimulationTimeChanged * @returns {Signal} */ void avatarSimulationTimeChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the stylusPicksCount property changes. * @function Stats.stylusPicksCountChanged * @returns {Signal} */ void stylusPicksCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the rayPicksCount property changes. * @function Stats.rayPicksCountChanged * @returns {Signal} */ void rayPicksCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the parabolaPicksCount property changes. * @function Stats.parabolaPicksCountChanged * @returns {Signal} */ void parabolaPicksCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the collisionPicksCount property changes. * @function Stats.collisionPicksCountChanged * @returns {Signal} */ void collisionPicksCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the stylusPicksUpdated property changes. * @function Stats.stylusPicksUpdatedChanged * @returns {Signal} */ void stylusPicksUpdatedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the rayPicksUpdated property changes. * @function Stats.rayPicksUpdatedChanged * @returns {Signal} */ void rayPicksUpdatedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the parabolaPicksUpdated property changes. * @function Stats.parabolaPicksUpdatedChanged * @returns {Signal} */ void parabolaPicksUpdatedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the collisionPicksUpdated property changes. * @function Stats.collisionPicksUpdatedChanged * @returns {Signal} */ void collisionPicksUpdatedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the mainThreadQueueDepth property changes. * @function Stats.mainThreadQueueDepthChanged * @returns {Signal} */ void mainThreadQueueDepthChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the nodeListThreadQueueDepth property changes. * @function Stats.nodeListThreadQueueDepth * @returns {Signal} */ void nodeListThreadQueueDepthChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the eventQueueDebuggingOn property changes. * @function Stats.eventQueueDebuggingOnChanged * @returns {Signal} @@ -1528,7 +1528,7 @@ public slots: // Stats.qml signals: shouldn't be in the API. - /**jsdoc + /*@jsdoc * Triggered when the value of the bgColor property changes. * @function Stats.bgColorChanged * @returns {Signal} @@ -1538,7 +1538,7 @@ public slots: // QQuickItem signals: shouldn't be in the API. - /**jsdoc + /*@jsdoc * Triggered when the value of the activeFocus property changes. * @function Stats.activeFocusChanged * @param {boolean} activeFocus - Active focus. @@ -1546,7 +1546,7 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the activeFocusOnTab property changes. * @function Stats.activeFocusOnTabChanged * @param {boolean} activeFocusOnTab - Active focus on tab. @@ -1554,7 +1554,7 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the antialiasing property changes. * @function Stats.antialiasingChanged * @param {boolean} antialiasing - Antialiasing. @@ -1562,7 +1562,7 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the baselineOffset property changes. * @function Stats.baselineOffsetChanged * @param {number} baselineOffset - Baseline offset. @@ -1570,14 +1570,14 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the children property changes. * @function Stats.childrenChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the position and size of the rectangle containing the children changes. * @function Stats.childrenRectChanged * @param {Rect} childrenRect - Children rect. @@ -1586,7 +1586,7 @@ public slots: */ - /**jsdoc + /*@jsdoc * Triggered when the value of the clip property changes. * @function Stats.clipChanged * @param {boolean} clip - Clip. @@ -1594,21 +1594,21 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the containmentMask property changes. * @function Stats.containmentMaskChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the enabled property changes. * @function Stats.enabledChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the focus property changes. * @function Stats.focusChanged * @param {boolean} focus - Focus. @@ -1616,35 +1616,35 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the height property changes. * @function Stats.heightChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the implicitHeight property changes. * @function Stats.implicitHeightChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the implicitWidth property changes. * @function Stats.implicitWidthChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the opacity property changes. * @function Stats.opacityChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the parent item changes. * @function Stats.parentChanged * @param {object} parent - Parent. @@ -1652,21 +1652,21 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the rotation property changes. * @function Stats.rotationChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the scale property changes. * @function Stats.scaleChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the smooth property changes. * @function Stats.smoothChanged * @param {boolean} smooth - Smooth. @@ -1674,7 +1674,7 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the state property changes. * @function Stats.stateChanged * @paramm {string} state - State. @@ -1682,7 +1682,7 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the transformOrigin property changes. * @function Stats.transformOriginChanged * @param {number} transformOrigin - Transformm origin. @@ -1690,28 +1690,28 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the visibleChanged property changes. * @function Stats.visibleChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the list of visible children changes. * @function Stats.visibleChildrenChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the width property changes. * @function Stats.widthChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the stats window changes. * @function Stats.windowChanged * @param {object} window - Window. @@ -1719,21 +1719,21 @@ public slots: * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the x property changes. * @function Stats.xChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the y property changes. * @function Stats.yChanged * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * Triggered when the value of the z property changes. * @function Stats.zChanged * @returns {Signal} @@ -1743,7 +1743,7 @@ public slots: // QQuickItem methods: shouldn't be in the API. - /**jsdoc + /*@jsdoc * @function Stats.childAt * @param {number} x - X. * @param {number} y - Y. @@ -1751,20 +1751,20 @@ public slots: * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.contains * @param {Vec2} point - Point * @returns {boolean} * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.forceActiveFocus * @param {number} [reason=7] - Reason * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.grabToImage * @param {object} callback - Callback. * @param {Size} [targetSize=0,0] - Target size. @@ -1772,38 +1772,38 @@ public slots: * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.mapFromGlobal * @param {object} global - Global. * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.mapFromItem * @param {object} item - Item. * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.mapToGlobal * @param {object} global - Global. * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.mapToItem * @param {object} item - Item * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.nextItemInFocusChain * @param {boolean} [forward=true] - Forward. * @returns {object} * @deprecated This method is deprecated and will be removed. */ - /**jsdoc + /*@jsdoc * @function Stats.update * @deprecated This method is deprecated and will be removed. */ diff --git a/interface/src/ui/overlays/ContextOverlayInterface.h b/interface/src/ui/overlays/ContextOverlayInterface.h index 5d11b254fc3..b3bf15d5230 100644 --- a/interface/src/ui/overlays/ContextOverlayInterface.h +++ b/interface/src/ui/overlays/ContextOverlayInterface.h @@ -29,7 +29,7 @@ #include "EntityTree.h" #include "ContextOverlayLogging.h" -/**jsdoc +/*@jsdoc * The ContextOverlay API manages the "i" proof-of-provenance context overlay that appears on Marketplace items * when a user right-clicks them. * @@ -61,7 +61,7 @@ class ContextOverlayInterface : public QObject, public Dependency { public: ContextOverlayInterface(); - /**jsdoc + /*@jsdoc * Gets the ID of the entity that the context overlay is currently displayed for. * @function ContextOverlay.getCurrentEntityWithContextOverlay * @returns {Uuid} - The ID of the entity that the context overlay is currently displayed for, null if the @@ -76,7 +76,7 @@ class ContextOverlayInterface : public QObject, public Dependency { bool getIsInMarketplaceInspectionMode() { return _isInMarketplaceInspectionMode; } void setIsInMarketplaceInspectionMode(bool mode) { _isInMarketplaceInspectionMode = mode; } - /**jsdoc + /*@jsdoc * Initiates a check on an avatar entity belongs to the user wearing it. The result is returned via * {@link WalletScriptingInterface.ownershipVerificationSuccess} or * {@link WalletScriptingInterface.ownershipVerificationFailed}. @@ -90,7 +90,7 @@ class ContextOverlayInterface : public QObject, public Dependency { EntityPropertyFlags getEntityPropertyFlags() { return _entityPropertyFlags; } signals: - /**jsdoc + /*@jsdoc * Triggered when the user clicks on the context overlay. * @function ContextOverlay.contextOverlayClicked * @param {Uuid} id - The ID of the entity that the context overlay is for. @@ -104,7 +104,7 @@ class ContextOverlayInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * @function ContextOverlay.clickDownOnEntity * @param {Uuid} id - Entity ID. * @param {PointerEvent} event - Pointer event. @@ -113,7 +113,7 @@ public slots: // FIXME: Method shouldn't be in the API. void clickDownOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * @function ContextOverlay.mouseReleaseOnEntity * @param {Uuid} id - Entity ID. * @param {PointerEvent} event - Pointer event. @@ -122,7 +122,7 @@ public slots: // FIXME: Method shouldn't be in the API. void mouseReleaseOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Displays or deletes the context overlay as appropriate for the target entity and a pointer event: the context overlay * must be enabled and the pointer event must be a right-click; if so, then any current context overlay is deleted, and if * the target entity should have a context overlay then it is displayed. @@ -134,7 +134,7 @@ public slots: */ bool createOrDestroyContextOverlay(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Deletes the context overlay and removes the entity highlight, if shown. * @function ContextOverlay.destroyContextOverlay * @param {Uuid} entityID - The ID of the entity. @@ -145,7 +145,7 @@ public slots: bool destroyContextOverlay(const EntityItemID& entityItemID, const PointerEvent& event); bool destroyContextOverlay(const EntityItemID& entityItemID); - /**jsdoc + /*@jsdoc * @function ContextOverlay.contextOverlays_hoverEnterOverlay * @param {Uuid} id - Overlay ID. * @param {PointerEvent} event - Pointer event. @@ -154,7 +154,7 @@ public slots: // FIXME: Method shouldn't be in the API. void contextOverlays_hoverEnterOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * @function ContextOverlay.contextOverlays_hoverLeaveOverlay * @param {Uuid} id - Overlay ID. * @param {PointerEvent} event - Pointer event. @@ -163,7 +163,7 @@ public slots: // FIXME: Method shouldn't be in the API. void contextOverlays_hoverLeaveOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * @function ContextOverlay.contextOverlays_hoverEnterEntity * @param {Uuid} id - Entity ID. * @param {PointerEvent} event - Pointer event. @@ -172,7 +172,7 @@ public slots: // FIXME: Method shouldn't be in the API. void contextOverlays_hoverEnterEntity(const EntityItemID& entityID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * @function ContextOverlay.contextOverlays_hoverLeaveEntity * @param {Uuid} id - Entity ID. * @param {PointerEvent} event - Pointer event. @@ -181,7 +181,7 @@ public slots: // FIXME: Method shouldn't be in the API. void contextOverlays_hoverLeaveEntity(const EntityItemID& entityID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Checks with a context overlay should be displayed for an entity — in particular, whether the item has a non-empty * certificate ID. * @function ContextOverlay.contextOverlayFilterPassed diff --git a/interface/src/ui/overlays/Overlay2D.cpp b/interface/src/ui/overlays/Overlay2D.cpp index 91c7198e49f..c75eba052a4 100644 --- a/interface/src/ui/overlays/Overlay2D.cpp +++ b/interface/src/ui/overlays/Overlay2D.cpp @@ -25,7 +25,7 @@ AABox Overlay2D::getBounds() const { // JSDoc for copying to @typedefs of overlay types that inherit Overlay2D. // QmlOverlay-derived classes don't support getProperty(). -/**jsdoc +/*@jsdoc * @property {Rect} bounds - The position and size of the rectangle. Write-only. * @property {number} x - Integer left, x-coordinate value = bounds.x. Write-only. * @property {number} y - Integer top, y-coordinate value = bounds.y. Write-only. diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index cb44fdb2ff3..1db633d1a7f 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -1329,7 +1329,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { return result; } -/**jsdoc +/*@jsdoc *

An overlay may be one of the following types:

*
* @@ -1397,7 +1397,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @typedef {string} Overlays.OverlayType */ -/**jsdoc +/*@jsdoc * Different overlay types have different properties: some common to all overlays (listed in the table) and some specific to * each {@link Overlays.OverlayType|OverlayType} (linked to below). *

3D overlays are local entities, internally, so they also support the relevant entity's properties.

@@ -1422,7 +1422,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @see {@link Overlays.OverlayProperties-Circle3D|OverlayProperties-Circle3D} — Deprecated. */ -/**jsdoc +/*@jsdoc * The "image" {@link Overlays.OverlayType|OverlayType} is for 2D images. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * @typedef {object} Overlays.OverlayProperties-Image @@ -1442,7 +1442,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * 1.0. Write-only. */ -/**jsdoc +/*@jsdoc * The "text" {@link Overlays.OverlayType|OverlayType} is for 2D text. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * @typedef {object} Overlays.OverlayProperties-Text @@ -1468,7 +1468,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * Write-only. */ -/**jsdoc +/*@jsdoc * The "rectangle" {@link Overlays.OverlayType|OverlayType} is for 2D rectangles. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * @typedef {object} Overlays.OverlayProperties-Rectangle @@ -1487,7 +1487,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * Write-only. */ -/**jsdoc +/*@jsdoc * The "cube" {@link Overlays.OverlayType|OverlayType} is for 3D cubes. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Box|Box} entity. @@ -1535,7 +1535,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * than a joint. */ -/**jsdoc +/*@jsdoc * The "sphere" {@link Overlays.OverlayType|OverlayType} is for 3D spheres. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Sphere|Sphere} entity. @@ -1583,7 +1583,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * than a joint. */ -/**jsdoc +/*@jsdoc * The "rectangle3D" {@link Overlays.OverlayType|OverlayType} is for 3D rectangles. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Shape|Shape} entity, with the shape @@ -1632,7 +1632,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * than a joint. */ -/**jsdoc +/*@jsdoc *

A "shape" {@link Overlays.OverlayType|OverlayType} may display as one of the following geometrical * shapes:

*
@@ -1659,7 +1659,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @typedef {string} Overlays.Shape */ -/**jsdoc +/*@jsdoc * The "shape" {@link Overlays.OverlayType|OverlayType} is for 3D shapes. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Shape|Shape} entity. @@ -1709,7 +1709,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @property {Overlays.Shape} shape=Hexagon - The geometrical shape of the overlay. */ -/**jsdoc +/*@jsdoc * The "model" {@link Overlays.OverlayType|OverlayType} is for 3D models. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Model|Model} entity. @@ -1750,7 +1750,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @property {Entities.AnimationProperties} animationSettings - An animation to play on the model. */ -/**jsdoc +/*@jsdoc * The "text3D" {@link Overlays.OverlayType|OverlayType} is for 3D text. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Text|Text} entity. @@ -1796,7 +1796,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * than a joint. */ -/**jsdoc +/*@jsdoc * The "image3D" {@link Overlays.OverlayType|OverlayType} is for 3D images. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Image|Image} entity. @@ -1842,7 +1842,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @property {string} url - The URL of the image to display. */ -/**jsdoc +/*@jsdoc * The "web3d" {@link Overlays.OverlayType|OverlayType} is for 3D web surfaces. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Web|Web} entity. @@ -1888,7 +1888,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * @property {string} url - The URL of the web page to display. */ -/**jsdoc +/*@jsdoc * The "line3d" {@link Overlays.OverlayType|OverlayType} is for 3D lines. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-PolyLine|PolyLine} entity. @@ -1956,7 +1956,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * property to retrieve its value instead.

*/ -/**jsdoc +/*@jsdoc * The "grid" {@link Overlays.OverlayType|OverlayType} is for 3D grids. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Grid|Grid} entity. @@ -2000,7 +2000,7 @@ QVector Overlays::findOverlays(const glm::vec3& center, float radius) { * than a joint. */ -/**jsdoc +/*@jsdoc * The "circle3d" {@link Overlays.OverlayType|OverlayType} is for 3D circles. * It has properties in addition to the common {@link Overlays.OverlayProperties|OverlayProperties}. * It additionally has properties per the {@link Entities.EntityProperties-Gizmo|Gizmo} entity, with the diff --git a/interface/src/ui/overlays/Overlays.h b/interface/src/ui/overlays/Overlays.h index 51ea5dc9e7a..14f4403a28b 100644 --- a/interface/src/ui/overlays/Overlays.h +++ b/interface/src/ui/overlays/Overlays.h @@ -33,7 +33,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The result of a {@link PickRay} search using {@link Overlays.findRayIntersection|findRayIntersection}. * @typedef {object} Overlays.RayToOverlayIntersectionResult * @property {boolean} intersects - true if the {@link PickRay} intersected with a 3D overlay, otherwise @@ -70,7 +70,7 @@ class ParabolaToOverlayIntersectionResult { QVariantMap extraInfo; }; -/**jsdoc +/*@jsdoc * The Overlays API provides facilities to create and interact with overlays. These are 2D and 3D objects visible * only to yourself and that aren't persisted to the domain. They are used for UI. * @@ -126,7 +126,7 @@ class Overlays : public QObject { mutable ScriptEnginePointer _scriptEngine; public slots: - /**jsdoc + /*@jsdoc * Adds an overlay to the scene. * @function Overlays.addOverlay * @param {Overlays.OverlayType} type - The type of the overlay to add. @@ -142,7 +142,7 @@ public slots: */ QUuid addOverlay(const QString& type, const QVariant& properties); - /**jsdoc + /*@jsdoc * Creates a clone of an existing overlay (or entity). *

Note: For cloning behavior of 3D overlays and entities, see {@link Entities.cloneEntity}.

* @function Overlays.cloneOverlay @@ -151,7 +151,7 @@ public slots: */ QUuid cloneOverlay(const QUuid& id); - /**jsdoc + /*@jsdoc * Edits an overlay's (or entity's) properties. * @function Overlays.editOverlay * @param {Uuid} id - The ID of the overlay (or entity) to edit. @@ -173,7 +173,7 @@ public slots: */ bool editOverlay(const QUuid& id, const QVariant& properties); - /**jsdoc + /*@jsdoc * Edits the properties of multiple overlays (or entities). * @function Overlays.editOverlays * @param propertiesById {object.} - An object with overlay (or entity) IDs as keys and @@ -201,14 +201,14 @@ public slots: */ bool editOverlays(const QVariant& propertiesById); - /**jsdoc + /*@jsdoc * Deletes an overlay (or entity). * @function Overlays.deleteOverlay * @param {Uuid} id - The ID of the overlay (or entity) to delete. */ void deleteOverlay(const QUuid& id); - /**jsdoc + /*@jsdoc * Gets the type of an overlay. * @function Overlays.getOverlayType * @param {Uuid} id - The ID of the overlay to get the type of. @@ -225,7 +225,7 @@ public slots: */ QString getOverlayType(const QUuid& id); - /**jsdoc + /*@jsdoc * Gets an overlay's (or entity's) script object. In particular, this is useful for accessing a * {@link Overlays.OverlayProperties-Web3D|"web3d"} overlay's EventBridge script object to * exchange messages with the web page script. @@ -295,7 +295,7 @@ public slots: */ QObject* getOverlayObject(const QUuid& id); - /**jsdoc + /*@jsdoc * Gets the ID of the 2D overlay at a particular point on the desktop screen or HUD surface. * @function Overlays.getOverlayAtPoint * @param {Vec2} point - The point to check for an overlay. @@ -314,7 +314,7 @@ public slots: */ QUuid getOverlayAtPoint(const glm::vec2& point); - /**jsdoc + /*@jsdoc * Gets a specified property value of a 3D overlay (or entity). *

Note: 2D overlays' property values cannot be retrieved.

* @function Overlays.getProperty @@ -334,7 +334,7 @@ public slots: */ QVariant getProperty(const QUuid& id, const QString& property); - /**jsdoc + /*@jsdoc * Gets specified property values of a 3D overlay (or entity). *

Note: 2D overlays' property values cannot be retrieved.

* @function Overlays.getProperties @@ -354,7 +354,7 @@ public slots: */ QVariantMap getProperties(const QUuid& id, const QStringList& properties); - /**jsdoc + /*@jsdoc * Gets the values of multiple overlays' (or entities') properties. * @function Overlays.getOverlaysProperties * @param propertiesById {object.>} - An object with overlay (or entity) IDs as keys and arrays of the @@ -382,7 +382,7 @@ public slots: */ QVariantMap getOverlaysProperties(const QVariant& overlaysProperties); - /**jsdoc + /*@jsdoc * Finds the closest 3D overlay (or local entity) intersected by a {@link PickRay}. * @function Overlays.findRayIntersection * @param {PickRay} pickRay - The PickRay to use for finding overlays. @@ -419,7 +419,7 @@ public slots: bool visibleOnly = false, bool collidableOnly = false); - /**jsdoc + /*@jsdoc * Gets a list of visible 3D overlays (local entities) with bounding boxes that touch a search sphere. * @function Overlays.findOverlays * @param {Vec3} center - The center of the search sphere. @@ -447,7 +447,7 @@ public slots: */ QVector findOverlays(const glm::vec3& center, float radius); - /**jsdoc + /*@jsdoc * Checks whether an overlay's (or entity's) assets have been loaded. For example, for an * {@link Overlays.OverlayProperties-Image|"image"} overlay, the result indicates whether its image has been * loaded. @@ -467,7 +467,7 @@ public slots: */ bool isLoaded(const QUuid& id); - /**jsdoc + /*@jsdoc * Calculates the size of some text in a text overlay (or entity). The overlay (or entity) need not be set visible. *

Note: The size of text in a 3D overlay (or entity) cannot be calculated immediately after the * overlay (or entity) is created; a short delay is required while the overlay (or entity) finishes being created.

@@ -492,21 +492,21 @@ public slots: */ QSizeF textSize(const QUuid& id, const QString& text); - /**jsdoc + /*@jsdoc * Gets the width of the Interface window or HUD surface. * @function Overlays.width * @returns {number} The width, in pixels, of the Interface window if in desktop mode or the HUD surface if in HMD mode. */ float width(); - /**jsdoc + /*@jsdoc * Gets the height of the Interface window or HUD surface. * @function Overlays.height * @returns {number} The height, in pixels, of the Interface window if in desktop mode or the HUD surface if in HMD mode. */ float height(); - /**jsdoc + /*@jsdoc * Checks if an overlay (or entity) exists. * @function Overlays.isAddedOverlay * @param {Uuid} id - The ID of the overlay (or entity) to check. @@ -514,7 +514,7 @@ public slots: */ bool isAddedOverlay(const QUuid& id); - /**jsdoc + /*@jsdoc * Generates a mouse press event on an overlay (or local entity). * @function Overlays.sendMousePressOnOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse press event on. @@ -554,7 +554,7 @@ public slots: */ void sendMousePressOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Generates a mouse release event on an overlay (or local entity). * @function Overlays.sendMouseReleaseOnOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse release event on. @@ -562,7 +562,7 @@ public slots: */ void sendMouseReleaseOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Generates a mouse move event on an overlay (or local entity). * @function Overlays.sendMouseMoveOnOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a mouse move event on. @@ -570,7 +570,7 @@ public slots: */ void sendMouseMoveOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Generates a hover enter event on an overlay (or local entity). * @function Overlays.sendHoverEnterOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover enter event on. @@ -578,7 +578,7 @@ public slots: */ void sendHoverEnterOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Generates a hover over event on an overlay (or entity). * @function Overlays.sendHoverOverOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover over event on. @@ -586,7 +586,7 @@ public slots: */ void sendHoverOverOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Generates a hover leave event on an overlay (or local entity). * @function Overlays.sendHoverLeaveOverlay * @param {Uuid} id - The ID of the overlay (or local entity) to generate a hover leave event on. @@ -594,7 +594,7 @@ public slots: */ void sendHoverLeaveOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Gets the ID of the {@link Overlays.OverlayProperties-Web3D|"web3d"} overlay * ({@link Entities.EntityProperties-Web|Web} entity) that has keyboard focus. * @function Overlays.getKeyboardFocusOverlay @@ -603,7 +603,7 @@ public slots: */ QUuid getKeyboardFocusOverlay() { return DependencyManager::get()->getKeyboardFocusEntity(); } - /**jsdoc + /*@jsdoc * Sets the {@link Overlays.OverlayProperties-Web3D|"web3d"} overlay * ({@link Entities.EntityProperties-Web|Web} entity) that has keyboard focus. * @function Overlays.setKeyboardFocusOverlay @@ -614,7 +614,7 @@ public slots: void setKeyboardFocusOverlay(const QUuid& id) { DependencyManager::get()->setKeyboardFocusEntity(id); } signals: - /**jsdoc + /*@jsdoc * Triggered when an overlay (or entity) is deleted. * @function Overlays.overlayDeleted * @param {Uuid} id - The ID of the overlay (or entity) that was deleted. @@ -637,7 +637,7 @@ public slots: */ void overlayDeleted(const QUuid& id); - /**jsdoc + /*@jsdoc * Triggered when a mouse press event occurs on an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendMousePressOnOverlay|sendMousePressOnOverlay} for a 2D overlay). * @function Overlays.mousePressOnOverlay @@ -661,7 +661,7 @@ public slots: */ void mousePressOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse double press event occurs on an overlay. Only occurs for 3D overlays. * @function Overlays.mouseDoublePressOnOverlay * @param {Uuid} id - The ID of the overlay the mouse double press event occurred on. @@ -670,7 +670,7 @@ public slots: */ void mouseDoublePressOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse release event occurs on an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendMouseReleaseOnOverlay|sendMouseReleaseOnOverlay} for a 2D overlay). * @function Overlays.mouseReleaseOnOverlay @@ -680,7 +680,7 @@ public slots: */ void mouseReleaseOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse move event occurs on an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendMouseMoveOnOverlay|sendMouseMoveOnOverlay} for a 2D overlay). * @function Overlays.mouseMoveOnOverlay @@ -690,21 +690,21 @@ public slots: */ void mouseMoveOnOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse press event occurs on something other than a 3D overlay. * @function Overlays.mousePressOffOverlay * @returns {Signal} */ void mousePressOffOverlay(); - /**jsdoc + /*@jsdoc * Triggered when a mouse double press event occurs on something other than a 3D overlay. * @function Overlays.mouseDoublePressOffOverlay * @returns {Signal} */ void mouseDoublePressOffOverlay(); - /**jsdoc + /*@jsdoc * Triggered when a mouse cursor starts hovering over an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendHoverEnterOverlay|sendHoverEnterOverlay} for a 2D overlay). * @function Overlays.hoverEnterOverlay @@ -726,7 +726,7 @@ public slots: */ void hoverEnterOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse cursor continues hovering over an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendHoverOverOverlay|sendHoverOverOverlay} for a 2D overlay). * @function Overlays.hoverOverOverlay @@ -736,7 +736,7 @@ public slots: */ void hoverOverOverlay(const QUuid& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse cursor finishes hovering over an overlay. Only occurs for 3D overlays (unless you use * {@link Overlays.sendHoverLeaveOverlay|sendHoverLeaveOverlay} for a 2D overlay). * @function Overlays.hoverLeaveOverlay diff --git a/libraries/animation/src/AnimInverseKinematics.h b/libraries/animation/src/AnimInverseKinematics.h index aa7e8fb69e0..dd26294bcd0 100644 --- a/libraries/animation/src/AnimInverseKinematics.h +++ b/libraries/animation/src/AnimInverseKinematics.h @@ -59,7 +59,7 @@ class AnimInverseKinematics : public AnimNode { float getMaxErrorOnLastSolve() { return _maxErrorOnLastSolve; } - /**jsdoc + /*@jsdoc *

Specifies the initial conditions of the IK solver.

*
* diff --git a/libraries/animation/src/AnimOverlay.h b/libraries/animation/src/AnimOverlay.h index d5e114a2d28..cf6fb8375a3 100644 --- a/libraries/animation/src/AnimOverlay.h +++ b/libraries/animation/src/AnimOverlay.h @@ -24,7 +24,7 @@ class AnimOverlay : public AnimNode { public: friend class AnimTests; - /**jsdoc + /*@jsdoc *

Specifies sets of joints.

*
* diff --git a/libraries/animation/src/AnimationCacheScriptingInterface.h b/libraries/animation/src/AnimationCacheScriptingInterface.h index fc31ecaa2bd..f07e9aeebd7 100644 --- a/libraries/animation/src/AnimationCacheScriptingInterface.h +++ b/libraries/animation/src/AnimationCacheScriptingInterface.h @@ -24,7 +24,7 @@ class AnimationCacheScriptingInterface : public ScriptableResourceCache, public // Properties are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc + /*@jsdoc * The AnimationCache API manages animation cache resources. * * @namespace AnimationCache @@ -52,7 +52,7 @@ class AnimationCacheScriptingInterface : public ScriptableResourceCache, public public: AnimationCacheScriptingInterface(); - /**jsdoc + /*@jsdoc * Gets information about an animation resource. * @function AnimationCache.getAnimation * @param {string} url - The URL of the animation. diff --git a/libraries/animation/src/AnimationObject.h b/libraries/animation/src/AnimationObject.h index 5e09ce1e0bb..d170b15b082 100644 --- a/libraries/animation/src/AnimationObject.h +++ b/libraries/animation/src/AnimationObject.h @@ -19,7 +19,7 @@ class ScriptEngine; -/**jsdoc +/*@jsdoc * Information about an animation resource, created by {@link AnimationCache.getAnimation}. * * @class AnimationObject @@ -42,14 +42,14 @@ class AnimationObject : public QObject, protected Scriptable { public: - /**jsdoc + /*@jsdoc * Gets the names of the joints that are animated. * @function AnimationObject.getJointNames * @returns {string[]} The names of the joints that are animated. */ Q_INVOKABLE QStringList getJointNames() const; - /**jsdoc + /*@jsdoc * Gets the frames in the animation. * @function AnimationObject.getFrames * @returns {AnimationFrameObject[]} The frames in the animation. @@ -57,7 +57,7 @@ class AnimationObject : public QObject, protected Scriptable { Q_INVOKABLE QVector getFrames() const; }; -/**jsdoc +/*@jsdoc * Joint rotations in one frame of an {@link AnimationObject}. * * @class AnimationFrameObject @@ -78,7 +78,7 @@ class AnimationFrameObject : public QObject, protected Scriptable { public: - /**jsdoc + /*@jsdoc * Gets the joint rotations in the animation frame. * @function AnimationFrameObject.getRotations * @returns {Quat[]} The joint rotations in the animation frame. diff --git a/libraries/animation/src/IKTarget.h b/libraries/animation/src/IKTarget.h index a56f5578b31..35927695063 100644 --- a/libraries/animation/src/IKTarget.h +++ b/libraries/animation/src/IKTarget.h @@ -16,7 +16,7 @@ const float HACK_HMD_TARGET_WEIGHT = 8.0f; class IKTarget { public: - /**jsdoc + /*@jsdoc *

An IK target type.

*
* diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index ae5f0c6253a..a99f2e6071c 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -91,7 +91,7 @@ static const QString MAIN_STATE_MACHINE_RIGHT_HAND_ROTATION("mainStateMachineRig static const QString MAIN_STATE_MACHINE_RIGHT_HAND_POSITION("mainStateMachineRightHandPosition"); -/**jsdoc +/*@jsdoc *

An AnimStateDictionary object may have the following properties. It may also have other properties, set by * scripts.

*

Warning: These properties are subject to change. diff --git a/libraries/audio-client/src/AudioIOStats.h b/libraries/audio-client/src/AudioIOStats.h index 9265ae3062b..215a4e5414d 100644 --- a/libraries/audio-client/src/AudioIOStats.h +++ b/libraries/audio-client/src/AudioIOStats.h @@ -39,7 +39,7 @@ class MixedProcessedAudioStream; class AudioStreamStatsInterface : public QObject { Q_OBJECT - /**jsdoc + /*@jsdoc * Statistics for an audio stream. * *

Provided in properties of the {@link AudioStats} API.

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

Note: The injector streams' statistics are currently not provided.

* @function AudioStats.injectorStreamsChanged diff --git a/libraries/audio/src/AudioEffectOptions.cpp b/libraries/audio/src/AudioEffectOptions.cpp index 7451912ffef..94533a230e9 100644 --- a/libraries/audio/src/AudioEffectOptions.cpp +++ b/libraries/audio/src/AudioEffectOptions.cpp @@ -62,7 +62,7 @@ static void setOption(ScriptValuePointer arguments, const QString name, float de variable = arguments->property(name)->isNumber() ? (float)arguments->property(name)->toNumber() : defaultValue; } -/**jsdoc +/*@jsdoc * Reverberation options that can be used to initialize an {@link AudioEffectOptions} object when created. * @typedef {object} AudioEffectOptions.ReverbOptions * @property {number} bandwidth=10000 - The corner frequency (Hz) of the low-pass filter at reverb input. diff --git a/libraries/audio/src/AudioEffectOptions.h b/libraries/audio/src/AudioEffectOptions.h index 45026eb0c17..4f02a765f6a 100644 --- a/libraries/audio/src/AudioEffectOptions.h +++ b/libraries/audio/src/AudioEffectOptions.h @@ -19,7 +19,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * Audio effect options used by the {@link Audio} API. * *

Create using new AudioEffectOptions(...).

diff --git a/libraries/audio/src/AudioInjectorOptions.cpp b/libraries/audio/src/AudioInjectorOptions.cpp index 4c287e203bc..b49adf6963d 100644 --- a/libraries/audio/src/AudioInjectorOptions.cpp +++ b/libraries/audio/src/AudioInjectorOptions.cpp @@ -47,7 +47,7 @@ ScriptValuePointer injectorOptionsToScriptValue(ScriptEngine* engine, const Audi return obj; } -/**jsdoc +/*@jsdoc * Configures where and how an audio injector plays its audio. * @typedef {object} AudioInjector.AudioInjectorOptions * @property {Vec3} position=Vec3.ZERO - The position in the domain to play the sound. diff --git a/libraries/audio/src/Sound.h b/libraries/audio/src/Sound.h index f3e08dd1af4..0ea4079d7b0 100644 --- a/libraries/audio/src/Sound.h +++ b/libraries/audio/src/Sound.h @@ -123,7 +123,7 @@ class SoundProcessor : public QObject, public QRunnable { typedef QSharedPointer SharedSoundPointer; -/**jsdoc +/*@jsdoc * An audio resource, created by {@link SoundCache.getSound}, to be played back using {@link Audio.playSound}. *

Supported formats:

*
    @@ -158,7 +158,7 @@ class SoundScriptingInterface : public QObject { bool isReady() const { return _sound ? _sound->isReady() : false; } float getDuration() { return _sound ? _sound->getDuration() : 0.0f; } -/**jsdoc +/*@jsdoc * Triggered when the sound has been downloaded and is ready to be played. * @function SoundObject.ready * @returns {Signal} diff --git a/libraries/audio/src/SoundCacheScriptingInterface.h b/libraries/audio/src/SoundCacheScriptingInterface.h index 28425f0406c..41ad7b69387 100644 --- a/libraries/audio/src/SoundCacheScriptingInterface.h +++ b/libraries/audio/src/SoundCacheScriptingInterface.h @@ -24,7 +24,7 @@ class SoundCacheScriptingInterface : public ScriptableResourceCache, public Depe // Properties are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc + /*@jsdoc * The SoundCache API manages sound cache resources. * * @namespace SoundCache @@ -53,7 +53,7 @@ class SoundCacheScriptingInterface : public ScriptableResourceCache, public Depe public: SoundCacheScriptingInterface(); - /**jsdoc + /*@jsdoc * Loads the content of an audio file into a {@link SoundObject}, ready for playback by {@link Audio.playSound}. * @function SoundCache.getSound * @param {string} url - The URL of the audio file to load — Web, ATP, or file. See {@link SoundObject} for supported diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 7d8b3133774..b2d6a6260be 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -531,7 +531,7 @@ void Avatar::relayJointDataToChildren() { _reconstructSoftEntitiesJointMap = false; } -/**jsdoc +/*@jsdoc *

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

    * *
@@ -1918,7 +1918,7 @@ void Avatar::setParentJointIndex(quint16 parentJointIndex) { } } -/**jsdoc +/*@jsdoc * Information about a joint in an avatar's skeleton hierarchy. * @typedef {object} SkeletonJoint * @property {string} name - Joint name. diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 4fc9c255958..3f5faccb3be 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -204,7 +204,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM std::vector getSkeletonDefaultData(); - /**jsdoc + /*@jsdoc * Gets the default rotation of a joint (in the current avatar) relative to its parent. *

For information on the joint hierarchy used, see * Avatar Standards.

@@ -214,7 +214,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE virtual glm::quat getDefaultJointRotation(int index) const; - /**jsdoc + /*@jsdoc * Gets the default translation of a joint (in the current avatar) relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -226,7 +226,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE virtual glm::vec3 getDefaultJointTranslation(int index) const; - /**jsdoc + /*@jsdoc * Gets the default joint rotations in avatar coordinates. * The default pose of the avatar is defined by the position and orientation of all bones * in the avatar's model file. Typically this is a T-pose. @@ -240,7 +240,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE virtual glm::quat getAbsoluteDefaultJointRotationInObjectFrame(int index) const; - /**jsdoc + /*@jsdoc * Gets the default joint translations in avatar coordinates. * The default pose of the avatar is defined by the position and orientation of all bones * in the avatar's model file. Typically this is a T-pose. @@ -259,7 +259,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override; virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override; - /**jsdoc + /*@jsdoc * Sets the rotation of a joint relative to the avatar. *

Warning: Not able to be used in the MyAvatar API.

* @function MyAvatar.setAbsoluteJointRotationInObjectFrame @@ -269,7 +269,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; } - /**jsdoc + /*@jsdoc * Sets the translation of a joint relative to the avatar. *

Warning: Not able to be used in the MyAvatar API.

* @function MyAvatar.setAbsoluteJointTranslationInObjectFrame @@ -282,7 +282,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM virtual float getSpine2SplineRatio() const { return _spine2SplineRatio; } // world-space to avatar-space rigconversion functions - /**jsdoc + /*@jsdoc * Transforms a position in world coordinates to a position in a joint's coordinates, or avatar coordinates if no joint is * specified. * @function MyAvatar.worldToJointPoint @@ -292,7 +292,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 worldToJointPoint(const glm::vec3& position, const int jointIndex = -1) const; - /**jsdoc + /*@jsdoc * Transforms a direction in world coordinates to a direction in a joint's coordinates, or avatar coordinates if no joint * is specified. * @function MyAvatar.worldToJointDirection @@ -302,7 +302,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 worldToJointDirection(const glm::vec3& direction, const int jointIndex = -1) const; - /**jsdoc + /*@jsdoc * Transforms a rotation in world coordinates to a rotation in a joint's coordinates, or avatar coordinates if no joint is * specified. * @function MyAvatar.worldToJointRotation @@ -312,7 +312,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::quat worldToJointRotation(const glm::quat& rotation, const int jointIndex = -1) const; - /**jsdoc + /*@jsdoc * Transforms a position in a joint's coordinates, or avatar coordinates if no joint is specified, to a position in world * coordinates. * @function MyAvatar.jointToWorldPoint @@ -322,7 +322,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 jointToWorldPoint(const glm::vec3& position, const int jointIndex = -1) const; - /**jsdoc + /*@jsdoc * Transforms a direction in a joint's coordinates, or avatar coordinates if no joint is specified, to a direction in world * coordinates. * @function MyAvatar.jointToWorldDirection @@ -332,7 +332,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 jointToWorldDirection(const glm::vec3& direction, const int jointIndex = -1) const; - /**jsdoc + /*@jsdoc * Transforms a rotation in a joint's coordinates, or avatar coordinates if no joint is specified, to a rotation in world * coordinates. * @function MyAvatar.jointToWorldRotation @@ -350,7 +350,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM virtual int parseDataFromBuffer(const QByteArray& buffer) override; - /**jsdoc + /*@jsdoc * Sets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example, * with an offset of { x: 0, y: 0.1, z: 0 }, your avatar will appear to be raised off the ground slightly. * @function MyAvatar.setSkeletonOffset @@ -366,7 +366,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE void setSkeletonOffset(const glm::vec3& offset); - /**jsdoc + /*@jsdoc * Gets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example, * with an offset of { x: 0, y: 0.1, z: 0 }, your avatar will appear to be raised off the ground slightly. * @function MyAvatar.getSkeletonOffset @@ -378,7 +378,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM virtual glm::vec3 getSkeletonPosition() const; - /**jsdoc + /*@jsdoc * Gets the position of a joint in the current avatar. * @function MyAvatar.getJointPosition * @param {number} index - The index of the joint. @@ -386,7 +386,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 getJointPosition(int index) const; - /**jsdoc + /*@jsdoc * Gets the position of a joint in the current avatar. * @function MyAvatar.getJointPosition * @param {string} name - The name of the joint. @@ -396,7 +396,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 getJointPosition(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the position of the current avatar's neck in world coordinates. * @function MyAvatar.getNeckPosition * @returns {Vec3} The position of the neck in world coordinates. @@ -405,7 +405,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM */ Q_INVOKABLE glm::vec3 getNeckPosition() const; - /**jsdoc + /*@jsdoc * Gets the current acceleration of the avatar. * @function MyAvatar.getAcceleration * @returns {Vec3} The current acceleration of the avatar. @@ -431,7 +431,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM void getCapsule(glm::vec3& start, glm::vec3& end, float& radius); float computeMass(); - /**jsdoc + /*@jsdoc * Gets the position of the current avatar's feet (or rather, bottom of its collision capsule) in world coordinates. * @function MyAvatar.getWorldFeetPosition * @returns {Vec3} The position of the avatar's feet in world coordinates. @@ -441,7 +441,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM void setPositionViaScript(const glm::vec3& position) override; void setOrientationViaScript(const glm::quat& orientation) override; - /**jsdoc + /*@jsdoc * Gets the ID of the entity or avatar that the avatar is parented to. * @function MyAvatar.getParentID * @returns {Uuid} The ID of the entity or avatar that the avatar is parented to. {@link Uuid(0)|Uuid.NULL} if not parented. @@ -449,7 +449,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM // This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript. Q_INVOKABLE virtual const QUuid getParentID() const override { return SpatiallyNestable::getParentID(); } - /**jsdoc + /*@jsdoc * Sets the ID of the entity or avatar that the avatar is parented to. * @function MyAvatar.setParentID * @param {Uuid} parentID - The ID of the entity or avatar that the avatar should be parented to. Set to @@ -458,7 +458,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM // This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript. Q_INVOKABLE virtual void setParentID(const QUuid& parentID) override; - /**jsdoc + /*@jsdoc * Gets the joint of the entity or avatar that the avatar is parented to. * @function MyAvatar.getParentJointIndex * @returns {number} The joint of the entity or avatar that the avatar is parented to. 65535 or @@ -467,7 +467,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM // This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript. Q_INVOKABLE virtual quint16 getParentJointIndex() const override { return SpatiallyNestable::getParentJointIndex(); } - /**jsdoc + /*@jsdoc * Sets the joint of the entity or avatar that the avatar is parented to. * @function MyAvatar.setParentJointIndex * @param {number} parentJointIndex - The joint of the entity or avatar that the avatar should be parented to. Use @@ -477,7 +477,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM // This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript. Q_INVOKABLE virtual void setParentJointIndex(quint16 parentJointIndex) override; - /**jsdoc + /*@jsdoc * Gets information on all the joints in the avatar's skeleton. * @function MyAvatar.getSkeleton * @returns {SkeletonJoint[]} Information about each joint in the avatar's skeleton. @@ -497,7 +497,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM void setTargetScale(float targetScale) override; float getTargetScale() const { return _targetScale; } - /**jsdoc + /*@jsdoc * @function MyAvatar.getSimulationRate * @param {AvatarSimulationRate} [rateName=""] - Rate name. * @returns {number} Simulation rate in Hz. @@ -556,7 +556,7 @@ class Avatar : public AvatarData, public scriptable::ModelProvider, public MetaM uint32_t appendSubMetaItems(render::ItemIDs& subItems); signals: - /**jsdoc + /*@jsdoc * Triggered when the avatar's target scale is changed. The target scale is the desired scale of the avatar without any * restrictions on permissible scale values imposed by the domain. * @function MyAvatar.targetScaleChanged @@ -570,7 +570,7 @@ public slots: // FIXME - these should be migrated to use Pose data instead // thread safe, will return last valid palm from cache - /**jsdoc + /*@jsdoc * Gets the position of the left palm in world coordinates. * @function MyAvatar.getLeftPalmPosition * @returns {Vec3} The position of the left palm in world coordinates. @@ -579,7 +579,7 @@ public slots: */ glm::vec3 getLeftPalmPosition() const; - /**jsdoc + /*@jsdoc * Gets the rotation of the left palm in world coordinates. * @function MyAvatar.getLeftPalmRotation * @returns {Quat} The rotation of the left palm in world coordinates. @@ -588,7 +588,7 @@ public slots: */ glm::quat getLeftPalmRotation() const; - /**jsdoc + /*@jsdoc * Gets the position of the right palm in world coordinates. * @function MyAvatar.getRightPalmPosition * @returns {Vec3} The position of the right palm in world coordinates. @@ -597,7 +597,7 @@ public slots: */ glm::vec3 getRightPalmPosition() const; - /**jsdoc + /*@jsdoc * Get the rotation of the right palm in world coordinates. * @function MyAvatar.getRightPalmRotation * @returns {Quat} The rotation of the right palm in world coordinates. @@ -606,7 +606,7 @@ public slots: */ glm::quat getRightPalmRotation() const; - /**jsdoc + /*@jsdoc * @function MyAvatar.setModelURLFinished * @param {boolean} success * @deprecated This function is deprecated and will be removed. @@ -614,14 +614,14 @@ public slots: // hooked up to Model::setURLFinished signal void setModelURLFinished(bool success); - /**jsdoc + /*@jsdoc * @function MyAvatar.rigReady * @deprecated This function is deprecated and will be removed. */ // Hooked up to Model::rigReady signal void rigReady(); - /**jsdoc + /*@jsdoc * @function MyAvatar.rigReset * @deprecated This function is deprecated and will be removed. */ diff --git a/libraries/avatars-renderer/src/avatars-renderer/ScriptAvatar.h b/libraries/avatars-renderer/src/avatars-renderer/ScriptAvatar.h index 0b89e9d59e4..f434498204c 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/ScriptAvatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/ScriptAvatar.h @@ -16,7 +16,7 @@ #include "Avatar.h" -/**jsdoc +/*@jsdoc * Information about an avatar. * *

Create using {@link MyAvatar.getTargetAvatar} or {@link AvatarList.getAvatar}.

@@ -84,7 +84,7 @@ class ScriptAvatar : public ScriptAvatarData { public slots: - /**jsdoc + /*@jsdoc * Gets the default rotation of a joint in the avatar relative to its parent. *

For information on the joint hierarchy used, see * Avatar Standards.

@@ -95,7 +95,7 @@ public slots: */ glm::quat getDefaultJointRotation(int index) const; - /**jsdoc + /*@jsdoc * Gets the default translation of a joint in the avatar relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -108,7 +108,7 @@ public slots: glm::vec3 getDefaultJointTranslation(int index) const; - /**jsdoc + /*@jsdoc * Gets the offset applied to the avatar for rendering. * @function ScriptAvatar.getSkeletonOffset * @returns {Vec3} The skeleton offset if avatar data are available, otherwise {@link Vec3(0)|Vec3.ZERO}. @@ -116,7 +116,7 @@ public slots: glm::vec3 getSkeletonOffset() const; - /**jsdoc + /*@jsdoc * Gets the position of a joint in the avatar. * @function ScriptAvatar.getJointPosition * @param {number} index - The index of the joint. @@ -125,7 +125,7 @@ public slots: */ glm::vec3 getJointPosition(int index) const; - /**jsdoc + /*@jsdoc * Gets the position of a joint in the current avatar. * @function ScriptAvatar.getJointPosition * @param {string} name - The name of the joint. @@ -134,7 +134,7 @@ public slots: */ glm::vec3 getJointPosition(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the position of the current avatar's neck in world coordinates. * @function ScriptAvatar.getNeckPosition * @returns {Vec3} The position of the neck in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't @@ -143,7 +143,7 @@ public slots: glm::vec3 getNeckPosition() const; - /**jsdoc + /*@jsdoc * Gets the current acceleration of the avatar. * @function ScriptAvatar.getAcceleration * @returns {Vec3} The current acceleration of the avatar, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't available.. @@ -151,7 +151,7 @@ public slots: glm::vec3 getAcceleration() const; - /**jsdoc + /*@jsdoc * Gets the ID of the entity or avatar that the avatar is parented to. * @function ScriptAvatar.getParentID * @returns {Uuid} The ID of the entity or avatar that the avatar is parented to. {@link Uuid(0)|Uuid.NULL} if not parented @@ -159,7 +159,7 @@ public slots: */ QUuid getParentID() const; - /**jsdoc + /*@jsdoc * Gets the joint of the entity or avatar that the avatar is parented to. * @function ScriptAvatar.getParentJointIndex * @returns {number} The joint of the entity or avatar that the avatar is parented to. 65535 or @@ -169,7 +169,7 @@ public slots: quint16 getParentJointIndex() const; - /**jsdoc + /*@jsdoc * Gets information on all the joints in the avatar's skeleton. * @function ScriptAvatar.getSkeleton * @returns {SkeletonJoint[]} Information about each joint in the avatar's skeleton. @@ -177,7 +177,7 @@ public slots: QVariantList getSkeleton() const; - /**jsdoc + /*@jsdoc * @function ScriptAvatar.getSimulationRate * @param {AvatarSimulationRate} [rateName=""] - Rate name. * @returns {number} Simulation rate in Hz, or 0.0 if avatar data aren't available. @@ -186,7 +186,7 @@ public slots: float getSimulationRate(const QString& rateName = QString("")) const; - /**jsdoc + /*@jsdoc * Gets the position of the left palm in world coordinates. * @function ScriptAvatar.getLeftPalmPosition * @returns {Vec3} The position of the left palm in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't @@ -194,7 +194,7 @@ public slots: */ glm::vec3 getLeftPalmPosition() const; - /**jsdoc + /*@jsdoc * Gets the rotation of the left palm in world coordinates. * @function ScriptAvatar.getLeftPalmRotation * @returns {Quat} The rotation of the left palm in world coordinates, or {@link Quat(0)|Quat.IDENTITY} if the avatar data @@ -202,7 +202,7 @@ public slots: */ glm::quat getLeftPalmRotation() const; - /**jsdoc + /*@jsdoc * Gets the position of the right palm in world coordinates. * @function ScriptAvatar.getLeftPalmPosition * @returns {Vec3} The position of the right palm in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't @@ -210,7 +210,7 @@ public slots: */ glm::vec3 getRightPalmPosition() const; - /**jsdoc + /*@jsdoc * Gets the rotation of the right palm in world coordinates. * @function ScriptAvatar.getLeftPalmRotation * @returns {Quat} The rotation of the right palm in world coordinates, or {@link Quat(0)|Quat.IDENTITY} if the avatar data diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 2426ab2d619..6651b95d9eb 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1495,7 +1495,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { return numBytesRead; } -/**jsdoc +/*@jsdoc *

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

* *
@@ -1600,7 +1600,7 @@ float AvatarData::getDataRate(const QString& rateName) const { return 0.0f; } -/**jsdoc +/*@jsdoc *

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

* *
@@ -2930,7 +2930,7 @@ glm::vec3 AvatarData::getAbsoluteJointTranslationInObjectFrame(int index) const return glm::vec3(); } -/**jsdoc +/*@jsdoc * Information on an attachment worn by the avatar. * @typedef {object} AttachmentData * @property {string} modelUrl - The URL of the glTF, FBX, or OBJ model file. glTF models may be in JSON or binary format @@ -3130,7 +3130,7 @@ glm::mat4 AvatarData::getControllerRightHandMatrix() const { return _controllerRightHandMatrixCache.get(); } -/**jsdoc +/*@jsdoc * Information about a ray-to-avatar intersection. * @typedef {object} RayToAvatarIntersectionResult * @property {boolean} intersects - true if an avatar is intersected, false if it isn't. @@ -3186,7 +3186,7 @@ float AvatarData::_avatarSortCoefficientSize { 8.0f }; float AvatarData::_avatarSortCoefficientCenter { 0.25f }; float AvatarData::_avatarSortCoefficientAge { 1.0f }; -/**jsdoc +/*@jsdoc * An object with the UUIDs of avatar entities as keys and avatar entity properties objects as values. * @typedef {Object.} AvatarEntityMap */ diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index cfecd448f88..1f58a075ea4 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -118,7 +118,7 @@ const int PROCEDURAL_BLINK_FACE_MOVEMENT = 10; // 11th bit const int COLLIDE_WITH_OTHER_AVATARS = 11; // 12th bit const int HAS_HERO_PRIORITY = 12; // 13th bit (be scared) -/**jsdoc +/*@jsdoc *

The pointing state of the hands is specified by the following values:

*
* @@ -716,7 +716,7 @@ class AvatarData : public QObject, public SpatiallyNestable { void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement); bool getHasAudioEnabledFaceMovement() const; - /**jsdoc + /*@jsdoc * Gets the minimum scale allowed for this avatar in the current domain. * This value can change as the user changes avatars or when changing domains. * @function Avatar.getDomainMinScale @@ -724,7 +724,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE float getDomainMinScale() const; - /**jsdoc + /*@jsdoc * Gets the maximum scale allowed for this avatar in the current domain. * This value can change as the user changes avatars or when changing domains. * @function Avatar.getDomainMaxScale @@ -740,7 +740,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // not all subclasses of AvatarData have access to this data. virtual bool canMeasureEyeHeight() const { return false; } - /**jsdoc + /*@jsdoc * Gets the current eye height of the avatar. * This height is only an estimate and might be incorrect for avatars that are missing standard joints. * @function Avatar.getEyeHeight @@ -748,7 +748,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual float getEyeHeight() const { return _targetScale * getUnscaledEyeHeight(); } - /**jsdoc + /*@jsdoc * Gets the current height of the avatar. * This height is only an estimate and might be incorrect for avatars that are missing standard joints. * @function Avatar.getHeight @@ -761,7 +761,7 @@ class AvatarData : public QObject, public SpatiallyNestable { void setDomainMinimumHeight(float domainMinimumHeight); void setDomainMaximumHeight(float domainMaximumHeight); - /**jsdoc + /*@jsdoc * Sets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the * laser emanates from the tip of that finger, otherwise it emanates from the palm. * @function Avatar.setHandState @@ -769,7 +769,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE void setHandState(char s) { _handState = s; } - /**jsdoc + /*@jsdoc * Gets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the * laser emanates from the tip of that finger, otherwise it emanates from the palm. * @function Avatar.getHandState @@ -779,7 +779,7 @@ class AvatarData : public QObject, public SpatiallyNestable { const QVector& getRawJointData() const { return _jointData; } - /**jsdoc + /*@jsdoc * Sets joint translations and rotations from raw joint data. * @function Avatar.setRawJointData * @param {JointData[]} data - The raw joint data. @@ -787,7 +787,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE void setRawJointData(QVector data); - /**jsdoc + /*@jsdoc * Sets a specific joint's rotation and position relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

Setting joint data completely overrides/replaces all motion from the default animation system including inverse @@ -818,7 +818,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointData(int index, const glm::quat& rotation, const glm::vec3& translation); - /**jsdoc + /*@jsdoc * Sets a specific joint's rotation relative to its parent. *

Setting joint data completely overrides/replaces all motion from the default animation system including inverse * kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints, @@ -831,7 +831,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointRotation(int index, const glm::quat& rotation); - /**jsdoc + /*@jsdoc * Sets a specific joint's translation relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

Setting joint data completely overrides/replaces all motion from the default animation system including inverse @@ -845,7 +845,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointTranslation(int index, const glm::vec3& translation); - /**jsdoc + /*@jsdoc * Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default * animation system including inverse kinematics for that joint. *

Note: This is slightly faster than the function variation that specifies the joint name.

@@ -854,7 +854,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void clearJointData(int index); - /**jsdoc + /*@jsdoc * Checks that the data for a joint are valid. * @function Avatar.isJointDataValid * @param {number} index - The index of the joint. @@ -862,7 +862,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE bool isJointDataValid(int index) const; - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see * Avatar Standards. * @function Avatar.getJointRotation @@ -871,7 +871,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual glm::quat getJointRotation(int index) const; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -882,7 +882,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual glm::vec3 getJointTranslation(int index) const; - /**jsdoc + /*@jsdoc * Sets a specific joint's rotation and position relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

Setting joint data completely overrides/replaces all motion from the default animation system including inverse @@ -897,7 +897,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointData(const QString& name, const glm::quat& rotation, const glm::vec3& translation); - /**jsdoc + /*@jsdoc * Sets a specific joint's rotation relative to its parent. *

Setting joint data completely overrides/replaces all motion from the default animation system including inverse * kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints, @@ -930,7 +930,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointRotation(const QString& name, const glm::quat& rotation); - /**jsdoc + /*@jsdoc * Sets a specific joint's translation relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

Setting joint data completely overrides/replaces all motion from the default animation system including inverse @@ -956,7 +956,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointTranslation(const QString& name, const glm::vec3& translation); - /**jsdoc + /*@jsdoc * Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default * animation system including inverse kinematics for that joint. *

Note: This is slightly slower than the function variation that specifies the joint index.

@@ -975,7 +975,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void clearJointData(const QString& name); - /**jsdoc + /*@jsdoc * Checks if the data for a joint are valid. * @function Avatar.isJointDataValid * @param {string} name - The name of the joint. @@ -983,7 +983,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual bool isJointDataValid(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see * Avatar Standards. * @function Avatar.getJointRotation @@ -996,7 +996,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual glm::quat getJointRotation(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -1011,7 +1011,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual glm::vec3 getJointTranslation(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the rotations of all joints in the current avatar. Each joint's rotation is relative to its parent joint. * @function Avatar.getJointRotations * @returns {Quat[]} The rotations of all joints relative to each's parent. The values are in the same order as the array @@ -1023,7 +1023,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual QVector getJointRotations() const; - /**jsdoc + /*@jsdoc * Gets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in * model coordinates. *

Warning: These coordinates are not necessarily in meters.

@@ -1034,7 +1034,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual QVector getJointTranslations() const; - /**jsdoc + /*@jsdoc * Sets the rotations of all joints in the current avatar. Each joint's rotation is relative to its parent joint. *

Setting joint data completely overrides/replaces all motion from the default animation system including inverse * kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints, @@ -1072,7 +1072,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointRotations(const QVector& jointRotations); - /**jsdoc + /*@jsdoc * Sets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in * model coordinates. *

Warning: These coordinates are not necessarily in meters.

@@ -1088,7 +1088,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setJointTranslations(const QVector& jointTranslations); - /**jsdoc + /*@jsdoc * Clears all joint translations and rotations that have been set by script. This restores all motion from the default * animation system including inverse kinematics for all joints. * @function Avatar.clearJointsData @@ -1110,7 +1110,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void clearJointsData(); - /**jsdoc + /*@jsdoc * Gets the joint index for a named joint. The joint index value is the position of the joint in the array returned by * {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the Avatar API. * @function Avatar.getJointIndex @@ -1124,7 +1124,7 @@ class AvatarData : public QObject, public SpatiallyNestable { /// Returns the index of the joint with the specified name, or -1 if not found/unknown. Q_INVOKABLE virtual int getJointIndex(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the names of all the joints in the current avatar. * @function Avatar.getJointNames * @returns {string[]} The joint names. @@ -1136,7 +1136,7 @@ class AvatarData : public QObject, public SpatiallyNestable { Q_INVOKABLE virtual QStringList getJointNames() const; - /**jsdoc + /*@jsdoc * Sets the value of a blend shape to animate your avatar's face. In order for other users to see the resulting animations * on your avatar's face, set hasScriptedBlendshapes to true. When you are done using this API, * set hasScriptedBlendshapes back to false when the animation is complete. @@ -1153,7 +1153,7 @@ class AvatarData : public QObject, public SpatiallyNestable { Q_INVOKABLE void setBlendshape(QString name, float val) { _headData->setBlendshape(name, val); } - /**jsdoc + /*@jsdoc * Gets information about the models currently attached to your avatar. * @function Avatar.getAttachmentsVariant * @returns {AttachmentData[]} Information about all models attached to your avatar. @@ -1162,7 +1162,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // FIXME: Can this name be improved? Can it be deprecated? Q_INVOKABLE virtual QVariantList getAttachmentsVariant() const; - /**jsdoc + /*@jsdoc * Sets all models currently attached to your avatar. For example, if you retrieve attachment data using * {@link MyAvatar.getAttachmentsVariant} or {@link Avatar.getAttachmentsVariant}, make changes to it, and then want to * update your avatar's attachments per the changed data. @@ -1175,7 +1175,7 @@ class AvatarData : public QObject, public SpatiallyNestable { virtual void storeAvatarEntityDataPayload(const QUuid& entityID, const QByteArray& payload); - /**jsdoc + /*@jsdoc * @function Avatar.updateAvatarEntity * @param {Uuid} entityID - The entity ID. * @param {ArrayBuffer} entityData - Entity data. @@ -1183,7 +1183,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void updateAvatarEntity(const QUuid& entityID, const QByteArray& entityData); - /**jsdoc + /*@jsdoc * @function Avatar.clearAvatarEntity * @param {Uuid} entityID - The entity ID. * @param {boolean} [requiresRemovalFromTree=true] - unused @@ -1198,7 +1198,7 @@ class AvatarData : public QObject, public SpatiallyNestable { QList getAvatarEntityIDs() const; - /**jsdoc + /*@jsdoc * Enables blend shapes set using {@link Avatar.setBlendshape} or {@link MyAvatar.setBlendshape} to be transmitted to other * users so that they can see the animation of your avatar's face. *

Deprecated: This method is deprecated and will be removed. Use the @@ -1247,7 +1247,7 @@ class AvatarData : public QObject, public SpatiallyNestable { const QString& getSessionDisplayName() const { return _sessionDisplayName; } bool getLookAtSnappingEnabled() const { return _lookAtSnappingEnabled; } - /**jsdoc + /*@jsdoc * Sets the avatar's skeleton model. * @function Avatar.setSkeletonModelURL * @param {string} url - The avatar's FST file. @@ -1261,7 +1261,7 @@ class AvatarData : public QObject, public SpatiallyNestable { } virtual bool isCertifyFailed() const { return _verificationFailed; } - /**jsdoc + /*@jsdoc * Gets information about the models currently attached to your avatar. * @function Avatar.getAttachmentData * @returns {AttachmentData[]} Information about all models attached to your avatar. @@ -1276,7 +1276,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual QVector getAttachmentData() const; - /**jsdoc + /*@jsdoc * Sets all models currently attached to your avatar. For example, if you retrieve attachment data using * {@link MyAvatar.getAttachmentData} or {@link Avatar.getAttachmentData}, make changes to it, and then want to update your avatar's attachments per the * changed data. You can also remove all attachments by using setting attachmentData to null. @@ -1300,7 +1300,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void setAttachmentData(const QVector& attachmentData); - /**jsdoc + /*@jsdoc * Attaches a model to your avatar. For example, you can give your avatar a hat to wear, a guitar to hold, or a surfboard to * stand on. * @function Avatar.attach @@ -1344,7 +1344,7 @@ class AvatarData : public QObject, public SpatiallyNestable { float scale = 1.0f, bool isSoft = false, bool allowDuplicates = false, bool useSaved = true); - /**jsdoc + /*@jsdoc * Detaches the most recently attached instance of a particular model from either a specific joint or any joint. * @function Avatar.detachOne * @param {string} modelURL - The URL of the model to detach. @@ -1354,7 +1354,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE virtual void detachOne(const QString& modelURL, const QString& jointName = QString()); - /**jsdoc + /*@jsdoc * Detaches all instances of a particular model from either a specific joint or all joints. * @function Avatar.detachAll * @param {string} modelURL - The URL of the model to detach. @@ -1398,7 +1398,7 @@ class AvatarData : public QObject, public SpatiallyNestable { AABox getGlobalBoundingBox() const { return AABox(_globalPosition + _globalBoundingBoxOffset - _globalBoundingBoxDimensions, _globalBoundingBoxDimensions); } AABox getDefaultBubbleBox() const; - /**jsdoc + /*@jsdoc * @comment Documented in derived classes' JSDoc because implementations are different. */ // Get avatar entity data with all property values. Used in API. @@ -1407,7 +1407,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // Get avatar entity data with non-default property values. Used internally. virtual AvatarEntityMap getAvatarEntityDataNonDefault() const; - /**jsdoc + /*@jsdoc * @comment Documented in derived classes' JSDoc because implementations are different. */ Q_INVOKABLE virtual void setAvatarEntityData(const AvatarEntityMap& avatarEntityData); @@ -1415,7 +1415,7 @@ class AvatarData : public QObject, public SpatiallyNestable { void setAvatarEntityDataChanged(bool value) { _avatarEntityDataChanged = value; } AvatarEntityIDs getAndClearRecentlyRemovedIDs(); - /**jsdoc + /*@jsdoc * Gets the transform from the user's real world to the avatar's size, orientation, and position in the virtual world. * @function Avatar.getSensorToWorldMatrix * @returns {Mat4} The scale, rotation, and translation transform from the user's real world to the avatar's size, @@ -1432,7 +1432,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // thread safe Q_INVOKABLE glm::mat4 getSensorToWorldMatrix() const; - /**jsdoc + /*@jsdoc * Gets the scale that transforms dimensions in the user's real world to the avatar's size in the virtual world. * @function Avatar.getSensorToWorldScale * @returns {number} The scale that transforms dimensions in the user's real world to the avatar's size in the virtual @@ -1441,7 +1441,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // thread safe Q_INVOKABLE float getSensorToWorldScale() const; - /**jsdoc + /*@jsdoc * Gets the rotation and translation of the left hand controller relative to the avatar. * @function Avatar.getControllerLeftHandMatrix * @returns {Mat4} The rotation and translation of the left hand controller relative to the avatar. @@ -1457,7 +1457,7 @@ class AvatarData : public QObject, public SpatiallyNestable { // thread safe Q_INVOKABLE glm::mat4 getControllerLeftHandMatrix() const; - /**jsdoc + /*@jsdoc * Gets the rotation and translation of the right hand controller relative to the avatar. * @function Avatar.getControllerRightHandMatrix * @returns {Mat4} The rotation and translation of the right hand controller relative to the avatar. @@ -1466,7 +1466,7 @@ class AvatarData : public QObject, public SpatiallyNestable { Q_INVOKABLE glm::mat4 getControllerRightHandMatrix() const; - /**jsdoc + /*@jsdoc * Gets the amount of avatar mixer data being generated by the avatar. * @function Avatar.getDataRate * @param {AvatarDataRate} [rateName=""] - The type of avatar mixer data to get the data rate of. @@ -1474,7 +1474,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ Q_INVOKABLE float getDataRate(const QString& rateName = QString("")) const; - /**jsdoc + /*@jsdoc * Gets the update rate of avatar mixer data being generated by the avatar. * @function Avatar.getUpdateRate * @param {AvatarUpdateRate} [rateName=""] - The type of avatar mixer data to get the update rate of. @@ -1526,7 +1526,7 @@ class AvatarData : public QObject, public SpatiallyNestable { signals: - /**jsdoc + /*@jsdoc * Triggered when the avatar's displayName property value changes. * @function Avatar.displayNameChanged * @returns {Signal} @@ -1539,7 +1539,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ void displayNameChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's sessionDisplayName property value changes. * @function Avatar.sessionDisplayNameChanged * @returns {Signal} @@ -1552,7 +1552,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ void sessionDisplayNameChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's model (i.e., skeletonModelURL property value) changes. * @function Avatar.skeletonModelURLChanged * @returns {Signal} @@ -1565,7 +1565,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ void skeletonModelURLChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's lookAtSnappingEnabled property value changes. * @function Avatar.lookAtSnappingChanged * @param {boolean} enabled - true if look-at snapping is enabled, false if not. @@ -1579,7 +1579,7 @@ class AvatarData : public QObject, public SpatiallyNestable { */ void lookAtSnappingChanged(bool enabled); - /**jsdoc + /*@jsdoc * Triggered when the avatar's sessionUUID property value changes. * @function Avatar.sessionUUIDChanged * @returns {Signal} @@ -1594,7 +1594,7 @@ class AvatarData : public QObject, public SpatiallyNestable { public slots: -/**jsdoc +/*@jsdoc * @function Avatar.sendAvatarDataPacket * @param {boolean} [sendAll=false] - Send all. * @returns {number} @@ -1602,14 +1602,14 @@ public slots: */ virtual int sendAvatarDataPacket(bool sendAll = false); - /**jsdoc + /*@jsdoc * @function Avatar.sendIdentityPacket * @returns {number} * @deprecated This function is deprecated and will be removed. */ int sendIdentityPacket(); - /**jsdoc + /*@jsdoc * @function Avatar.setSessionUUID * @param {Uuid} sessionUUID - Session UUID. * @deprecated This function is deprecated and will be removed. @@ -1626,7 +1626,7 @@ public slots: } - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to the avatar. *

Warning: Not able to be used in the Avatar API.

* @function Avatar.getAbsoluteJointRotationInObjectFrame @@ -1635,7 +1635,7 @@ public slots: */ virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to the avatar. *

Warning: Not able to be used in the Avatar API.

* @function Avatar.getAbsoluteJointTranslationInObjectFrame @@ -1644,7 +1644,7 @@ public slots: */ virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override; - /**jsdoc + /*@jsdoc * Sets the rotation of a joint relative to the avatar. *

Warning: Not able to be used in the Avatar API.

* @function Avatar.setAbsoluteJointRotationInObjectFrame @@ -1654,7 +1654,7 @@ public slots: */ virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; } - /**jsdoc + /*@jsdoc * Sets the translation of a joint relative to the avatar. *

Warning: Not able to be used in the Avatar API.

* @function Avatar.setAbsoluteJointTranslationInObjectFrame @@ -1664,7 +1664,7 @@ public slots: */ virtual bool setAbsoluteJointTranslationInObjectFrame(int index, const glm::vec3& translation) override { return false; } - /**jsdoc + /*@jsdoc * Gets the target scale of the avatar without any restrictions on permissible values imposed by the domain. In contrast, the * scale property's value may be limited by the domain's settings. * @function Avatar.getTargetScale @@ -1677,7 +1677,7 @@ public slots: */ float getTargetScale() const { return _targetScale; } // why is this a slot? - /**jsdoc + /*@jsdoc * @function Avatar.resetLastSent * @deprecated This function is deprecated and will be removed. */ diff --git a/libraries/avatars/src/AvatarHashMap.h b/libraries/avatars/src/AvatarHashMap.h index e12e5b46495..dcb0604e504 100644 --- a/libraries/avatars/src/AvatarHashMap.h +++ b/libraries/avatars/src/AvatarHashMap.h @@ -35,7 +35,7 @@ const int CLIENT_TO_AVATAR_MIXER_BROADCAST_FRAMES_PER_SECOND = 50; const quint64 MIN_TIME_BETWEEN_MY_AVATAR_DATA_SENDS = USECS_PER_SECOND / CLIENT_TO_AVATAR_MIXER_BROADCAST_FRAMES_PER_SECOND; -/**jsdoc +/*@jsdoc * The AvatarList API provides information about avatars within the current domain. * *

Warning: An API named "AvatarList" is also provided for Interface, client entity, and avatar @@ -80,7 +80,7 @@ class AvatarHashMap : public QObject, public Dependency { // Currently, your own avatar will be included as the null avatar id. - /**jsdoc + /*@jsdoc * Gets the IDs of all avatars in the domain. *

Warning: If the AC script is acting as an avatar (i.e., Agent.isAvatar == true) the * avatar's ID is NOT included in results.

@@ -92,7 +92,7 @@ class AvatarHashMap : public QObject, public Dependency { */ Q_INVOKABLE QVector getAvatarIdentifiers(); - /**jsdoc + /*@jsdoc * Gets the IDs of all avatars within a specified distance from a point. *

Warning: If the AC script is acting as an avatar (i.e., Agent.isAvatar == true) the * avatar's ID is NOT included in results.

@@ -107,7 +107,7 @@ class AvatarHashMap : public QObject, public Dependency { */ Q_INVOKABLE QVector getAvatarsInRange(const glm::vec3& position, float rangeMeters) const; - /**jsdoc + /*@jsdoc * Gets information about an avatar. * @function AvatarList.getAvatar * @param {Uuid} avatarID - The ID of the avatar. @@ -126,7 +126,7 @@ class AvatarHashMap : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when an avatar arrives in the domain. * @function AvatarList.avatarAddedEvent * @param {Uuid} sessionUUID - The ID of the avatar that arrived in the domain. @@ -140,7 +140,7 @@ class AvatarHashMap : public QObject, public Dependency { */ void avatarAddedEvent(const QUuid& sessionUUID); - /**jsdoc + /*@jsdoc * Triggered when an avatar leaves the domain. * @function AvatarList.avatarRemovedEvent * @param {Uuid} sessionUUID - The ID of the avatar that left the domain. @@ -154,7 +154,7 @@ class AvatarHashMap : public QObject, public Dependency { */ void avatarRemovedEvent(const QUuid& sessionUUID); - /**jsdoc + /*@jsdoc * Triggered when an avatar's session ID changes. * @function AvatarList.avatarSessionChangedEvent * @param {Uuid} newSessionUUID - The new session ID. @@ -171,7 +171,7 @@ class AvatarHashMap : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Checks whether there is an avatar within a specified distance from a point. * @function AvatarList.isAvatarInRange * @param {string} position - The test position. @@ -183,7 +183,7 @@ public slots: protected slots: - /**jsdoc + /*@jsdoc * @function AvatarList.sessionUUIDChanged * @param {Uuid} sessionUUID - New session ID. * @param {Uuid} oldSessionUUID - Old session ID. @@ -191,7 +191,7 @@ protected slots: */ void sessionUUIDChanged(const QUuid& sessionUUID, const QUuid& oldUUID); - /**jsdoc + /*@jsdoc * @function AvatarList.processAvatarDataPacket * @param {object} message - Message. * @param {object} sendingNode - Sending node. @@ -199,7 +199,7 @@ protected slots: */ void processAvatarDataPacket(QSharedPointer message, SharedNodePointer sendingNode); - /**jsdoc + /*@jsdoc * @function AvatarList.processAvatarIdentityPacket * @param {object} message - Message. * @param {object} sendingNode - Sending node. @@ -207,7 +207,7 @@ protected slots: */ void processAvatarIdentityPacket(QSharedPointer message, SharedNodePointer sendingNode); - /**jsdoc + /*@jsdoc * @function AvatarList.processBulkAvatarTraits * @param {object} message - Message. * @param {object} sendingNode - Sending node. @@ -215,7 +215,7 @@ protected slots: */ void processBulkAvatarTraits(QSharedPointer message, SharedNodePointer sendingNode); - /**jsdoc + /*@jsdoc * @function AvatarList.processKillAvatar * @param {object} message - Message. * @param {object} sendingNode - Sending node. diff --git a/libraries/avatars/src/ScriptAvatarData.h b/libraries/avatars/src/ScriptAvatarData.h index 290e8c178a0..a9deb81a27f 100644 --- a/libraries/avatars/src/ScriptAvatarData.h +++ b/libraries/avatars/src/ScriptAvatarData.h @@ -107,7 +107,7 @@ class ScriptAvatarData : public QObject { // QString getSkeletonModelURLFromScript() const; - /**jsdoc + /*@jsdoc * Gets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the * laser emanates from the tip of that finger, otherwise it emanates from the palm. * @function ScriptAvatar.getHandState @@ -115,7 +115,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE char getHandState() const; - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see * Avatar Standards. * @function ScriptAvatar.getJointRotation @@ -125,7 +125,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE glm::quat getJointRotation(int index) const; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -137,7 +137,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE glm::vec3 getJointTranslation(int index) const; - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see * Avatar Standards. * @function ScriptAvatar.getJointRotation @@ -147,7 +147,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE glm::quat getJointRotation(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see @@ -159,7 +159,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE glm::vec3 getJointTranslation(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the rotations of all joints in the avatar. Each joint's rotation is relative to its parent joint. * @function ScriptAvatar.getJointRotations * @returns {Quat[]} The rotations of all joints relative to each's parent, or [] if the avatar data aren't @@ -167,7 +167,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE QVector getJointRotations() const; - /**jsdoc + /*@jsdoc * Gets the translations of all joints in the avatar. Each joint's translation is relative to its parent joint, in * model coordinates. *

Warning: These coordinates are not necessarily in meters.

@@ -178,7 +178,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE QVector getJointTranslations() const; - /**jsdoc + /*@jsdoc * Checks that the data for a joint are valid. * @function ScriptAvatar.isJointDataValid * @param {number} index - The index of the joint. @@ -187,7 +187,7 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE bool isJointDataValid(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the joint index for a named joint. The joint index value is the position of the joint in the array returned by * {@linkScriptAvatar.getJointNames}. * @function ScriptAvatar.getJointIndex @@ -196,14 +196,14 @@ class ScriptAvatarData : public QObject { */ Q_INVOKABLE int getJointIndex(const QString& name) const; - /**jsdoc + /*@jsdoc * Gets the names of all the joints in the avatar. * @function ScriptAvatar.getJointNames * @returns {string[]} The joint names, or [] if the avatar data aren't available. */ Q_INVOKABLE QStringList getJointNames() const; - /**jsdoc + /*@jsdoc * Gets information about the models currently attached to the avatar. * @function ScriptAvatar.getAttachmentData * @returns {AttachmentData[]} Information about all models attached to the avatar, or [] if the avatar data @@ -233,28 +233,28 @@ class ScriptAvatarData : public QObject { signals: - /**jsdoc + /*@jsdoc * Triggered when the avatar's displayName property value changes. * @function ScriptAvatar.displayNameChanged * @returns {Signal} */ void displayNameChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's sessionDisplayName property value changes. * @function ScriptAvatar.sessionDisplayNameChanged * @returns {Signal} */ void sessionDisplayNameChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's model (i.e., skeletonModelURL property value) changes. * @function ScriptAvatar.skeletonModelURLChanged * @returns {Signal} */ void skeletonModelURLChanged(); - /**jsdoc + /*@jsdoc * Triggered when the avatar's lookAtSnappingEnabled property value changes. * @function ScriptAvatar.lookAtSnappingChanged * @param {boolean} enabled - true if look-at snapping is enabled, false if not. @@ -264,7 +264,7 @@ class ScriptAvatarData : public QObject { public slots: - /**jsdoc + /*@jsdoc * Gets the rotation of a joint relative to the avatar. * @function ScriptAvatar.getAbsoluteJointRotationInObjectFrame * @param {number} index - The index of the joint. @@ -273,7 +273,7 @@ public slots: */ glm::quat getAbsoluteJointRotationInObjectFrame(int index) const; - /**jsdoc + /*@jsdoc * Gets the translation of a joint relative to the avatar. * @function ScriptAvatar.getAbsoluteJointTranslationInObjectFrame * @param {number} index - The index of the joint. diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index 2edd1adfebc..5f95cff76b9 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -33,7 +33,7 @@ namespace controller { return std::make_shared(input); } - /**jsdoc + /*@jsdoc *

The Controller.Actions object has properties representing predefined actions on the user's avatar and * Interface. The property values are integer IDs, uniquely identifying each action. Read-only.

*

These actions can be used as end points in the routes of a {@link MappingObject}. The data item routed to each action diff --git a/libraries/controllers/src/controllers/InputDevice.h b/libraries/controllers/src/controllers/InputDevice.h index dc8e811f0c9..31143c9b4a8 100644 --- a/libraries/controllers/src/controllers/InputDevice.h +++ b/libraries/controllers/src/controllers/InputDevice.h @@ -32,7 +32,7 @@ namespace controller { class Endpoint; using EndpointPointer = std::shared_ptr; -/**jsdoc +/*@jsdoc *

Some controller actions may be associated with one or both hands:

*
* @@ -52,7 +52,7 @@ enum Hand { BOTH }; -/**jsdoc +/*@jsdoc *

The Controller.Hardware object has properties representing standard and hardware-specific controller and * computer outputs, plus predefined actions on Interface and the user's avatar. Read-only.

*

The outputs can be mapped to actions or functions in a {@link RouteObject} mapping. Additionally, hardware-specific diff --git a/libraries/controllers/src/controllers/Pose.cpp b/libraries/controllers/src/controllers/Pose.cpp index c5968d65365..ec58a6443e7 100644 --- a/libraries/controllers/src/controllers/Pose.cpp +++ b/libraries/controllers/src/controllers/Pose.cpp @@ -31,7 +31,7 @@ namespace controller { velocity == right.getVelocity() && angularVelocity == right.getAngularVelocity(); } - /**jsdoc + /*@jsdoc * The pose of a joint or other item relative to the world or a parent. * @typedef {object} Pose * @property {Vec3} translation - Translation. diff --git a/libraries/controllers/src/controllers/ScriptingInterface.h b/libraries/controllers/src/controllers/ScriptingInterface.h index da3ac8461b1..f4f72b31c27 100644 --- a/libraries/controllers/src/controllers/ScriptingInterface.h +++ b/libraries/controllers/src/controllers/ScriptingInterface.h @@ -71,7 +71,7 @@ namespace controller { ScriptingInterface(); virtual ~ScriptingInterface() {}; - /**jsdoc + /*@jsdoc * Gets a list of all available actions. * @function Controller.getAllActions * @returns {Action[]} All available actions. @@ -80,7 +80,7 @@ namespace controller { // FIXME: This function causes a JavaScript crash: https://highfidelity.manuscript.com/f/cases/edit/13921 Q_INVOKABLE QVector getAllActions(); - /**jsdoc + /*@jsdoc * Gets a list of all available inputs for a hardware device. * @function Controller.getAvailableInputs * @param {number} deviceID - Integer ID of the hardware device. @@ -90,7 +90,7 @@ namespace controller { // FIXME: This function causes a JavaScript crash: https://highfidelity.manuscript.com/f/cases/edit/13922 Q_INVOKABLE QVector getAvailableInputs(unsigned int device); - /**jsdoc + /*@jsdoc * Finds the name of a particular controller from its device ID. * @function Controller.getDeviceName * @param {number} deviceID - The integer ID of the device. @@ -104,7 +104,7 @@ namespace controller { */ Q_INVOKABLE QString getDeviceName(unsigned int device); - /**jsdoc + /*@jsdoc * Gets the current value of an action. * @function Controller.getActionValue * @param {number} actionID - The integer ID of the action. @@ -119,7 +119,7 @@ namespace controller { */ Q_INVOKABLE float getActionValue(int action); - /**jsdoc + /*@jsdoc * Finds the ID of a specific controller from its device name. * @function Controller.findDevice * @param {string} deviceName - The name of the device to find. @@ -130,7 +130,7 @@ namespace controller { */ Q_INVOKABLE int findDevice(QString name); - /**jsdoc + /*@jsdoc * Gets the names of all currently available controller devices plus "Actions", "Application", and "Standard". * @function Controller.getDeviceNames * @returns {string[]} An array of device names. @@ -141,7 +141,7 @@ namespace controller { */ Q_INVOKABLE QVector getDeviceNames(); - /**jsdoc + /*@jsdoc * Finds the ID of an action from its name. * @function Controller.findAction * @param {string} actionName - The name of the action: one of the {@link Controller.Actions} property names. @@ -154,7 +154,7 @@ namespace controller { */ Q_INVOKABLE int findAction(QString actionName); - /**jsdoc + /*@jsdoc * Gets the names of all actions available as properties of {@link Controller.Actions}. * @function Controller.getActionNames * @returns {string[]} An array of action names. @@ -165,7 +165,7 @@ namespace controller { */ Q_INVOKABLE QVector getActionNames() const; - /**jsdoc + /*@jsdoc * Gets the value of a controller button or axis output. Note: Also gets the value of a controller axis output. * @function Controller.getValue * @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} item. @@ -184,7 +184,7 @@ namespace controller { */ Q_INVOKABLE float getValue(const int& source) const; - /**jsdoc + /*@jsdoc * Gets the value of a controller axis output. Note: Also gets the value of a controller button output. * @function Controller.getAxisValue * @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} item. @@ -194,7 +194,7 @@ namespace controller { // TODO: getAxisValue() should use const int& parameter? Or others shouldn't? Q_INVOKABLE float getAxisValue(int source) const; - /**jsdoc + /*@jsdoc * Gets the value of a controller pose output. * @function Controller.getPoseValue * @param {number} source - The {@link Controller.Standard} or {@link Controller.Hardware} pose output. @@ -206,7 +206,7 @@ namespace controller { */ Q_INVOKABLE Pose getPoseValue(const int& source) const; - /**jsdoc + /*@jsdoc * Triggers a haptic pulse on connected and enabled devices that have the capability. * @function Controller.triggerHapticPulse * @param {number} strength - The strength of the haptic pulse, range 0.01.0. @@ -223,7 +223,7 @@ namespace controller { */ Q_INVOKABLE bool triggerHapticPulse(float strength, float duration, uint16_t index = 2) const; - /**jsdoc + /*@jsdoc * Triggers a 250ms haptic pulse on connected and enabled devices that have the capability. * @function Controller.triggerShortHapticPulse * @param {number} strength - The strength of the haptic pulse, range 0.01.0. @@ -234,7 +234,7 @@ namespace controller { */ Q_INVOKABLE bool triggerShortHapticPulse(float strength, uint16_t index = 2) const; - /**jsdoc + /*@jsdoc * Triggers a haptic pulse on a particular device if connected and enabled and it has the capability. * @function Controller.triggerHapticPulseOnDevice * @param {number} deviceID - The ID of the device to trigger the haptic pulse on. @@ -254,7 +254,7 @@ namespace controller { Q_INVOKABLE bool triggerHapticPulseOnDevice(unsigned int device, float strength, float duration, uint16_t index = 2) const; - /**jsdoc + /*@jsdoc * Triggers a 250ms haptic pulse on a particular device if connected and enabled and it has the capability. * @function Controller.triggerShortHapticPulseOnDevice * @param {number} deviceID - The ID of the device to trigger the haptic pulse on. @@ -266,7 +266,7 @@ namespace controller { */ Q_INVOKABLE bool triggerShortHapticPulseOnDevice(unsigned int device, float strength, uint16_t index = 2) const; - /**jsdoc + /*@jsdoc * Creates a new controller mapping. Routes can then be added to the mapping using {@link MappingObject} methods and * routed to Standard controls, Actions, or script functions using {@link RouteObject} * methods. The mapping can then be enabled using {@link Controller.enableMapping|enableMapping} for it to take effect. @@ -287,7 +287,7 @@ namespace controller { */ Q_INVOKABLE QObject* newMapping(const QString& mappingName = QUuid::createUuid().toString()); - /**jsdoc + /*@jsdoc * Enables or disables a controller mapping. When enabled, the routes in the mapping have effect. * @function Controller.enableMapping * @param {string} mappingName - The name of the mapping. @@ -295,14 +295,14 @@ namespace controller { */ Q_INVOKABLE void enableMapping(const QString& mappingName, bool enable = true); - /**jsdoc + /*@jsdoc * Disables a controller mapping. When disabled, the routes in the mapping have no effect. * @function Controller.disableMapping * @param {string} mappingName - The name of the mapping. */ Q_INVOKABLE void disableMapping(const QString& mappingName) { enableMapping(mappingName, false); } - /**jsdoc + /*@jsdoc * Creates a new controller mapping from a {@link Controller.MappingJSON|MappingJSON} string. Use * {@link Controller.enableMapping|enableMapping} to enable the mapping for it to take effect. * @function Controller.parseMapping @@ -325,7 +325,7 @@ namespace controller { */ Q_INVOKABLE QObject* parseMapping(const QString& json); - /**jsdoc + /*@jsdoc * Creates a new controller mapping from a {@link Controller.MappingJSON|MappingJSON} JSON file at a URL. Use * {@link Controller.enableMapping|enableMapping} to enable the mapping for it to take effect. *

Warning: This function is not yet implemented; it doesn't load a mapping and just returns @@ -337,7 +337,7 @@ namespace controller { Q_INVOKABLE QObject* loadMapping(const QString& jsonUrl); - /**jsdoc + /*@jsdoc * Gets the {@link Controller.Hardware} property tree. Calling this function is the same as using the {@link Controller} * property, Controller.Hardware. * @function Controller.getHardware @@ -345,7 +345,7 @@ namespace controller { */ Q_INVOKABLE const QVariantMap getHardware() { return _hardware; } - /**jsdoc + /*@jsdoc * Gets the {@link Controller.Actions} property tree. Calling this function is the same as using the {@link Controller} * property, Controller.Actions. * @function Controller.getActions @@ -353,7 +353,7 @@ namespace controller { */ Q_INVOKABLE const QVariantMap getActions() { return _actions; } //undefined - /**jsdoc + /*@jsdoc * Gets the {@link Controller.Standard} property tree. Calling this function is the same as using the {@link Controller} * property, Controller.Standard. * @function Controller.getStandard @@ -362,7 +362,7 @@ namespace controller { Q_INVOKABLE const QVariantMap getStandard() { return _standard; } - /**jsdoc + /*@jsdoc * Starts making a recording of currently active controllers. * @function Controller.startInputRecording * @example

@@ -382,13 +382,13 @@ namespace controller { */ Q_INVOKABLE void startInputRecording(); - /**jsdoc + /*@jsdoc * Stops making a recording started by {@link Controller.startInputRecording|startInputRecording}. * @function Controller.stopInputRecording */ Q_INVOKABLE void stopInputRecording(); - /**jsdoc + /*@jsdoc * Plays back the current recording from the beginning. The current recording may have been recorded by * {@link Controller.startInputRecording|startInputRecording} and * {@link Controller.stopInputRecording|stopInputRecording}, or loaded by @@ -411,13 +411,13 @@ namespace controller { */ Q_INVOKABLE void startInputPlayback(); - /**jsdoc + /*@jsdoc * Stops play back of a recording started by {@link Controller.startInputPlayback|startInputPlayback}. * @function Controller.stopInputPlayback */ Q_INVOKABLE void stopInputPlayback(); - /**jsdoc + /*@jsdoc * Saves the current recording to a file. The current recording may have been recorded by * {@link Controller.startInputRecording|startInputRecording} and * {@link Controller.stopInputRecording|stopInputRecording}, or loaded by @@ -427,21 +427,21 @@ namespace controller { */ Q_INVOKABLE void saveInputRecording(); - /**jsdoc + /*@jsdoc * Loads an input recording, ready for play back. * @function Controller.loadInputRecording * @param {string} file - The path to the recording file, prefixed by "file:///". */ Q_INVOKABLE void loadInputRecording(const QString& file); - /**jsdoc + /*@jsdoc * Gets the directory in which input recordings are saved. * @function Controller.getInputRecorderSaveDirectory * @returns {string} The directory in which input recordings are saved. */ Q_INVOKABLE QString getInputRecorderSaveDirectory(); - /**jsdoc + /*@jsdoc * Gets the names of all the active and running (enabled) input devices. * @function Controller.getRunningInputDevices * @returns {string[]} The list of current active and running input devices. @@ -457,7 +457,7 @@ namespace controller { public slots: - /**jsdoc + /*@jsdoc * Disables processing of mouse "move", "press", "double-press", and "release" events into * {@link Controller.Hardware|Controller.Hardware.Keyboard} outputs. * @function Controller.captureMouseEvents @@ -485,7 +485,7 @@ namespace controller { */ virtual void captureMouseEvents() { _mouseCaptured = true; } - /**jsdoc + /*@jsdoc * Enables processing of mouse "move", "press", "double-press", and "release" events into * {@link Controller.Hardware-Keyboard|Controller.Hardware.Keyboard} outputs that were disabled using * {@link Controller.captureMouseEvents|captureMouseEvents}. @@ -494,7 +494,7 @@ namespace controller { virtual void releaseMouseEvents() { _mouseCaptured = false; } - /**jsdoc + /*@jsdoc * Disables processing of touch "begin", "update", and "end" events into * {@link Controller.Hardware|Controller.Hardware.Keyboard}, * {@link Controller.Hardware|Controller.Hardware.Touchscreen}, and @@ -503,7 +503,7 @@ namespace controller { */ virtual void captureTouchEvents() { _touchCaptured = true; } - /**jsdoc + /*@jsdoc * Enables processing of touch "begin", "update", and "end" events into * {@link Controller.Hardware|Controller.Hardware.Keyboard}, * {@link Controller.Hardware|Controller.Hardware.Touchscreen}, and @@ -514,14 +514,14 @@ namespace controller { virtual void releaseTouchEvents() { _touchCaptured = false; } - /**jsdoc + /*@jsdoc * Disables processing of mouse wheel rotation events into {@link Controller.Hardware|Controller.Hardware.Keyboard} * outputs. * @function Controller.captureWheelEvents */ virtual void captureWheelEvents() { _wheelCaptured = true; } - /**jsdoc + /*@jsdoc * Enables processing of mouse wheel rotation events into {@link Controller.Hardware|Controller.Hardware.Keyboard} * outputs that wer disabled using {@link Controller.captureWheelEvents|captureWheelEvents}. * @function Controller.releaseWheelEvents @@ -529,7 +529,7 @@ namespace controller { virtual void releaseWheelEvents() { _wheelCaptured = false; } - /**jsdoc + /*@jsdoc * Disables translating and rotating the user's avatar in response to keyboard and controller controls. * @function Controller.captureActionEvents * @example @@ -543,14 +543,14 @@ namespace controller { */ virtual void captureActionEvents() { _actionsCaptured = true; } - /**jsdoc + /*@jsdoc * Enables translating and rotating the user's avatar in response to keyboard and controller controls that were disabled * using {@link Controller.captureActionEvents|captureActionEvents}. * @function Controller.releaseActionEvents */ virtual void releaseActionEvents() { _actionsCaptured = false; } - /**jsdoc + /*@jsdoc * @function Controller.updateRunningInputDevices * @param {string} deviceName - Device name. * @param {boolean} isRunning - Is running. @@ -560,7 +560,7 @@ namespace controller { void updateRunningInputDevices(const QString& deviceName, bool isRunning, const QStringList& runningDevices); signals: - /**jsdoc + /*@jsdoc * Triggered when an action occurs. * @function Controller.actionEvent * @param {number} actionID - The ID of the action, per {@link Controller.findAction|findAction}. @@ -585,7 +585,7 @@ namespace controller { */ void actionEvent(int action, float state); - /**jsdoc + /*@jsdoc * Triggered when there is a new controller input event. * @function Controller.inputEvent * @param {number} action - The input action, per {@link Controller.Standard}. @@ -609,7 +609,7 @@ namespace controller { */ void inputEvent(int action, float state); - /**jsdoc + /*@jsdoc * Triggered when a device is registered or unregistered by a plugin. Not all plugins generate * hardwareChanged events: for example, connecting or disconnecting a mouse will not generate an event but * connecting or disconnecting an Xbox controller will. @@ -618,7 +618,7 @@ namespace controller { */ void hardwareChanged(); - /**jsdoc + /*@jsdoc * Triggered when an input device starts or stops being active and running (enabled). For example, enabling or * disabling the LeapMotion in Settings > Controls > Calibration will trigger this signal. * @function Controller.inputDeviceRunningChanged diff --git a/libraries/controllers/src/controllers/StandardController.cpp b/libraries/controllers/src/controllers/StandardController.cpp index 41835223ea0..9bf10753fe3 100644 --- a/libraries/controllers/src/controllers/StandardController.cpp +++ b/libraries/controllers/src/controllers/StandardController.cpp @@ -27,7 +27,7 @@ void StandardController::focusOutEvent() { _buttonPressedMap.clear(); }; -/**jsdoc +/*@jsdoc *

The Controller.Standard object has properties representing standard controller outputs. Those for physical * controllers are based on the XBox controller, with aliases for PlayStation. The property values are integer IDs, uniquely * identifying each output. Read-only.

diff --git a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h index 83d2f94877a..bb528666b7c 100644 --- a/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h +++ b/libraries/controllers/src/controllers/impl/MappingBuilderProxy.h @@ -26,7 +26,7 @@ namespace controller { class ScriptingInterface; class UserInputMapper; -/**jsdoc +/*@jsdoc *

A {@link Controller} mapping object that can contain a set of routes that map:

*
Make a controller recording.Disable avatar translation and rotation for a short period.
* diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index d58f70e12a8..15e596e8d6f 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -665,7 +665,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { return changedProperties; } -/**jsdoc +/*@jsdoc * Different entity types have different properties: some common to all entities (listed in the table) and some specific to * each {@link Entities.EntityType|EntityType} (linked to below). * @@ -872,7 +872,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @see {@link Entities.EntityProperties-Zone|EntityProperties-Zone} */ -/**jsdoc +/*@jsdoc * The "Box" {@link Entities.EntityType|EntityType} is the same as the "Shape" * {@link Entities.EntityType|EntityType} except that its shape value is always set to "Cube" * when the entity is created. If its shape property value is subsequently changed then the entity's @@ -883,7 +883,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @see {@link Entities.EntityProperties-Shape|EntityProperties-Shape} */ -/**jsdoc +/*@jsdoc * The "Light" {@link Entities.EntityType|EntityType} adds local lighting effects. It has properties in addition * to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -912,7 +912,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Line" {@link Entities.EntityType|EntityType} draws thin, straight lines between a sequence of two or more * points. It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. *

Deprecated: Use {@link Entities.EntityProperties-PolyLine|PolyLine} entities instead.

@@ -940,7 +940,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Material" {@link Entities.EntityType|EntityType} modifies existing materials on entities and avatars. It * has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. *

To apply a material to an entity, set the material entity's parentID property to the entity ID. @@ -1006,7 +1006,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Model" {@link Entities.EntityType|EntityType} displays a glTF, FBX, or OBJ model. When adding an entity, * if no dimensions value is specified then the model is automatically sized to its * {@link Entities.EntityProperties|naturalDimensions}. It has properties in addition to the common @@ -1078,7 +1078,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "ParticleEffect" {@link Entities.EntityType|EntityType} displays a particle system that can be used to * simulate things such as fire, smoke, snow, magic spells, etc. The particles emanate from an ellipsoid or part thereof. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. @@ -1195,7 +1195,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "PolyLine" {@link Entities.EntityType|EntityType} draws textured, straight lines between a sequence of * points. It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1245,7 +1245,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "PolyVox" {@link Entities.EntityType|EntityType} displays a set of textured voxels. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * If you have two or more neighboring PolyVox entities of the same size abutting each other, you can display them as joined by @@ -1299,7 +1299,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * Entities.setVoxelSphere(polyVox, position, 0.8, 255); */ -/**jsdoc +/*@jsdoc * The "Shape" {@link Entities.EntityType|EntityType} displays an entity of a specified shape. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1320,7 +1320,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Sphere" {@link Entities.EntityType|EntityType} is the same as the "Shape" * {@link Entities.EntityType|EntityType} except that its shape value is always set to "Sphere" * when the entity is created. If its shape property value is subsequently changed then the entity's @@ -1331,7 +1331,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @see {@link Entities.EntityProperties-Shape|EntityProperties-Shape} */ -/**jsdoc +/*@jsdoc * The "Text" {@link Entities.EntityType|EntityType} displays a 2D rectangle of text in the domain. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1377,7 +1377,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Web" {@link Entities.EntityType|EntityType} displays a browsable web page. Each user views their own copy * of the web page: if one user navigates to another page on the entity, other users do not see the change; if a video is being * played, users don't see it in sync. It has properties in addition to the common @@ -1431,7 +1431,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Zone" {@link Entities.EntityType|EntityType} is a volume of lighting effects and avatar permissions. * Avatar interaction events such as {@link Entities.enterEntity} are also often used with a Zone entity. It has properties in * addition to the common {@link Entities.EntityProperties|EntityProperties}. @@ -1497,7 +1497,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Image" {@link Entities.EntityType|EntityType} displays an image on a 2D rectangle in the domain. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1532,7 +1532,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Grid" {@link Entities.EntityType|EntityType} displays a grid on a 2D plane. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1560,7 +1560,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * }); */ -/**jsdoc +/*@jsdoc * The "Gizmo" {@link Entities.EntityType|EntityType} displays an entity that could be used as UI. * It has properties in addition to the common {@link Entities.EntityProperties|EntityProperties}. * @@ -1944,7 +1944,7 @@ ScriptValuePointer EntityItemProperties::copyToScriptValue(ScriptEngine* engine, _ring.copyToScriptValue(_desiredProperties, properties, engine, skipDefaults, defaultEntityProperties); } - /**jsdoc + /*@jsdoc * The axis-aligned bounding box of an entity. * @typedef {object} Entities.BoundingBox * @property {Vec3} brn - The bottom right near (minimum axes values) corner of the AA box. @@ -1979,7 +1979,7 @@ ScriptValuePointer EntityItemProperties::copyToScriptValue(ScriptEngine* engine, ScriptValuePointer renderInfo = engine->newObject(); - /**jsdoc + /*@jsdoc * Information on how an entity is rendered. Properties are only filled in for Model entities; other * entity types have an empty object, {}. * @typedef {object} Entities.RenderInfo @@ -3006,7 +3006,7 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr return false; } -/**jsdoc +/*@jsdoc * Information about an entity property. * @typedef {object} Entities.EntityPropertyInfo * @property {number} propertyEnum - The internal number of the property. diff --git a/libraries/entities/src/EntityScriptServerLogClient.h b/libraries/entities/src/EntityScriptServerLogClient.h index 6d3dec16e26..62b76f88702 100644 --- a/libraries/entities/src/EntityScriptServerLogClient.h +++ b/libraries/entities/src/EntityScriptServerLogClient.h @@ -16,7 +16,7 @@ #include -/**jsdoc +/*@jsdoc * The EntityScriptServerLog API makes server log file output written by server entity scripts available to client * scripts. * @@ -34,7 +34,7 @@ class EntityScriptServerLogClient : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when one or more lines are written to the server log by server entity scripts. * @function EntityScriptServerLog.receivedNewLogLines * @param {string} logLines - The server log lines written by server entity scripts. If there are multiple lines they are diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index cba590f30a9..1d7c21644a7 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -61,7 +61,7 @@ class EntityPropertyMetadataRequest { QPointer _manager; }; -/**jsdoc +/*@jsdoc * The result of a {@link Entities.findRayIntersection|findRayIntersection} search using a {@link PickRay}. * @typedef {object} Entities.RayToEntityIntersectionResult * @property {boolean} intersects - true if the {@link PickRay} intersected an entity, false if it @@ -105,7 +105,7 @@ class ParabolaToEntityIntersectionResult { QVariantMap extraInfo; }; -/**jsdoc +/*@jsdoc * The Entities API provides facilities to create and interact with entities. Entities are 2D or 3D objects * displayed in-world. Depending on their {@link Entities.EntityHostType|EntityHostType}, they may persist in the domain as * "domain" entities, travel to different domains with a user as "avatar" entities, or be visible only to an individual user as @@ -196,7 +196,7 @@ class EntityScriptingInterface : public OctreeScriptingInterface, public Depende ParabolaToEntityIntersectionResult evalParabolaIntersectionVector(const PickParabola& parabola, PickFilter searchFilter, const QVector& entityIdsToInclude, const QVector& entityIdsToDiscard); - /**jsdoc + /*@jsdoc * Gets the properties of multiple entities. * @function Entities.getMultipleEntityProperties * @param {Uuid[]} entityIDs - The IDs of the entities to get the properties of. @@ -219,7 +219,7 @@ class EntityScriptingInterface : public OctreeScriptingInterface, public Depende public slots: - /**jsdoc + /*@jsdoc * Checks whether or not the script can change the locked property of entities. Locked entities have their * locked property set to true and cannot be edited or deleted. * @function Entities.canAdjustLocks @@ -234,7 +234,7 @@ public slots: */ Q_INVOKABLE bool canAdjustLocks(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can rez (create) new entities in the domain. * @function Entities.canRez * @returns {boolean} true if the domain server will allow the script to rez (create) new entities, otherwise @@ -242,7 +242,7 @@ public slots: */ Q_INVOKABLE bool canRez(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can rez (create) new temporary entities in the domain. Temporary entities are entities * with a finite lifetime property value set. * @function Entities.canRezTmp @@ -251,7 +251,7 @@ public slots: */ Q_INVOKABLE bool canRezTmp(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can rez (create) new certified entities in the domain. Certified entities are entities * that have PoP certificates. * @function Entities.canRezCertified @@ -260,7 +260,7 @@ public slots: */ Q_INVOKABLE bool canRezCertified(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can rez (create) new temporary certified entities in the domain. Temporary entities are * entities with a finite lifetime property value set. Certified entities are entities that have PoP * certificates. @@ -270,7 +270,7 @@ public slots: */ Q_INVOKABLE bool canRezTmpCertified(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can make changes to the asset server's assets. * @function Entities.canWriteAssets * @returns {boolean} true if the domain server will allow the script to make changes to the asset server's @@ -278,7 +278,7 @@ public slots: */ Q_INVOKABLE bool canWriteAssets(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can replace the domain's content set. * @function Entities.canReplaceContent * @returns {boolean} true if the domain server will allow the script to replace the domain's content set, @@ -286,7 +286,7 @@ public slots: */ Q_INVOKABLE bool canReplaceContent(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can get and set the privateUserData property of entities. * @function Entities.canGetAndSetPrivateUserData * @returns {boolean} true if the domain server will allow the script to get and set the @@ -294,7 +294,7 @@ public slots: */ Q_INVOKABLE bool canGetAndSetPrivateUserData(); - /**jsdoc + /*@jsdoc * Checks whether or not the script can rez avatar entities. * @function Entities.canRezAvatarEntities * @returns {boolean} true if the domain server will allow the script to rez avatar entities, @@ -302,7 +302,7 @@ public slots: */ Q_INVOKABLE bool canRezAvatarEntities(); - /**jsdoc + /*@jsdoc *

How an entity is hosted and sent to others for display.

*
* @@ -323,7 +323,7 @@ public slots: * @typedef {string} Entities.EntityHostType */ - /**jsdoc + /*@jsdoc * Adds a new domain, avatar, or local entity. * @function Entities.addEntity * @param {Entities.EntityProperties} properties - The properties of the entity to create. @@ -352,7 +352,7 @@ public slots: return addEntityInternal(properties, entityHostType); } - /**jsdoc + /*@jsdoc * Adds a new avatar entity ({@link Entities.EntityProperties|entityHostType} property is * "avatar") or domain entity ({@link Entities.EntityProperties|entityHostType} property is * "domain"). @@ -373,7 +373,7 @@ public slots: Q_INVOKABLE QUuid addModelEntity(const QString& name, const QString& modelUrl, const QString& textures, const QString& shapeType, bool dynamic, bool collisionless, bool grabbable, const glm::vec3& position, const glm::vec3& gravity); - /**jsdoc + /*@jsdoc * Creates a clone of an entity. The clone has the same properties as the original except that: it has a modified * name property, clone-related properties are set per the original entity's clone-related * {@link Entities.EntityProperties|properties} (e.g., cloneLifetime), and its clone-related properties are @@ -388,7 +388,7 @@ public slots: */ Q_INVOKABLE QUuid cloneEntity(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets an entity's property values. * @function Entities.getEntityProperties * @param {Uuid} entityID - The ID of the entity to get the properties of. @@ -411,7 +411,7 @@ public slots: Q_INVOKABLE EntityItemProperties getEntityProperties(const QUuid& entityID); Q_INVOKABLE EntityItemProperties getEntityProperties(const QUuid& entityID, EntityPropertyFlags desiredProperties); - /**jsdoc + /*@jsdoc * Edits an entity, changing one or more of its property values. * @function Entities.editEntity * @param {Uuid} entityID - The ID of the entity to edit. @@ -438,7 +438,7 @@ public slots: */ Q_INVOKABLE QUuid editEntity(const QUuid& entityID, const EntityItemProperties& properties); - /**jsdoc + /*@jsdoc * Deletes an entity. * @function Entities.deleteEntity * @param {Uuid} entityID - The ID of the entity to delete. @@ -456,7 +456,7 @@ public slots: */ Q_INVOKABLE void deleteEntity(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets an entity's type. * @function Entities.getEntityType * @param {Uuid} id - The ID of the entity to get the type of. @@ -464,7 +464,7 @@ public slots: */ Q_INVOKABLE QString getEntityType(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets an entity's script object. In particular, this is useful for accessing a {@link Entities.EntityProperties-Web|Web} * entity's HTML EventBridge script object to exchange messages with the web page script. *

To send a message from an Interface script to a Web entity over its event bridge:

@@ -536,7 +536,7 @@ public slots: */ Q_INVOKABLE QObject* getEntityObject(const QUuid& id); - /**jsdoc + /*@jsdoc * Checks whether an entity's assets have been loaded. For example, for an Model entity the result indicates * whether its textures have been loaded. * @function Entities.isLoaded @@ -545,7 +545,7 @@ public slots: */ Q_INVOKABLE bool isLoaded(const QUuid& id); - /**jsdoc + /*@jsdoc * Checks if there is an entity with a specified ID. * @function Entities.isAddedEntity * @param {Uuid} id - The ID to check. @@ -553,7 +553,7 @@ public slots: */ Q_INVOKABLE bool isAddedEntity(const QUuid& id); - /**jsdoc + /*@jsdoc * Calculates the size of some text in a {@link Entities.EntityProperties-Text|Text} entity. The entity need not be set * visible. *

Note: The size of text in a Text entity cannot be calculated immediately after the @@ -566,7 +566,7 @@ public slots: */ Q_INVOKABLE QSizeF textSize(const QUuid& id, const QString& text); - /**jsdoc + /*@jsdoc * Calls a method in a client entity script from an Interface, avatar, or client entity script, or calls a method in a * server entity script from a server entity script. The entity script method must be exposed as a property in the target * entity script. Additionally, if calling a server entity script, the server entity script must include the method's name @@ -600,7 +600,7 @@ public slots: */ Q_INVOKABLE void callEntityMethod(const QUuid& entityID, const QString& method, const QStringList& params = QStringList()); - /**jsdoc + /*@jsdoc * Calls a method in a server entity script from an Interface, avatar, or client entity script. The server entity script * method must be exposed as a property in the target server entity script. Additionally, the server entity script must * include the method's name in an exposed property called remotelyCallable that is an array of method names @@ -637,7 +637,7 @@ public slots: */ Q_INVOKABLE void callEntityServerMethod(const QUuid& entityID, const QString& method, const QStringList& params = QStringList()); - /**jsdoc + /*@jsdoc * Calls a method in a specific user's client entity script from a server entity script. The entity script method must be * exposed as a property in the target client entity script. Additionally, the client entity script must * include the method's name in an exposed property called remotelyCallable that is an array of method names @@ -706,7 +706,7 @@ public slots: Q_INVOKABLE void callEntityClientMethod(const QUuid& clientSessionID, const QUuid& entityID, const QString& method, const QStringList& params = QStringList()); - /**jsdoc + /*@jsdoc * Finds the domain or avatar entity with a position closest to a specified point and within a specified radius. * @function Entities.findClosestEntity * @param {Vec3} center - The point about which to search. @@ -720,7 +720,7 @@ public slots: /// this function will not find any models in script engine contexts which don't have access to models Q_INVOKABLE QUuid findClosestEntity(const glm::vec3& center, float radius) const; - /**jsdoc + /*@jsdoc * Finds all domain and avatar entities that intersect a sphere. *

Note: Server entity scripts only find entities that have a server entity script * running in them or a parent entity. You can apply a dummy script to entities that you want found in a search.

@@ -736,7 +736,7 @@ public slots: /// this function will not find any models in script engine contexts which don't have access to models Q_INVOKABLE QVector findEntities(const glm::vec3& center, float radius) const; - /**jsdoc + /*@jsdoc * Finds all domain and avatar entities whose axis-aligned boxes intersect a search axis-aligned box. *

Note: Server entity scripts only find entities that have a server entity script * running in them or a parent entity. You can apply a dummy script to entities that you want found in a search.

@@ -749,7 +749,7 @@ public slots: /// this function will not find any models in script engine contexts which don't have access to models Q_INVOKABLE QVector findEntitiesInBox(const glm::vec3& corner, const glm::vec3& dimensions) const; - /**jsdoc + /*@jsdoc * Finds all domain and avatar entities whose axis-aligned boxes intersect a search frustum. *

Note: Server entity scripts only find entities that have a server entity script * running in them or a parent entity. You can apply a dummy script to entities that you want found in a search.

@@ -766,7 +766,7 @@ public slots: /// this function will not find any models in script engine contexts which don't have access to entities Q_INVOKABLE QVector findEntitiesInFrustum(QVariantMap frustum) const; - /**jsdoc + /*@jsdoc * Finds all domain and avatar entities of a particular type that intersect a sphere. *

Note: Server entity scripts only find entities that have a server entity script * running in them or a parent entity. You can apply a dummy script to entities that you want found in a search.

@@ -783,7 +783,7 @@ public slots: /// this function will not find any entities in script engine contexts which don't have access to entities Q_INVOKABLE QVector findEntitiesByType(const QString entityType, const glm::vec3& center, float radius) const; - /**jsdoc + /*@jsdoc * Finds all domain and avatar entities with a particular name that intersect a sphere. *

Note: Server entity scripts only find entities that have a server entity script * running in them or a parent entity. You can apply a dummy script to entities that you want found in a search.

@@ -802,7 +802,7 @@ public slots: Q_INVOKABLE QVector findEntitiesByName(const QString entityName, const glm::vec3& center, float radius, bool caseSensitiveSearch = false) const; - /**jsdoc + /*@jsdoc * Finds the first avatar or domain entity intersected by a {@link PickRay}. Light and Zone * entities are not intersected unless they've been configured as pickable using * {@link Entities.setLightsArePickable|setLightsArePickable} and {@link Entities.setZonesArePickable|setZonesArePickable}, @@ -841,7 +841,7 @@ public slots: const ScriptValuePointer& entityIdsToInclude = ScriptValuePointer(), const ScriptValuePointer& entityIdsToDiscard = ScriptValuePointer(), bool visibleOnly = false, bool collidableOnly = false) const; - /**jsdoc + /*@jsdoc * Reloads an entity's server entity script such that the latest version re-downloaded. * @function Entities.reloadServerScripts * @param {Uuid} entityID - The ID of the entity to reload the server entity script of. @@ -850,14 +850,14 @@ public slots: */ Q_INVOKABLE bool reloadServerScripts(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets the status of a server entity script attached to an entity. * @function Entities.getServerScriptStatus * @param {Uuid} entityID - The ID of the entity to get the server entity script status of. * @param {Entities~getServerScriptStatusCallback} callback - The function to call upon completion. * @returns {boolean} true always. */ - /**jsdoc + /*@jsdoc * Called when a {@link Entities.getServerScriptStatus} call is complete. * @callback Entities~getServerScriptStatusCallback * @param {boolean} success - true if the server entity script status could be obtained, otherwise @@ -869,7 +869,7 @@ public slots: */ Q_INVOKABLE bool getServerScriptStatus(const QUuid& entityID, ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Gets metadata for certain entity properties such as script and serverScripts. * @function Entities.queryPropertyMetadata * @param {Uuid} entityID - The ID of the entity to get the metadata for. @@ -879,7 +879,7 @@ public slots: * false. * @throws Throws an error if property is not handled yet or callback is not a function. */ - /**jsdoc + /*@jsdoc * Gets metadata for certain entity properties such as script and serverScripts. * @function Entities.queryPropertyMetadata * @param {Uuid} entityID - The ID of the entity to get the metadata for. @@ -890,7 +890,7 @@ public slots: * false. * @throws Throws an error if property is not handled yet or callback is not a function. */ - /**jsdoc + /*@jsdoc * Called when a {@link Entities.queryPropertyMetadata} call is complete. * @callback Entities~queryPropertyMetadataCallback * @param {string} error - undefined if there was no error, otherwise an error message. @@ -901,7 +901,7 @@ public slots: ScriptValuePointer methodOrName = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Sets whether or not ray picks intersect the bounding box of {@link Entities.EntityProperties-Light|Light} entities. By * default, Light entities are not intersected. The setting lasts for the Interface session. Ray picks are performed using * {@link Entities.findRayIntersection|findRayIntersection}, or the {@link Picks} API. @@ -912,7 +912,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE void setLightsArePickable(bool value); - /**jsdoc + /*@jsdoc * Gets whether or not ray picks intersect the bounding box of {@link Entities.EntityProperties-Light|Light} entities. Ray * picks are performed using {@link Entities.findRayIntersection|findRayIntersection}, or the {@link Picks} API. * @function Entities.getLightsArePickable @@ -922,7 +922,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool getLightsArePickable() const; - /**jsdoc + /*@jsdoc * Sets whether or not ray picks intersect the bounding box of {@link Entities.EntityProperties-Zone|Zone} entities. By * default, Zone entities are not intersected. The setting lasts for the Interface session. Ray picks are performed using * {@link Entities.findRayIntersection|findRayIntersection}, or the {@link Picks} API. @@ -933,7 +933,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE void setZonesArePickable(bool value); - /**jsdoc + /*@jsdoc * Gets whether or not ray picks intersect the bounding box of {@link Entities.EntityProperties-Zone|Zone} entities. Ray * picks are performed using {@link Entities.findRayIntersection|findRayIntersection}, or the {@link Picks} API. * @function Entities.getZonesArePickable @@ -943,7 +943,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool getZonesArePickable() const; - /**jsdoc + /*@jsdoc * Sets whether or not {@link Entities.EntityProperties-Zone|Zone} entities' boundaries should be drawn. Currently not * used. * @function Entities.setDrawZoneBoundaries @@ -953,7 +953,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE void setDrawZoneBoundaries(bool value); - /**jsdoc + /*@jsdoc * Gets whether or not {@link Entities.EntityProperties-Zone|Zone} entities' boundaries should be drawn. Currently * not used. * @function Entities.getDrawZoneBoundaries @@ -964,7 +964,7 @@ public slots: Q_INVOKABLE bool getDrawZoneBoundaries() const; - /**jsdoc + /*@jsdoc * Sets the values of all voxels in a spherical portion of a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. * @function Entities.setVoxelSphere * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-PolyVox|PolyVox} entity. @@ -985,7 +985,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setVoxelSphere(const QUuid& entityID, const glm::vec3& center, float radius, int value); - /**jsdoc + /*@jsdoc * Sets the values of all voxels in a capsule-shaped portion of a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. * @function Entities.setVoxelCapsule * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-PolyVox|PolyVox} entity. @@ -1009,7 +1009,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setVoxelCapsule(const QUuid& entityID, const glm::vec3& start, const glm::vec3& end, float radius, int value); - /**jsdoc + /*@jsdoc * Sets the value of a particular voxel in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. * @function Entities.setVoxel * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-PolyVox|PolyVox} entity. @@ -1031,7 +1031,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setVoxel(const QUuid& entityID, const glm::vec3& position, int value); - /**jsdoc + /*@jsdoc * Sets the values of all voxels in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. * @function Entities.setAllVoxels * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-PolyVox|PolyVox} entity. @@ -1049,7 +1049,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setAllVoxels(const QUuid& entityID, int value); - /**jsdoc + /*@jsdoc * Sets the values of all voxels in a cubic portion of a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. * @function Entities.setVoxelsInCuboid * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-PolyVox|PolyVox} entity. @@ -1074,7 +1074,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setVoxelsInCuboid(const QUuid& entityID, const glm::vec3& lowPosition, const glm::vec3& cuboidSize, int value); - /**jsdoc + /*@jsdoc * Converts voxel coordinates in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity to world coordinates. Voxel * coordinates are relative to the minimum axes values corner of the entity with a scale of Vec3.ONE being the * dimensions of each voxel. @@ -1109,7 +1109,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 voxelCoordsToWorldCoords(const QUuid& entityID, glm::vec3 voxelCoords); - /**jsdoc + /*@jsdoc * Converts world coordinates to voxel coordinates in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. Voxel * coordinates are relative to the minimum axes values corner of the entity, with a scale of Vec3.ONE being * the dimensions of each voxel. @@ -1123,7 +1123,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 worldCoordsToVoxelCoords(const QUuid& entityID, glm::vec3 worldCoords); - /**jsdoc + /*@jsdoc * Converts voxel coordinates in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity to local coordinates. Local * coordinates are relative to the minimum axes value corner of the entity, with the scale being the same as world * coordinates. Voxel coordinates are relative to the minimum axes values corner of the entity, with a scale of @@ -1147,7 +1147,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 voxelCoordsToLocalCoords(const QUuid& entityID, glm::vec3 voxelCoords); - /**jsdoc + /*@jsdoc * Converts local coordinates to voxel coordinates in a {@link Entities.EntityProperties-PolyVox|PolyVox} entity. Local * coordinates are relative to the minimum axes value corner of the entity, with the scale being the same as world * coordinates. Voxel coordinates are relative to the minimum axes values corner of the entity, with a scale of @@ -1162,7 +1162,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 localCoordsToVoxelCoords(const QUuid& entityID, glm::vec3 localCoords); - /**jsdoc + /*@jsdoc * Sets all the points in a {@link Entities.EntityProperties-Line|Line} entity. * @function Entities.setAllPoints * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-Line|Line} entity. @@ -1198,7 +1198,7 @@ public slots: */ Q_INVOKABLE bool setAllPoints(const QUuid& entityID, const QVector& points); - /**jsdoc + /*@jsdoc * Appends a point to a {@link Entities.EntityProperties-Line|Line} entity. * @function Entities.appendPoint * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-Line|Line} entity. @@ -1230,7 +1230,7 @@ public slots: */ Q_INVOKABLE bool appendPoint(const QUuid& entityID, const glm::vec3& point); - /**jsdoc + /*@jsdoc * Dumps debug information about all entities in Interface's local in-memory tree of entities it knows about to the program * log. * @function Entities.dumpTree @@ -1238,7 +1238,7 @@ public slots: Q_INVOKABLE void dumpTree() const; - /**jsdoc + /*@jsdoc * Adds an action to an entity. An action is registered with the physics engine and is applied every physics simulation * step. Any entity may have more than one action associated with it, but only as many as will fit in an entity's * {@link Entities.EntityProperties|actionData} property. @@ -1266,7 +1266,7 @@ public slots: */ Q_INVOKABLE QUuid addAction(const QString& actionTypeString, const QUuid& entityID, const QVariantMap& arguments); - /**jsdoc + /*@jsdoc * Updates an entity action. * @function Entities.updateAction * @param {Uuid} entityID - The ID of the entity with the action to update. @@ -1276,7 +1276,7 @@ public slots: */ Q_INVOKABLE bool updateAction(const QUuid& entityID, const QUuid& actionID, const QVariantMap& arguments); - /**jsdoc + /*@jsdoc * Deletes an action from an entity. * @function Entities.deleteAction * @param {Uuid} entityID - The ID of entity to delete the action from. @@ -1285,7 +1285,7 @@ public slots: */ Q_INVOKABLE bool deleteAction(const QUuid& entityID, const QUuid& actionID); - /**jsdoc + /*@jsdoc * Gets the IDs of the actions that are associated with an entity. * @function Entities.getActionIDs * @param {Uuid} entityID - The entity to get the action IDs for. @@ -1293,7 +1293,7 @@ public slots: */ Q_INVOKABLE QVector getActionIDs(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets the arguments of an action. * @function Entities.getActionArguments * @param {Uuid} entityID - The ID of the entity with the action. @@ -1303,7 +1303,7 @@ public slots: Q_INVOKABLE QVariantMap getActionArguments(const QUuid& entityID, const QUuid& actionID); - /**jsdoc + /*@jsdoc * Gets the translation of a joint in a {@link Entities.EntityProperties-Model|Model} entity relative to the entity's * position and orientation. * @function Entities.getAbsoluteJointTranslationInObjectFrame @@ -1316,7 +1316,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 getAbsoluteJointTranslationInObjectFrame(const QUuid& entityID, int jointIndex); - /**jsdoc + /*@jsdoc * Gets the index of the parent joint of a joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.getJointParent * @param {Uuid} entityID - The ID of the entity. @@ -1325,7 +1325,7 @@ public slots: */ Q_INVOKABLE int getJointParent(const QUuid& entityID, int index); - /**jsdoc + /*@jsdoc * Gets the rotation of a joint in a {@link Entities.EntityProperties-Model|Model} entity relative to the entity's * position and orientation. * @function Entities.getAbsoluteJointRotationInObjectFrame @@ -1355,7 +1355,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::quat getAbsoluteJointRotationInObjectFrame(const QUuid& entityID, int jointIndex); - /**jsdoc + /*@jsdoc * Sets the translation of a joint in a {@link Entities.EntityProperties-Model|Model} entity relative to the entity's * position and orientation. * @function Entities.setAbsoluteJointTranslationInObjectFrame @@ -1369,7 +1369,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setAbsoluteJointTranslationInObjectFrame(const QUuid& entityID, int jointIndex, glm::vec3 translation); - /**jsdoc + /*@jsdoc * Sets the rotation of a joint in a {@link Entities.EntityProperties-Model|Model} entity relative to the entity's position * and orientation. * @function Entities.setAbsoluteJointRotationInObjectFrame @@ -1401,7 +1401,7 @@ public slots: Q_INVOKABLE bool setAbsoluteJointRotationInObjectFrame(const QUuid& entityID, int jointIndex, glm::quat rotation); - /**jsdoc + /*@jsdoc * Gets the local translation of a joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.getLocalJointTranslation * @param {Uuid} entityID - The ID of the entity. @@ -1412,7 +1412,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::vec3 getLocalJointTranslation(const QUuid& entityID, int jointIndex); - /**jsdoc + /*@jsdoc * Gets the local rotation of a joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.getLocalJointRotation * @param {Uuid} entityID - The ID of the entity. @@ -1438,7 +1438,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE glm::quat getLocalJointRotation(const QUuid& entityID, int jointIndex); - /**jsdoc + /*@jsdoc * Sets the local translation of a joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.setLocalJointTranslation * @param {Uuid} entityID - The ID of the entity. @@ -1451,7 +1451,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setLocalJointTranslation(const QUuid& entityID, int jointIndex, glm::vec3 translation); - /**jsdoc + /*@jsdoc * Sets the local rotation of a joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.setLocalJointRotation * @param {Uuid} entityID - The ID of the entity. @@ -1481,7 +1481,7 @@ public slots: Q_INVOKABLE bool setLocalJointRotation(const QUuid& entityID, int jointIndex, glm::quat rotation); - /**jsdoc + /*@jsdoc * Sets the local translations of joints in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.setLocalJointTranslations * @param {Uuid} entityID - The ID of the entity. @@ -1493,7 +1493,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setLocalJointTranslations(const QUuid& entityID, const QVector& translations); - /**jsdoc + /*@jsdoc * Sets the local rotations of joints in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.setLocalJointRotations * @param {Uuid} entityID - The ID of the entity. @@ -1535,7 +1535,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE bool setLocalJointRotations(const QUuid& entityID, const QVector& rotations); - /**jsdoc + /*@jsdoc * Sets the local rotations and translations of joints in a {@link Entities.EntityProperties-Model|Model} entity. This is * the same as calling both {@link Entities.setLocalJointRotations|setLocalJointRotations} and * {@link Entities.setLocalJointTranslations|setLocalJointTranslations} at the same time. @@ -1553,7 +1553,7 @@ public slots: const QVector& translations); - /**jsdoc + /*@jsdoc * Gets the index of a named joint in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.getJointIndex * @param {Uuid} entityID - The ID of the entity. @@ -1579,7 +1579,7 @@ public slots: // FIXME move to a renderable entity interface Q_INVOKABLE int getJointIndex(const QUuid& entityID, const QString& name); - /**jsdoc + /*@jsdoc * Gets the names of all the joints in a {@link Entities.EntityProperties-Model|Model} entity. * @function Entities.getJointNames * @param {Uuid} entityID - The ID of the {@link Entities.EntityProperties-Model|Model} entity. @@ -1605,7 +1605,7 @@ public slots: Q_INVOKABLE QStringList getJointNames(const QUuid& entityID); - /**jsdoc + /*@jsdoc * Gets the IDs of entities and avatars that are directly parented to an entity or avatar model. To get all descendants, * you can recurse on the IDs returned. * @function Entities.getChildrenIDs @@ -1636,7 +1636,7 @@ public slots: */ Q_INVOKABLE QVector getChildrenIDs(const QUuid& parentID); - /**jsdoc + /*@jsdoc * Gets the IDs of entities and avatars that are directly parented to an entity or avatar model's joint. To get all * descendants, you can use {@link Entities.getChildrenIDs|getChildrenIDs} to recurse on the IDs returned. * @function Entities.getChildrenIDsOfJoint @@ -1674,7 +1674,7 @@ public slots: */ Q_INVOKABLE QVector getChildrenIDsOfJoint(const QUuid& parentID, int jointIndex); - /**jsdoc + /*@jsdoc * Checks whether an entity has an entity as an ancestor (parent, parent's parent, etc.). * @function Entities.isChildOfParent * @param {Uuid} childID - The ID of the child entity to test for being a child, grandchild, etc. @@ -1703,7 +1703,7 @@ public slots: */ Q_INVOKABLE bool isChildOfParent(const QUuid& childID, const QUuid& parentID); - /**jsdoc + /*@jsdoc * Gets the type — entity or avatar — of an in-world item. * @function Entities.getNestableType * @param {Uuid} id - The ID of the item to get the type of. @@ -1720,14 +1720,14 @@ public slots: */ Q_INVOKABLE QString getNestableType(const QUuid& id); - /**jsdoc + /*@jsdoc * Gets the ID of the {@link Entities.EntityProperties-Web|Web} entity that has keyboard focus. * @function Entities.getKeyboardFocusEntity * @returns {Uuid} The ID of the {@link Entities.EntityProperties-Web|Web} entity that has focus, if any, otherwise null. */ Q_INVOKABLE QUuid getKeyboardFocusEntity() const; - /**jsdoc + /*@jsdoc * Sets the {@link Entities.EntityProperties-Web|Web} entity that has keyboard focus. * @function Entities.setKeyboardFocusEntity * @param {Uuid} id - The ID of the {@link Entities.EntityProperties-Web|Web} entity to set keyboard focus to. Use @@ -1735,7 +1735,7 @@ public slots: */ Q_INVOKABLE void setKeyboardFocusEntity(const QUuid& id); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.mousePressOnEntity|mousePressOnEntity} event. * @function Entities.sendMousePressOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1743,7 +1743,7 @@ public slots: */ Q_INVOKABLE void sendMousePressOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.mouseMoveOnEntity|mouseMoveOnEntity} event. * @function Entities.sendMouseMoveOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1751,7 +1751,7 @@ public slots: */ Q_INVOKABLE void sendMouseMoveOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.mouseReleaseOnEntity|mouseReleaseOnEntity} event. * @function Entities.sendMouseReleaseOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1759,7 +1759,7 @@ public slots: */ Q_INVOKABLE void sendMouseReleaseOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.clickDownOnEntity|clickDownOnEntity} event. * @function Entities.sendClickDownOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1767,7 +1767,7 @@ public slots: */ Q_INVOKABLE void sendClickDownOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.holdingClickOnEntity|holdingClickOnEntity} event. * @function Entities.sendHoldingClickOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1775,7 +1775,7 @@ public slots: */ Q_INVOKABLE void sendHoldingClickOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.clickReleaseOnEntity|clickReleaseOnEntity} event. * @function Entities.sendClickReleaseOnEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1783,7 +1783,7 @@ public slots: */ Q_INVOKABLE void sendClickReleaseOnEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.hoverEnterEntity|hoverEnterEntity} event. * @function Entities.sendHoverEnterEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1791,7 +1791,7 @@ public slots: */ Q_INVOKABLE void sendHoverEnterEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.hoverOverEntity|hoverOverEntity} event. * @function Entities.sendHoverOverEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1799,7 +1799,7 @@ public slots: */ Q_INVOKABLE void sendHoverOverEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Emits a {@link Entities.hoverLeaveEntity|hoverLeaveEntity} event. * @function Entities.sendHoverLeaveEntity * @param {Uuid} entityID - The ID of the entity to emit the event for. @@ -1807,7 +1807,7 @@ public slots: */ Q_INVOKABLE void sendHoverLeaveEntity(const EntityItemID& id, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Checks whether an entity wants hand controller pointer events. For example, a {@link Entities.EntityProperties-Web|Web} * entity does but a {@link Entities.EntityProperties-Shape|Shape} entity doesn't. * @function Entities.wantsHandControllerPointerEvents @@ -1817,7 +1817,7 @@ public slots: */ Q_INVOKABLE bool wantsHandControllerPointerEvents(const QUuid& id); - /**jsdoc + /*@jsdoc * Sends a message to a {@link Entities.EntityProperties-Web|Web} entity's HTML page. To receive the message, the web * page's script must connect to the EventBridge that is automatically provided to the script: *
EventBridge.scriptEventReceived.connect(function(message) {
@@ -1878,7 +1878,7 @@ public slots:
      */
     Q_INVOKABLE void emitScriptEvent(const EntityItemID& entityID, const QVariant& message);
 
-    /**jsdoc
+    /*@jsdoc
      * Checks whether an axis-aligned box and a capsule intersect.
      * @function Entities.AABoxIntersectsCapsule
      * @param {Vec3} brn - The bottom right near (minimum axes values) corner of the AA box.
@@ -1891,7 +1891,7 @@ public slots:
     Q_INVOKABLE bool AABoxIntersectsCapsule(const glm::vec3& low, const glm::vec3& dimensions,
                                             const glm::vec3& start, const glm::vec3& end, float radius);
 
-    /**jsdoc
+    /*@jsdoc
      * Gets the meshes in a {@link Entities.EntityProperties-Model|Model} or {@link Entities.EntityProperties-PolyVox|PolyVox} 
      * entity.
      * @function Entities.getMeshes
@@ -1900,7 +1900,7 @@ public slots:
      * @deprecated This function is deprecated and will be removed. It no longer works for Model entities. Use the 
      *     {@link Graphics} API instead.
      */
-     /**jsdoc
+     /*@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 
@@ -1913,7 +1913,7 @@ public slots:
     // FIXME move to a renderable entity interface
     Q_INVOKABLE void getMeshes(const QUuid& entityID, ScriptValuePointer callback);
 
-    /**jsdoc
+    /*@jsdoc
      * Gets the object to world transform, excluding scale, of an entity.
      * @function Entities.getEntityTransform
      * @param {Uuid} entityID - The ID of the entity.
@@ -1941,7 +1941,7 @@ public slots:
      */
     Q_INVOKABLE glm::mat4 getEntityTransform(const QUuid& entityID);
 
-    /**jsdoc
+    /*@jsdoc
      * Gets the object to parent transform, excluding scale, of an entity.
      * @function Entities.getEntityLocalTransform
      * @param {Uuid} entityID - The ID of the entity.
@@ -1977,7 +1977,7 @@ public slots:
     Q_INVOKABLE glm::mat4 getEntityLocalTransform(const QUuid& entityID);
 
 
-    /**jsdoc
+    /*@jsdoc
      * Converts a position in world coordinates to a position in an avatar, entity, or joint's local coordinates.
      * @function Entities.worldToLocalPosition
      * @param {Vec3} worldPosition - The world position to convert.
@@ -2013,7 +2013,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 worldToLocalPosition(glm::vec3 worldPosition, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a rotation or orientation in world coordinates to rotation in an avatar, entity, or joint's local coordinates.
      * @function Entities.worldToLocalRotation
      * @param {Quat} worldRotation - The world rotation to convert.
@@ -2025,7 +2025,7 @@ public slots:
      */
     Q_INVOKABLE glm::quat worldToLocalRotation(glm::quat worldRotation, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a velocity in world coordinates to a velocity in an avatar, entity, or joint's local coordinates.
      * @function Entities.worldToLocalVelocity
      * @param {Vec3} worldVelocity - The world velocity to convert.
@@ -2038,7 +2038,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 worldToLocalVelocity(glm::vec3 worldVelocity, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a Euler angular velocity in world coordinates to an angular velocity in an avatar, entity, or joint's local 
      * coordinates.
      * @function Entities.worldToLocalAngularVelocity
@@ -2052,7 +2052,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 worldToLocalAngularVelocity(glm::vec3 worldAngularVelocity, const QUuid& parentID,
                                                       int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts dimensions in world coordinates to dimensions in an avatar or entity's local coordinates.
      * @function Entities.worldToLocalDimensions
      * @param {Vec3} worldDimensions - The world dimensions to convert.
@@ -2064,7 +2064,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 worldToLocalDimensions(glm::vec3 worldDimensions, const QUuid& parentID,
                                                  int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a position in an avatar, entity, or joint's local coordinate to a position in world coordinates.
      * @function Entities.localToWorldPosition
      * @param {Vec3} localPosition - The local position to convert.
@@ -2077,7 +2077,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 localToWorldPosition(glm::vec3 localPosition, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a rotation or orientation in an avatar, entity, or joint's local coordinate to a rotation in world coordinates.
      * @function Entities.localToWorldRotation
      * @param {Quat} localRotation - The local rotation to convert.
@@ -2089,7 +2089,7 @@ public slots:
      */
     Q_INVOKABLE glm::quat localToWorldRotation(glm::quat localRotation, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a velocity in an avatar, entity, or joint's local coordinate to a velocity in world coordinates.
      * @function Entities.localToWorldVelocity
      * @param {Vec3} localVelocity - The local velocity to convert.
@@ -2102,7 +2102,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 localToWorldVelocity(glm::vec3 localVelocity, const QUuid& parentID,
                                                int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts a Euler angular velocity in an avatar, entity, or joint's local coordinate to an angular velocity in world 
      * coordinates.
      * @function Entities.localToWorldAngularVelocity
@@ -2116,7 +2116,7 @@ public slots:
      */
     Q_INVOKABLE glm::vec3 localToWorldAngularVelocity(glm::vec3 localAngularVelocity, const QUuid& parentID,
                                                       int parentJointIndex = -1, bool scalesWithParent = false);
-    /**jsdoc
+    /*@jsdoc
      * Converts dimensions in an avatar or entity's local coordinates to dimensions in world coordinates.
      * @function Entities.localToWorldDimensions
      * @param {Vec3} localDimensions - The local dimensions to convert.
@@ -2130,7 +2130,7 @@ public slots:
                                                  int parentJointIndex = -1, bool scalesWithParent = false);
 
 
-    /**jsdoc
+    /*@jsdoc
      * Gets the static certificate for an entity. The static certificate contains static properties of the item which cannot
      * be altered.
      * @function Entities.getStaticCertificateJSON
@@ -2139,7 +2139,7 @@ public slots:
      */
     Q_INVOKABLE QString getStaticCertificateJSON(const QUuid& entityID);
 
-    /**jsdoc
+    /*@jsdoc
      * Verifies the entity's proof of provenance, i.e., that the entity's certificateID property was produced by
      * High Fidelity signing the entity's static certificate JSON.
      * @function Entities.verifyStaticCertificateProperties
@@ -2149,7 +2149,7 @@ public slots:
      */
     Q_INVOKABLE bool verifyStaticCertificateProperties(const QUuid& entityID);
 
-    /**jsdoc
+    /*@jsdoc
      * Gets information about an entity property, including a minimum to maximum range for some numerical properties.
      * @function Entities.getPropertyInfo
      * @param {string} propertyName - The name of the property to get the information for.
@@ -2161,7 +2161,7 @@ public slots:
     Q_INVOKABLE const EntityPropertyInfo getPropertyInfo(const QString& propertyName) const;
 
 signals:
-    /**jsdoc
+    /*@jsdoc
      * Triggered on the client that is the physics simulation owner during the collision of two entities. Note: Isn't triggered
      * for a collision with an avatar.
      * 

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

@@ -2203,7 +2203,7 @@ public slots: */ void collisionWithEntity(const EntityItemID& idA, const EntityItemID& idB, const Collision& collision); - /**jsdoc + /*@jsdoc * Triggered when your ability to change the locked property of entities changes. * @function Entities.canAdjustLocksChanged * @param {boolean} canAdjustLocks - true if the script can change the locked property of an @@ -2217,7 +2217,7 @@ public slots: */ void canAdjustLocksChanged(bool canAdjustLocks); - /**jsdoc + /*@jsdoc * Triggered when your ability to rez (create) entities changes. * @function Entities.canRezChanged * @param {boolean} canRez - true if the script can rez (create) entities, false if it can't. @@ -2225,7 +2225,7 @@ public slots: */ void canRezChanged(bool canRez); - /**jsdoc + /*@jsdoc * Triggered when your ability to rez (create) temporary entities changes. Temporary entities are entities with a finite * lifetime property value set. * @function Entities.canRezTmpChanged @@ -2235,7 +2235,7 @@ public slots: */ void canRezTmpChanged(bool canRezTmp); - /**jsdoc + /*@jsdoc * Triggered when your ability to rez (create) certified entities changes. Certified entities are entities that have PoP * certificates. * @function Entities.canRezCertifiedChanged @@ -2245,7 +2245,7 @@ public slots: */ void canRezCertifiedChanged(bool canRezCertified); - /**jsdoc + /*@jsdoc * Triggered when your ability to rez (create) temporary certified entities changes. Temporary entities are entities with a * finite lifetime property value set. Certified entities are entities that have PoP certificates. * @function Entities.canRezTmpCertifiedChanged @@ -2255,7 +2255,7 @@ public slots: */ void canRezTmpCertifiedChanged(bool canRezTmpCertified); - /**jsdoc + /*@jsdoc * Triggered when your ability to make changes to the asset server's assets changes. * @function Entities.canWriteAssetsChanged * @param {boolean} canWriteAssets - true if the script can change the asset server's assets, @@ -2264,7 +2264,7 @@ public slots: */ void canWriteAssetsChanged(bool canWriteAssets); - /**jsdoc + /*@jsdoc * Triggered when your ability to get and set private user data changes. * @function Entities.canGetAndSetPrivateUserDataChanged * @param {boolean} canGetAndSetPrivateUserData - true if the script can change the privateUserData @@ -2273,7 +2273,7 @@ public slots: */ void canGetAndSetPrivateUserDataChanged(bool canGetAndSetPrivateUserData); - /**jsdoc + /*@jsdoc * Triggered when your ability to use avatar entities is changed. * @function Entities.canRezAvatarEntitiesChanged * @param {boolean} canRezAvatarEntities - true if the script can change edit avatar entities, @@ -2283,7 +2283,7 @@ public slots: void canRezAvatarEntitiesChanged(bool canRezAvatarEntities); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is clicked while the mouse cursor is on an entity, or a controller trigger is fully * pressed while its laser is on an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

@@ -2300,7 +2300,7 @@ public slots: */ void mousePressOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is double-clicked while the mouse cursor is on an entity. * @function Entities.mouseDoublePressOnEntity * @param {Uuid} entityID - The ID of the entity that was double-pressed on. @@ -2309,7 +2309,7 @@ public slots: */ void mouseDoublePressOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Repeatedly triggered while the mouse cursor or controller laser moves on an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.mouseMoveOnEntity @@ -2319,7 +2319,7 @@ public slots: */ void mouseMoveOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is released after clicking on an entity or the controller trigger is partly or fully * released after pressing on an entity, even if the mouse pointer or controller laser has moved off the entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

@@ -2330,7 +2330,7 @@ public slots: */ void mouseReleaseOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is clicked while the mouse cursor is not on an entity. * @function Entities.mousePressOffEntity * @param {PointerEvent} event - Details of the event. @@ -2338,7 +2338,7 @@ public slots: */ void mousePressOffEntity(); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is double-clicked while the mouse cursor is not on an entity. * @function Entities.mouseDoublePressOffEntity * @param {PointerEvent} event - Details of the event. @@ -2347,7 +2347,7 @@ public slots: void mouseDoublePressOffEntity(); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is clicked while the mouse cursor is on an entity. Note: Not triggered by controllers. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.clickDownOnEntity @@ -2380,7 +2380,7 @@ public slots: */ void clickDownOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Repeatedly triggered while a mouse button continues to be held after clicking an entity, even if the mouse cursor has * moved off the entity. Note: Not triggered by controllers. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

@@ -2391,7 +2391,7 @@ public slots: */ void holdingClickOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when a mouse button is released after clicking on an entity, even if the mouse cursor has moved off the * entity. Note: Not triggered by controllers. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

@@ -2402,7 +2402,7 @@ public slots: */ void clickReleaseOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when the mouse cursor or controller laser starts hovering on an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.hoverEnterEntity @@ -2412,7 +2412,7 @@ public slots: */ void hoverEnterEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Repeatedly triggered when the mouse cursor or controller laser moves while hovering over an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.hoverOverEntity @@ -2422,7 +2422,7 @@ public slots: */ void hoverOverEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when the mouse cursor or controller laser stops hovering over an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.hoverLeaveEntity @@ -2433,7 +2433,7 @@ public slots: void hoverLeaveEntity(const EntityItemID& entityItemID, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Triggered when an avatar enters an entity. * Note: At the initial loading of the script, if the avatar is already present inside the entity, it might be too late * to catch this event when the script runs, so it won't trigger. The {@link Entities.preload|preload} signal can be used to handle those cases. @@ -2444,7 +2444,7 @@ public slots: */ void enterEntity(const EntityItemID& entityItemID); - /**jsdoc + /*@jsdoc * Triggered when an avatar leaves an entity. *

See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.

* @function Entities.leaveEntity @@ -2454,7 +2454,7 @@ public slots: void leaveEntity(const EntityItemID& entityItemID); - /**jsdoc + /*@jsdoc * Triggered when an entity is deleted. * @function Entities.deletingEntity * @param {Uuid} entityID - The ID of the entity deleted. @@ -2466,7 +2466,7 @@ public slots: */ void deletingEntity(const EntityItemID& entityID); - /**jsdoc + /*@jsdoc * Triggered when an entity is added to Interface's local in-memory tree of entities it knows about. This may occur when * entities are loaded upon visiting a domain, when the user rotates their view so that more entities become visible, and * when any type of entity is created (e.g., by {@link Entities.addEntity|addEntity}). @@ -2480,7 +2480,7 @@ public slots: */ void addingEntity(const EntityItemID& entityID); - /**jsdoc + /*@jsdoc * Triggered when a "wearable" entity is deleted, for example when removing a "wearable" from your avatar. * @function Entities.deletingWearable * @param {Uuid} entityID - The ID of the "wearable" entity deleted. @@ -2492,7 +2492,7 @@ public slots: */ void deletingWearable(const EntityItemID& entityID); - /**jsdoc + /*@jsdoc * Triggered when a "wearable" entity is added to Interface's local in-memory tree of entities it knows about, for example * when adding a "wearable" to your avatar. * @function Entities.addingWearable @@ -2505,7 +2505,7 @@ public slots: */ void addingWearable(const EntityItemID& entityID); - /**jsdoc + /*@jsdoc * Triggered when you disconnect from a domain, at which time Interface's local in-memory tree of entities that it knows * about is cleared. * @function Entities.clearingEntities @@ -2517,7 +2517,7 @@ public slots: */ void clearingEntities(); - /**jsdoc + /*@jsdoc * Triggered when a script in a {@link Entities.EntityProperties-Web|Web} entity's HTML sends an event over the entity's * HTML event bridge. The HTML web page can send a message by calling: *
EventBridge.emitWebEvent(message);
diff --git a/libraries/entities/src/EntityTypes.h b/libraries/entities/src/EntityTypes.h index 7f72c3f761b..441e77fccd7 100644 --- a/libraries/entities/src/EntityTypes.h +++ b/libraries/entities/src/EntityTypes.h @@ -35,7 +35,7 @@ typedef EntityItemPointer (*EntityTypeFactory)(const EntityItemID& entityID, con class EntityTypes { public: - /**jsdoc + /*@jsdoc *

An entity may be one of the following types:

*
* diff --git a/libraries/entities/src/GrabPropertyGroup.h b/libraries/entities/src/GrabPropertyGroup.h index 4c8440ee935..a6577edda26 100644 --- a/libraries/entities/src/GrabPropertyGroup.h +++ b/libraries/entities/src/GrabPropertyGroup.h @@ -42,7 +42,7 @@ static const glm::vec3 INITIAL_EQUIPPABLE_INDICATOR_SCALE { glm::vec3(1.0f) }; static const glm::vec3 INITIAL_EQUIPPABLE_INDICATOR_OFFSET { glm::vec3(0.0f) }; -/**jsdoc +/*@jsdoc * Grabbing behavior is defined by the following properties: * * @typedef {object} Entities.Grab diff --git a/libraries/entities/src/HazePropertyGroup.h b/libraries/entities/src/HazePropertyGroup.h index a30b20a9c25..208766fde0f 100644 --- a/libraries/entities/src/HazePropertyGroup.h +++ b/libraries/entities/src/HazePropertyGroup.h @@ -45,7 +45,7 @@ static const float INITIAL_KEY_LIGHT_ALTITUDE{ 200.0f }; // FIXME: Document hazeAttenuationKeyLight, hazeKeyLightRange, and hazeKeyLightAltitude once they're working and are provided // in the Create app's UI. -/**jsdoc +/*@jsdoc * Haze is defined by the following properties: * @typedef {object} Entities.Haze * diff --git a/libraries/entities/src/KeyLightPropertyGroup.h b/libraries/entities/src/KeyLightPropertyGroup.h index 2760f8ac9b6..b88db49798e 100644 --- a/libraries/entities/src/KeyLightPropertyGroup.h +++ b/libraries/entities/src/KeyLightPropertyGroup.h @@ -30,7 +30,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * A key light is defined by the following properties: * @typedef {object} Entities.KeyLight * @property {Color} color=255,255,255 - The color of the light. diff --git a/libraries/entities/src/PolyVoxEntityItem.h b/libraries/entities/src/PolyVoxEntityItem.h index 3e3fe0b18cd..163e03cd55a 100644 --- a/libraries/entities/src/PolyVoxEntityItem.h +++ b/libraries/entities/src/PolyVoxEntityItem.h @@ -62,7 +62,7 @@ class PolyVoxEntityItem : public EntityItem { virtual int getOnCount() const { return 0; } - /**jsdoc + /*@jsdoc *

The surface of a {@link Entities.EntityProperties-PolyVox|PolyVox} entity may be one of the following styles:

*
* diff --git a/libraries/entities/src/PulsePropertyGroup.h b/libraries/entities/src/PulsePropertyGroup.h index 062317e639e..9f9bc921506 100644 --- a/libraries/entities/src/PulsePropertyGroup.h +++ b/libraries/entities/src/PulsePropertyGroup.h @@ -28,7 +28,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * A color and alpha pulse that an entity may have. * @typedef {object} Entities.Pulse * @property {number} min=0 - The minimum value of the pulse multiplier. diff --git a/libraries/entities/src/RingGizmoPropertyGroup.h b/libraries/entities/src/RingGizmoPropertyGroup.h index 064ef79f271..ca28b222186 100644 --- a/libraries/entities/src/RingGizmoPropertyGroup.h +++ b/libraries/entities/src/RingGizmoPropertyGroup.h @@ -27,7 +27,7 @@ using ScriptValuePointer = QSharedPointer; using u8vec3Color = glm::u8vec3; -/**jsdoc +/*@jsdoc * A {@link Entities.EntityProperties-Gizmo|ring Gizmo} entity is defined by the following properties: * @typedef {object} Entities.RingGizmo * diff --git a/libraries/entities/src/ShapeEntityItem.cpp b/libraries/entities/src/ShapeEntityItem.cpp index ceebf201231..6d802fb5129 100644 --- a/libraries/entities/src/ShapeEntityItem.cpp +++ b/libraries/entities/src/ShapeEntityItem.cpp @@ -21,7 +21,7 @@ namespace entity { - /**jsdoc + /*@jsdoc *

A "Shape", "Box", or "Sphere" {@link Entities.EntityType|EntityType} may * display as one of the following geometrical shapes:

*
diff --git a/libraries/entities/src/SkyboxPropertyGroup.h b/libraries/entities/src/SkyboxPropertyGroup.h index 20d8663c73f..c95e92c7b33 100644 --- a/libraries/entities/src/SkyboxPropertyGroup.h +++ b/libraries/entities/src/SkyboxPropertyGroup.h @@ -32,7 +32,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * A skybox is defined by the following properties: * @typedef {object} Entities.Skybox * @property {Color} color=0,0,0 - Sets the color of the sky if url is "", otherwise modifies the diff --git a/libraries/graphics-scripting/src/graphics-scripting/Forward.h b/libraries/graphics-scripting/src/graphics-scripting/Forward.h index 89fd8d353a2..6acce99af54 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/Forward.h +++ b/libraries/graphics-scripting/src/graphics-scripting/Forward.h @@ -75,7 +75,7 @@ namespace scriptable { graphics::MaterialKey key { 0 }; }; - /**jsdoc + /*@jsdoc * A material layer. * @typedef {object} Graphics.MaterialLayer * @property {Graphics.Material} material - The layer's material. @@ -107,7 +107,7 @@ namespace scriptable { ScriptableMeshBase& operator=(const ScriptableMeshBase& view); virtual ~ScriptableMeshBase(); - /**jsdoc + /*@jsdoc * @function GraphicsMesh.getMeshPointer * @deprecated This method is deprecated and will be removed. * @returns {undefined} @@ -115,7 +115,7 @@ namespace scriptable { // scriptable::MeshPointer is not registered as a JavaScript type. Q_INVOKABLE const scriptable::MeshPointer getMeshPointer() const { return weakMesh.lock(); } - /**jsdoc + /*@jsdoc * @function GraphicsMesh.getModelProviderPointer * @deprecated This method is deprecated and will be removed. * @returns {undefined} @@ -123,7 +123,7 @@ namespace scriptable { // scriptable::ModelProviderPointer is not registered as a JavaScript type. Q_INVOKABLE const scriptable::ModelProviderPointer getModelProviderPointer() const { return provider.lock(); } - /**jsdoc + /*@jsdoc * @function GraphicsMesh.getModelBasePointer * @deprecated This method is deprecated and will be removed. * @returns {undefined} diff --git a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.cpp b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.cpp index 522508dd1bf..cdce0658e07 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.cpp +++ b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.cpp @@ -168,7 +168,7 @@ scriptable::ScriptableMeshPointer GraphicsScriptingInterface::newMesh(const QVar // TODO: this is bare-bones way for now to improvise a new mesh from the scripting side // in the future we want to support a formal C++ structure data type here instead - /**jsdoc + /*@jsdoc * IFS (Indexed-Face Set) data defining a mesh. * @typedef {object} Graphics.IFSData * @property {string} [name=""] - Mesh name. (Useful for debugging.) @@ -356,7 +356,7 @@ namespace scriptable { scriptValueToSequence(array, result); } - /**jsdoc + /*@jsdoc * A material in a {@link GraphicsModel}. * @typedef {object} Graphics.Material * @property {string} name - The name of the material. diff --git a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.h b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.h index 0a42b6c5144..18f4a2d0daf 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.h +++ b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingInterface.h @@ -24,7 +24,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Graphics API enables you to access and manipulate avatar, entity, and overlay models in the rendered scene. * This includes getting mesh and material information for applying {@link Entities.EntityProperties-Material|Material} * entities. @@ -44,7 +44,7 @@ class GraphicsScriptingInterface : public QObject, public Scriptable, public Dep GraphicsScriptingInterface(QObject* parent = nullptr); public slots: - /**jsdoc + /*@jsdoc * Gets a handle to the model data used for displaying an avatar, 3D entity, or 3D overlay. *

Note: The model data may be used for more than one instance of the item displayed in the scene.

* @function Graphics.getModel @@ -67,7 +67,7 @@ public slots: */ scriptable::ScriptableModelPointer getModel(const QUuid& uuid); - /**jsdoc + /*@jsdoc * Updates the model for an avatar, 3D entity, or 3D overlay in the rendered scene. * @function Graphics.updateModel * @param {Uuid} id - The ID of the avatar, 3D entity, or 3D overlay to update. @@ -76,7 +76,7 @@ public slots: */ bool updateModel(const QUuid& uuid, const scriptable::ScriptableModelPointer& model); - /**jsdoc + /*@jsdoc * Checks whether the model for an avatar, entity, or overlay can be updated in the rendered scene. Only avatars, * "Model" entities and "model" overlays can have their meshes updated. * @function Graphics.canUpdateModel @@ -109,7 +109,7 @@ public slots: */ bool canUpdateModel(const QUuid& uuid, int meshIndex = -1, int partNumber = -1); - /**jsdoc + /*@jsdoc * Creates a new graphics model from meshes. * @function Graphics.newModel * @param {GraphicsMesh[]} meshes - The meshes to include in the model. @@ -117,7 +117,7 @@ public slots: */ scriptable::ScriptableModelPointer newModel(const scriptable::ScriptableMeshes& meshes); - /**jsdoc + /*@jsdoc * Creates a new graphics mesh. * @function Graphics.newMesh * @param {Graphics.IFSData} ifsMeshData - Index-Faced Set (IFS) data defining the mesh. @@ -132,7 +132,7 @@ public slots: bool updateMeshPart(scriptable::ScriptableMeshPointer mesh, scriptable::ScriptableMeshPartPointer part); #endif - /**jsdoc + /*@jsdoc * Exports a model to OBJ format. * @function Graphics.exportModelToOBJ * @param {GraphicsModel} model - The model to export. diff --git a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingUtil.cpp b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingUtil.cpp index b5671655b36..24ae3831206 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingUtil.cpp +++ b/libraries/graphics-scripting/src/graphics-scripting/GraphicsScriptingUtil.cpp @@ -38,7 +38,7 @@ QVariant toVariant(const Extents& box) { }; } -/**jsdoc +/*@jsdoc * The extents of a mesh. * @typedef {object} Graphics.MeshExtents * @property {Vec3} brn - The bottom right near (minimum axes values) corner of the enclosing box. @@ -57,7 +57,7 @@ QVariant toVariant(const AABox& box) { }; } -/**jsdoc +/*@jsdoc * Details of a buffer element's format. * @typedef {object} Graphics.BufferElementFormat * @property {string} type - Type. diff --git a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.cpp b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.cpp index 2535e220974..f825e5c0ee5 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.cpp +++ b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.cpp @@ -129,7 +129,7 @@ int scriptable::ScriptableMesh::getSlotNumber(const QString& attributeName) cons return -1; } -/**jsdoc +/*@jsdoc * Details of buffer's format. * @typedef {object} Graphics.BufferFormat * @property {number} slot - Slot. @@ -259,7 +259,7 @@ bool scriptable::ScriptableMesh::setVertexProperty(glm::uint32 vertexIndex, cons return buffer_helpers::setValue(bufferView, vertexIndex, value); } -/**jsdoc +/*@jsdoc * Called for each vertex when {@link GraphicsMesh.updateVertexAttributes} is called. * @callback GraphicsMesh~forEachVertextCallback * @param {Object} attributes - The attributes of the vertex. @@ -294,7 +294,7 @@ glm::uint32 scriptable::ScriptableMesh::forEachVertex(ScriptValuePointer _callba return numProcessed; } -/**jsdoc +/*@jsdoc * Called for each vertex when {@link GraphicsMesh.updateVertexAttributes} is called. The value returned by the script function * should be the modified attributes to update the vertex with, or false to not update the particular vertex. * @callback GraphicsMesh~updateVertexAttributesCallback diff --git a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.h b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.h index 0c431bda305..213b58b2ad5 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.h +++ b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMesh.h @@ -31,7 +31,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; namespace scriptable { - /**jsdoc + /*@jsdoc * A handle to in-memory mesh data in a {@link GraphicsModel}. * *

Create using the {@link Graphics} API, {@link GraphicsModel.cloneModel}, or {@link GraphicsMesh.cloneMesh}.

@@ -110,7 +110,7 @@ namespace scriptable { public slots: - /**jsdoc + /*@jsdoc * Gets the model the mesh is part of. *

Currently doesn't work.

* @function GraphicsMesh.getParentModel @@ -118,14 +118,14 @@ namespace scriptable { */ const scriptable::ScriptableModelPointer getParentModel() const { return qobject_cast(model); } - /**jsdoc + /*@jsdoc * Gets the vertex indices. * @function GraphicsMesh.getIndices * @returns {number[]} The vertex indices. */ QVector getIndices() const; - /**jsdoc + /*@jsdoc * Gets the indices of nearby vertices. * @function GraphicsMesh.findNearbyVertexIndices * @param {Vec3} origin - The search position, in model coordinates. @@ -135,7 +135,7 @@ namespace scriptable { */ QVector findNearbyVertexIndices(const glm::vec3& origin, float epsilon = 1e-6) const; - /**jsdoc + /*@jsdoc * Adds an attribute for all vertices. * @function GraphicsMesh.addAttribute * @param {Graphics.BufferTypeName} name - The name of the attribute. @@ -145,7 +145,7 @@ namespace scriptable { */ glm::uint32 addAttribute(const QString& attributeName, const QVariant& defaultValue = QVariant()); - /**jsdoc + /*@jsdoc * Sets the value of an attribute for all vertices. * @function GraphicsMesh.fillAttribute * @param {Graphics.BufferTypeName} name - The name of the attribute. The attribute is added to the vertices if not @@ -156,7 +156,7 @@ namespace scriptable { */ glm::uint32 fillAttribute(const QString& attributeName, const QVariant& value); - /**jsdoc + /*@jsdoc * Removes an attribute from all vertices. *

Note: The "position" attribute cannot be removed.

* @function GraphicsMesh.removeAttribute @@ -165,7 +165,7 @@ namespace scriptable { */ bool removeAttribute(const QString& attributeName); - /**jsdoc + /*@jsdoc * Gets the value of an attribute for all vertices. * @function GraphicsMesh.queryVertexAttributes * @param {Graphics.BufferTypeName} name - The name of the attribute to get the vertex values of. @@ -174,7 +174,7 @@ namespace scriptable { */ QVariantList queryVertexAttributes(QVariant selector) const; - /**jsdoc + /*@jsdoc * Gets the attributes and attribute values of a vertex. * @function GraphicsMesh.getVertexAttributes * @param {number} index - The vertex to get the attributes for. @@ -183,7 +183,7 @@ namespace scriptable { */ QVariantMap getVertexAttributes(glm::uint32 vertexIndex) const; - /**jsdoc + /*@jsdoc * Updates attribute values of a vertex. * @function GraphicsMesh.setVertexAttributes * @param {number} index - The vertex to set the attributes for. @@ -197,7 +197,7 @@ namespace scriptable { // @borrows jsdoc from GraphicsMesh bool setVertexAttributes(glm::uint32 vertexIndex, const QVariantMap& attributeValues); - /**jsdoc + /*@jsdoc * Gets the value of a vertex's attribute. * @function GraphicsMesh.getVertexProperty * @param {number} index - The vertex index. @@ -208,7 +208,7 @@ namespace scriptable { */ QVariant getVertexProperty(glm::uint32 vertexIndex, const QString& attributeName) const; - /**jsdoc + /*@jsdoc * Sets the value of a vertex's attribute. * @function GraphicsMesh.setVertexProperty * @param {number} index - The vertex index. @@ -220,7 +220,7 @@ namespace scriptable { */ bool setVertexProperty(glm::uint32 vertexIndex, const QString& attributeName, const QVariant& value); - /**jsdoc + /*@jsdoc * Makes a copy of the mesh. * @function GraphicsMesh.cloneMesh * @returns {GraphicsMesh} A copy of the mesh. @@ -229,7 +229,7 @@ namespace scriptable { // ScriptEngine-specific wrappers - /**jsdoc + /*@jsdoc * Updates vertex attributes by calling a function for each vertex. The function can return modified attributes to * update the vertex with. * @function GraphicsMesh.updateVertexAttributes @@ -238,7 +238,7 @@ namespace scriptable { */ glm::uint32 updateVertexAttributes(ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Calls a function for each vertex. * @function GraphicsMesh.forEachVertex * @param {GraphicsMesh~forEachVertexCallback} callback - The function to call for each vertex. @@ -246,7 +246,7 @@ namespace scriptable { */ glm::uint32 forEachVertex(ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Checks if an index is valid and, optionally, that vertex has a particular attribute. * @function GraphicsMesh.isValidIndex * @param {number} index - The index to check. diff --git a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMeshPart.h b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMeshPart.h index 0d65d4f609f..49e98e22d37 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/ScriptableMeshPart.h +++ b/libraries/graphics-scripting/src/graphics-scripting/ScriptableMeshPart.h @@ -16,7 +16,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; namespace scriptable { - /**jsdoc + /*@jsdoc * A handle to in-memory mesh part data in a {@link GraphicsModel}. * *

Create using the {@link Graphics} API, {@link GraphicsModel.cloneModel}, {@link GraphicsMesh.cloneMesh}, or @@ -89,14 +89,14 @@ namespace scriptable { public slots: - /**jsdoc + /*@jsdoc * Gets the vertex indices. * @function GraphicsMeshPart.getIndices * @returns {number[]} The vertex indices. */ QVector getIndices() const; - /**jsdoc + /*@jsdoc * Sets the vertex indices. * @function GraphicsMeshPart.setIndices * @param {number[]} indices - The vertex indices. @@ -105,7 +105,7 @@ namespace scriptable { */ bool setIndices(const QVector& indices); - /**jsdoc + /*@jsdoc * Gets the indices of nearby vertices in the mesh part. * @function GraphicsMeshPart.findNearbyPartVertexIndices * @param {Vec3} origin - The search position, in model coordinates. @@ -115,7 +115,7 @@ namespace scriptable { */ QVector findNearbyPartVertexIndices(const glm::vec3& origin, float epsilon = 1e-6) const; - /**jsdoc + /*@jsdoc * Gets the value of an attribute for all vertices in the whole mesh (i.e., parent and mesh parts). * @function GraphicsMeshPArt.queryVertexAttributes * @param {Graphics.BufferTypeName} name - The name of the attribute to get the vertex values of. @@ -130,7 +130,7 @@ namespace scriptable { // @borrows jsdoc from GraphicsMesh. bool setVertexAttributes(glm::uint32 vertexIndex, const QVariantMap& attributeValues); - /**jsdoc + /*@jsdoc * Gets the value of a vertex's attribute. * @function GraphicsMeshPart.getVertexProperty * @param {number} index - The vertex index. @@ -141,7 +141,7 @@ namespace scriptable { */ QVariant getVertexProperty(glm::uint32 vertexIndex, const QString& attributeName) const; - /**jsdoc + /*@jsdoc * Sets the value of a vertex's attribute. * @function GraphicsMeshPart.setVertexProperty * @param {number} index - The vertex index. @@ -153,7 +153,7 @@ namespace scriptable { */ bool setVertexProperty(glm::uint32 vertexIndex, const QString& attributeName, const QVariant& attributeValues); - /**jsdoc + /*@jsdoc * Gets the vertex indices that make up a face. * @function GraphicsMeshPart.getFace * @param {number} index - The index of the face. @@ -161,7 +161,7 @@ namespace scriptable { */ QVector getFace(glm::uint32 faceIndex) const; - /**jsdoc + /*@jsdoc * Scales the mesh to so that it's maximum model coordinate dimension is a specified length. * @function GraphicsMeshPart.scaleToFit * @param {number} scale - The target dimension. @@ -169,7 +169,7 @@ namespace scriptable { */ QVariantMap scaleToFit(float unitScale); - /**jsdoc + /*@jsdoc * Translates the mesh part. * @function GraphicsMeshPart.translate * @param {Vec3} translation - The translation to apply, in model coordinates. @@ -177,7 +177,7 @@ namespace scriptable { */ QVariantMap translate(const glm::vec3& translation); - /**jsdoc + /*@jsdoc * Scales the mesh part. * @function GraphicsMeshPart.scale * @param {Vec3} scale - The scale to apply in each model coordinate direction. @@ -186,7 +186,7 @@ namespace scriptable { */ QVariantMap scale(const glm::vec3& scale, const glm::vec3& origin = glm::vec3(NAN)); - /**jsdoc + /*@jsdoc * Rotates the mesh part, using Euler angles. * @function GraphicsMeshPart.rotateDegrees * @param {Vec3} eulerAngles - The rotation to perform, in mesh coordinates, as Euler angles in degrees. @@ -196,7 +196,7 @@ namespace scriptable { */ QVariantMap rotateDegrees(const glm::vec3& eulerAngles, const glm::vec3& origin = glm::vec3(NAN)); - /**jsdoc + /*@jsdoc * Rotates the mesh part, using a quaternion. * @function GraphicsMeshPart.rotate * @param {Quat} rotation - The rotation to perform, in model coordinates. @@ -206,7 +206,7 @@ namespace scriptable { */ QVariantMap rotate(const glm::quat& rotation, const glm::vec3& origin = glm::vec3(NAN)); - /**jsdoc + /*@jsdoc * Scales, rotates, and translates the mesh. * @function GraphicsMeshPart.transform * @param {Mat4} transform - The scale, rotate, and translate transform to apply. @@ -217,7 +217,7 @@ namespace scriptable { // @borrows jsdoc from GraphicsMesh. glm::uint32 addAttribute(const QString& attributeName, const QVariant& defaultValue = QVariant()); - /**jsdoc + /*@jsdoc * Sets the value of an attribute for all vertices in the whole mesh (i.e., parent and mesh parts). * @function GraphicsMeshPart.fillAttribute * @param {Graphics.BufferTypeName} name - The name of the attribute. The attribute is added to the vertices if not @@ -228,7 +228,7 @@ namespace scriptable { */ glm::uint32 fillAttribute(const QString& attributeName, const QVariant& value); - /**jsdoc + /*@jsdoc * Removes an attribute from all vertices in the whole mesh (i.e., parent and mesh parts). *

Note: The "position" attribute cannot be removed.

* @function GraphicsMeshPArt.removeAttribute @@ -237,7 +237,7 @@ namespace scriptable { */ bool removeAttribute(const QString& attributeName); - /**jsdoc + /*@jsdoc * Deduplicates vertices. * @function GraphicsMeshPart.dedupeVertices * @param {number} [epsilon=1e-6] - The deduplicadtion distance. If a pair of vertices is within this distance of each @@ -246,14 +246,14 @@ namespace scriptable { */ bool dedupeVertices(float epsilon = 1e-6); - /**jsdoc + /*@jsdoc * Gets the parent mesh. * @function GraphicsMeshPart.getParentMesh * @returns {GraphicsMesh} The parent mesh. */ scriptable::ScriptableMeshPointer getParentMesh() const { return parentMesh; } - /**jsdoc + /*@jsdoc * Replaces a mesh part with a copy of another mesh part. * @function GraphicsMeshPart.replaceMeshPartData * @param {GrphicsMeshPart} source - The mesh part to copy. @@ -264,14 +264,14 @@ namespace scriptable { */ bool replaceMeshPartData(scriptable::ScriptableMeshPartPointer source, const QVector& attributeNames = QVector()); - /**jsdoc + /*@jsdoc * Makes a copy of the mesh part. * @function GraphicsMeshPart.cloneMeshPart * @returns {GraphicsMeshPart} A copy of the mesh part. */ scriptable::ScriptableMeshPartPointer cloneMeshPart(); - /**jsdoc + /*@jsdoc * Exports the mesh part to OBJ format. * @function GraphicsMeshPart.toOBJ * @returns {string} The OBJ format representation of the mesh part. @@ -281,7 +281,7 @@ namespace scriptable { // ScriptEngine-specific wrappers - /**jsdoc + /*@jsdoc * Updates vertex attributes by calling a function for each vertex in the whole mesh (i.e., the parent and * mesh parts). The function can return modified attributes to update the vertex with. * @function GraphicsMeshPart.updateVertexAttributes @@ -290,7 +290,7 @@ namespace scriptable { */ glm::uint32 updateVertexAttributes(ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Calls a function for each vertex in the whole mesh (i.e., parent and mesh parts). * @function GraphicsMeshPArt.forEachVertex * @param {GraphicsMesh~forEachVertexCallback} callback - The function to call for each vertex. @@ -298,7 +298,7 @@ namespace scriptable { */ glm::uint32 forEachVertex(ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Checks if an index is valid and, optionally, that vertex has a particular attribute. * @function GraphicsMeshPart.isValidIndex * @param {number} index - The index to check. diff --git a/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.h b/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.h index f64653135c3..fb6f1dc0ca7 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.h +++ b/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.h @@ -14,7 +14,7 @@ namespace scriptable { using ScriptableMeshes = QVector; - /**jsdoc + /*@jsdoc * A handle to in-memory model data such as may be used in displaying avatars, 3D entities, or 3D overlays in the rendered * scene. Changes made to the model are visible only to yourself; they are not persisted. *

Note: The model may be used for more than one instance of an item displayed in the scene. Modifying the model updates @@ -70,7 +70,7 @@ namespace scriptable { public slots: - /**jsdoc + /*@jsdoc * Makes a copy of the model. * @function GraphicsModel.cloneModel * @param {object} [options] - Not used. @@ -78,7 +78,7 @@ namespace scriptable { */ scriptable::ScriptableModelPointer cloneModel(const QVariantMap& options = QVariantMap()); - /**jsdoc + /*@jsdoc * Gets a string description of the model. * @function GraphicsModel.toString * @returns {string} A string description of the model. diff --git a/libraries/graphics/src/graphics/BufferViewHelpers.cpp b/libraries/graphics/src/graphics/BufferViewHelpers.cpp index 88caa3cea46..75110838eb1 100644 --- a/libraries/graphics/src/graphics/BufferViewHelpers.cpp +++ b/libraries/graphics/src/graphics/BufferViewHelpers.cpp @@ -34,7 +34,7 @@ namespace buffer_helpers { const std::array XYZW = { { "x", "y", "z", "w" } }; const std::array ZERO123 = { { "0", "1", "2", "3" } }; -/**jsdoc +/*@jsdoc *

The type name of a graphics buffer.

*
* @@ -56,7 +56,7 @@ const std::array ZERO123 = { { "0", "1", "2", "3" } }; *
* @typedef {string} Graphics.BufferTypeName */ -/**jsdoc +/*@jsdoc *

The type of a graphics buffer value as accessed by JavaScript.

* * diff --git a/libraries/graphics/src/graphics/GpuHelpers.cpp b/libraries/graphics/src/graphics/GpuHelpers.cpp index dd911e33c21..f119cac4c33 100644 --- a/libraries/graphics/src/graphics/GpuHelpers.cpp +++ b/libraries/graphics/src/graphics/GpuHelpers.cpp @@ -8,7 +8,7 @@ #include "GpuHelpers.h" -/**jsdoc +/*@jsdoc *

The interpretation of mesh elements.

*
* diff --git a/libraries/image/src/image/TextureProcessing.h b/libraries/image/src/image/TextureProcessing.h index decb940fda5..ff81e98a770 100644 --- a/libraries/image/src/image/TextureProcessing.h +++ b/libraries/image/src/image/TextureProcessing.h @@ -30,7 +30,7 @@ namespace image { namespace TextureUsage { -/**jsdoc +/*@jsdoc *

Describes the type of texture.

*

See also: {@link Material} and * {@link https://docs.vircadia.dev/create/3d-models/pbr-materials-guide.html|PBR Materials Guide}.

diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp index c7c5543d445..88994ddd926 100755 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp @@ -310,7 +310,7 @@ controller::Input KeyboardMouseDevice::InputDevice::makeInput(KeyboardMouseDevic return controller::Input(_deviceID, button, controller::ChannelType::BUTTON); } -/**jsdoc +/*@jsdoc *

The Controller.Hardware.Keyboard object has properties representing keyboard, mouse, and display touch * events. The property values are integer IDs, uniquely identifying each output. Read-only.

*

These events can be mapped to actions or functions or Controller.Standard items in a {@link RouteObject} diff --git a/libraries/material-networking/src/material-networking/TextureCache.cpp b/libraries/material-networking/src/material-networking/TextureCache.cpp index e4e36cad481..92e5e0873c8 100644 --- a/libraries/material-networking/src/material-networking/TextureCache.cpp +++ b/libraries/material-networking/src/material-networking/TextureCache.cpp @@ -65,7 +65,7 @@ const std::string TextureCache::KTX_DIRNAME{ "ktx_cache" }; #endif const std::string TextureCache::KTX_EXT { "ktx" }; -/**jsdoc +/*@jsdoc *

The views that may be visible on the PC display.

*
* diff --git a/libraries/material-networking/src/material-networking/TextureCacheScriptingInterface.h b/libraries/material-networking/src/material-networking/TextureCacheScriptingInterface.h index 5ff15c03d94..992a4a54231 100644 --- a/libraries/material-networking/src/material-networking/TextureCacheScriptingInterface.h +++ b/libraries/material-networking/src/material-networking/TextureCacheScriptingInterface.h @@ -24,7 +24,7 @@ class TextureCacheScriptingInterface : public ScriptableResourceCache, public De // Properties are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc + /*@jsdoc * The TextureCache API manages texture cache resources. * * @namespace TextureCache @@ -51,7 +51,7 @@ class TextureCacheScriptingInterface : public ScriptableResourceCache, public De public: TextureCacheScriptingInterface(); - /**jsdoc + /*@jsdoc * Prefetches a texture resource of specific type. * @function TextureCache.prefetch * @variation 0 @@ -64,7 +64,7 @@ class TextureCacheScriptingInterface : public ScriptableResourceCache, public De Q_INVOKABLE ScriptableResource* prefetch(const QUrl& url, int type, int maxNumPixels = ABSOLUTE_MAX_TEXTURE_NUM_PIXELS); signals: - /**jsdoc + /*@jsdoc * @function TextureCache.spectatorCameraFramebufferReset * @returns {Signal} * @deprecated This signal is deprecated and will be removed. diff --git a/libraries/midi/src/Midi.cpp b/libraries/midi/src/Midi.cpp index 25689e8bd39..02d47198e96 100644 --- a/libraries/midi/src/Midi.cpp +++ b/libraries/midi/src/Midi.cpp @@ -266,7 +266,7 @@ void Midi::MidiCleanup() { } #endif -/**jsdoc +/*@jsdoc * A MIDI message. *

Warning: The status property is NOT a MIDI status value.

* @typedef {object} Midi.MidiMessage @@ -280,7 +280,7 @@ void Midi::MidiCleanup() { * @property {number} bend - Pitch bend: -81928191. * @property {number} program - Program change: 0127. */ -/**jsdoc +/*@jsdoc * An integer DWORD (unsigned 32 bit) message with bits having values as follows: *
* @@ -302,7 +302,7 @@ void Midi::MidiCleanup() { *

The number in the first bit of each byte denotes whether it is a command (1) or data (0). * @typedef {number} Midi.RawMidiMessage */ -/**jsdoc +/*@jsdoc *

A MIDI status value. The following MIDI status values are supported:

*
* diff --git a/libraries/midi/src/Midi.h b/libraries/midi/src/Midi.h index e2b84ec3339..c81aa4f04b6 100644 --- a/libraries/midi/src/Midi.h +++ b/libraries/midi/src/Midi.h @@ -20,7 +20,7 @@ #include #include -/**jsdoc +/*@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. @@ -56,7 +56,7 @@ class Midi : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when a connected device sends an output. * @function Midi.midiNote * @param {Midi.MidiMessage} message - The MIDI message. @@ -65,7 +65,7 @@ class Midi : public QObject, public Dependency { */ void midiNote(QVariantMap eventData); - /**jsdoc + /*@jsdoc * Triggered when a connected device sends an output. * @function Midi.midiMessage * @param {Midi.MidiMessage} message - The MIDI message. @@ -73,7 +73,7 @@ class Midi : public QObject, public Dependency { */ void midiMessage(QVariantMap eventData); - /**jsdoc + /*@jsdoc * Triggered when the system detects there was a reset such as when a device is plugged in or unplugged. * @function Midi.midiReset * @returns {Signal} @@ -82,7 +82,7 @@ class Midi : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Sends a raw MIDI packet to a particular device. * @function Midi.sendRawDword * @param {number} device - Integer device number. @@ -90,7 +90,7 @@ public slots: */ Q_INVOKABLE void sendRawDword(int device, int raw); - /**jsdoc + /*@jsdoc * Sends a MIDI message to a particular device. * @function Midi.sendMidiMessage * @param {number} device - Integer device number. @@ -102,7 +102,7 @@ public slots: */ Q_INVOKABLE void sendMidiMessage(int device, int channel, int type, int note, int velocity); - /**jsdoc + /*@jsdoc * Plays a note on all connected devices. * @function Midi.playMidiNote * @param {MidiStatus} status - Note status. @@ -111,19 +111,19 @@ public slots: */ Q_INVOKABLE void playMidiNote(int status, int note, int velocity); - /**jsdoc + /*@jsdoc * Turns off all notes on all connected MIDI devices. * @function Midi.allNotesOff */ Q_INVOKABLE void allNotesOff(); - /**jsdoc + /*@jsdoc * Cleans up and rediscovers attached MIDI devices. * @function Midi.resetDevices */ Q_INVOKABLE void resetDevices(); - /**jsdoc + /*@jsdoc * Gets a list of MIDI input or output devices. * @function Midi.listMidiDevices * @param {boolean} output - true to list output devices, false to list input devices. @@ -131,7 +131,7 @@ public slots: */ Q_INVOKABLE QStringList listMidiDevices(bool output); - /**jsdoc + /*@jsdoc * Blocks a MIDI device's input or output. * @function Midi.blockMidiDevice * @param {string} name - The name of the MIDI device to block. @@ -139,7 +139,7 @@ public slots: */ Q_INVOKABLE void blockMidiDevice(QString name, bool output); - /**jsdoc + /*@jsdoc * Unblocks a MIDI device's input or output. * @function Midi.unblockMidiDevice * @param {string} name- The name of the MIDI device to unblock. @@ -147,7 +147,7 @@ public slots: */ Q_INVOKABLE void unblockMidiDevice(QString name, bool output); - /**jsdoc + /*@jsdoc * Enables or disables repeating all incoming notes to all outputs. (Default is disabled.) * @function Midi.thruModeEnable * @param {boolean} enable - true to enable repeating all incoming notes to all output, false to @@ -156,7 +156,7 @@ public slots: Q_INVOKABLE void thruModeEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables broadcasts to all unblocked devices. * @function Midi.broadcastEnable * @param {boolean} enable - true to have "send" functions broadcast to all devices, false to @@ -167,56 +167,56 @@ public slots: /// filter by event types - /**jsdoc + /*@jsdoc * Enables or disables note off events. * @function Midi.typeNoteOffEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typeNoteOffEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables note on events. * @function Midi.typeNoteOnEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typeNoteOnEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables poly key pressure events. * @function Midi.typePolyKeyPressureEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typePolyKeyPressureEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables control change events. * @function Midi.typeControlChangeEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typeControlChangeEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables program change events. * @function Midi.typeProgramChangeEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typeProgramChangeEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables channel pressure events. * @function Midi.typeChanPressureEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typeChanPressureEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables pitch bend events. * @function Midi.typePitchBendEnable * @param {boolean} enable - true to enable, false to disable. */ Q_INVOKABLE void typePitchBendEnable(bool enable); - /**jsdoc + /*@jsdoc * Enables or disables system message events. * @function Midi.typeSystemMessageEnable * @param {boolean} enable - true to enable, false to disable. diff --git a/libraries/model-networking/src/model-networking/ModelCacheScriptingInterface.h b/libraries/model-networking/src/model-networking/ModelCacheScriptingInterface.h index d83b853b01e..9ac009dfbf8 100644 --- a/libraries/model-networking/src/model-networking/ModelCacheScriptingInterface.h +++ b/libraries/model-networking/src/model-networking/ModelCacheScriptingInterface.h @@ -24,7 +24,7 @@ class ModelCacheScriptingInterface : public ScriptableResourceCache, public Depe // Properties are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc + /*@jsdoc * The ModelCache API manages model cache resources. * * @namespace ModelCache diff --git a/libraries/model-serializers/src/GLTFSerializer.cpp b/libraries/model-serializers/src/GLTFSerializer.cpp index 09fa1e83206..9b0145c112c 100755 --- a/libraries/model-serializers/src/GLTFSerializer.cpp +++ b/libraries/model-serializers/src/GLTFSerializer.cpp @@ -1550,7 +1550,6 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash& typedef QPair WeightedIndex; hifi::VariantHash blendshapeMappings = mapping.value("bs").toHash(); QMultiHash blendshapeIndices; - for (int i = 0;; ++i) { auto blendshapeName = QString(BLENDSHAPE_NAMES[i]); if (blendshapeName.isEmpty()) { @@ -1572,6 +1571,32 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash& } } + // If an FST isn't being used and the model is likely from ReadyPlayerMe, add blendshape synonyms. + auto fileTargetNames = _file.meshes[node.mesh].extras.targetNames; + bool likelyReadyPlayerMeFile = + fileTargetNames.contains("browOuterUpLeft") + && fileTargetNames.contains("browInnerUp") + && fileTargetNames.contains("browDownLeft") + && fileTargetNames.contains("eyeBlinkLeft") + && fileTargetNames.contains("eyeWideLeft") + && fileTargetNames.contains("mouthLeft") + && fileTargetNames.contains("viseme_O") + && fileTargetNames.contains("mouthShrugLower"); + if (blendshapeMappings.count() == 0 && likelyReadyPlayerMeFile) { + QHash>::const_iterator synonym + = READYPLAYERME_BLENDSHAPES_MAP.constBegin(); + while (synonym != READYPLAYERME_BLENDSHAPES_MAP.constEnd()) { + if (fileTargetNames.contains(synonym.key())) { + auto blendshape = BLENDSHAPE_LOOKUP_MAP.find(synonym.value().first); + if (blendshape != BLENDSHAPE_LOOKUP_MAP.end()) { + blendshapeIndices.insert(synonym.key(), + WeightedIndex(blendshape.value(), synonym.value().second)); + } + } + ++synonym; + } + } + // Create blendshapes. if (!blendshapeIndices.isEmpty()) { mesh.blendshapes.resize((int)Blendshapes::BlendshapeCount); diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index f491e59b972..e8793edc1dc 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -31,7 +31,7 @@ const QString INDEX_PATH = "/"; const QString GET_PLACE = "/api/v1/places/%1"; -/**jsdoc +/*@jsdoc * The location API provides facilities related to your current location in the metaverse. * *

Getter/Setter

@@ -68,7 +68,7 @@ const QString GET_PLACE = "/api/v1/places/%1"; * Read-only. */ -/**jsdoc +/*@jsdoc * The AddressManager API provides facilities related to your current location in the metaverse. * * @namespace AddressManager @@ -142,7 +142,7 @@ class AddressManager : public QObject, public Dependency { using PositionGetter = std::function; using OrientationGetter = std::function; - /**jsdoc + /*@jsdoc *

The reasons for an address lookup via the metaverse API are defined by numeric values:

*
* @@ -245,7 +245,7 @@ class AddressManager : public QObject, public Dependency { QUrl getDomainURL() { return _domainURL; } public slots: - /**jsdoc + /*@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., @@ -257,7 +257,7 @@ public slots: */ void handleLookupString(const QString& lookupString, bool fromSuggestions = false); - /**jsdoc + /*@jsdoc * Takes you to a position and orientation resulting from a lookup for a named path in the domain (set in the domain * server's settings). * @function location.goToViewpointForPath @@ -272,19 +272,19 @@ public slots: bool goToViewpointForPath(const QString& viewpointString, const QString& pathString) { return handleViewpoint(viewpointString, false, DomainPathResponse, false, pathString); } - /**jsdoc + /*@jsdoc * Takes you back to the previous location in your navigation history, if there is one. * @function location.goBack */ void goBack(); - /**jsdoc + /*@jsdoc * Takes you forward to the next location in your navigation history, if there is one. * @function location.goForward */ void goForward(); - /**jsdoc + /*@jsdoc * Takes you to the local Sandbox server that's running on the same PC as Interface. * @function location.goToLocalSandbox * @param {string} [path=""] - The position and orientation to go to (e.g., "/0,0,0"). @@ -295,7 +295,7 @@ public slots: handleUrl(SANDBOX_HIFI_ADDRESS + path, trigger); } - /**jsdoc + /*@jsdoc * Takes you to the default "welcome" metaverse address. * @function location.goToEntry * @param {location.LookupTrigger} trigger=StartupFromSettings - The reason for the function call. Helps ensure that user's @@ -303,7 +303,7 @@ public slots: */ void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings); - /**jsdoc + /*@jsdoc * Takes you to the specified user's location. * @function location.goToUser * @param {string} username - The user's username. @@ -312,20 +312,20 @@ public slots: */ void goToUser(const QString& username, bool shouldMatchOrientation = true); - /**jsdoc + /*@jsdoc * Takes you to the last address tried. This will be the last URL tried from location.handleLookupString. * @function location.goToLastAddress */ void goToLastAddress(); - /**jsdoc + /*@jsdoc * Checks if going back to the previous location is possible. * @function location.canGoBack * @returns {boolean} true if going back is possible, false if it isn't. */ bool canGoBack() const; - /**jsdoc + /*@jsdoc * Refreshes the current address, e.g., after connecting to a domain in order to position the user to the desired location. * @function location.refreshPreviousLookup * @deprecated This function is deprecated and will be removed. @@ -334,27 +334,27 @@ public slots: // functions and signals that should be exposed are moved to a scripting interface class. void refreshPreviousLookup(); - /**jsdoc + /*@jsdoc * Updates your current metaverse location in Interface's {@link Settings} file as your last-known address. This can be used * to ensure that you start up at that address if you exit Interface without a later address automatically being saved. * @function location.storeCurrentAddress */ void storeCurrentAddress(); - /**jsdoc + /*@jsdoc * Copies your current metaverse address (i.e., location.href property value) to the OS clipboard. * @function location.copyAddress */ void copyAddress(); - /**jsdoc + /*@jsdoc * Copies your current metaverse location and orientation (i.e., location.pathname property value) to the OS * clipboard. * @function location.copyPath */ void copyPath(); - /**jsdoc + /*@jsdoc * Retrieves and remembers the place name for the given domain ID if the place name is not already known. * @function location.lookupShareableNameForDomainID * @param {Uuid} domainID - The UUID of the domain. @@ -365,7 +365,7 @@ public slots: void lookupShareableNameForDomainID(const QUuid& domainID); signals: - /**jsdoc + /*@jsdoc * Triggered when looking up the details of a metaverse user or location to go to has completed (successfully or * unsuccessfully). * @function location.lookupResultsFinished @@ -373,7 +373,7 @@ public slots: */ void lookupResultsFinished(); - /**jsdoc + /*@jsdoc * Triggered when looking up the details of a metaverse user or location to go to has completed and the domain or user is * offline. * @function location.lookupResultIsOffline @@ -381,7 +381,7 @@ public slots: */ void lookupResultIsOffline(); - /**jsdoc + /*@jsdoc * Triggered when looking up the details of a metaverse user or location to go to has completed and the domain or user could * not be found. * @function location.lookupResultIsNotFound @@ -389,7 +389,7 @@ public slots: */ void lookupResultIsNotFound(); - /**jsdoc + /*@jsdoc * Triggered when a request is made to go to an IP address. * @function location.possibleDomainChangeRequired * @param {Url} domainURL - URL for domain @@ -399,7 +399,7 @@ public slots: // No example because this function isn't typically used in scripts. void possibleDomainChangeRequired(QUrl domainURL, QUuid domainID); - /**jsdoc + /*@jsdoc * Triggered when a request is made to go to a named domain or user. * @function location.possibleDomainChangeRequiredViaICEForID * @param {string} iceServerHostName - IP address of the ICE server. @@ -409,7 +409,7 @@ public slots: // No example because this function isn't typically used in scripts. void possibleDomainChangeRequiredViaICEForID(const QString& iceServerHostname, const QUuid& domainID); - /**jsdoc + /*@jsdoc * Triggered when an attempt is made to send your avatar to a specified position on the current domain. For example, when * you change domains or enter a position to go to in the "Goto" dialog. * @function location.locationChangeRequired @@ -435,7 +435,7 @@ public slots: bool hasOrientationChange, const glm::quat& newOrientation, bool shouldFaceLocation); - /**jsdoc + /*@jsdoc * Triggered when an attempt is made to send your avatar to a new named path on the domain (set in the domain server's * settings). For example, when you enter a "/" followed by the path's name in the "GOTO" dialog. * @function location.pathChangeRequired @@ -450,7 +450,7 @@ public slots: */ void pathChangeRequired(const QString& newPath); - /**jsdoc + /*@jsdoc * Triggered when you navigate to a new domain. * @function location.hostChanged * @param {string} hostname - The new domain's host name. @@ -464,7 +464,7 @@ public slots: */ void hostChanged(const QString& newHost); - /**jsdoc + /*@jsdoc * Triggered when there's a change in whether or not there's a previous location that can be navigated to using * {@link location.goBack|goBack}. (Reflects changes in the state of the "Goto" dialog's back arrow.) * @function location.goBackPossible @@ -480,7 +480,7 @@ public slots: */ void goBackPossible(bool isPossible); - /**jsdoc + /*@jsdoc * Triggered when there's a change in whether or not there's a forward location that can be navigated to using * {@link location.goForward|goForward}. (Reflects changes in the state of the "Goto" dialog's forward arrow.) * @function location.goForwardPossible diff --git a/libraries/networking/src/AssetClient.cpp b/libraries/networking/src/AssetClient.cpp index 3df3fce6cd3..dfa2bf8f359 100644 --- a/libraries/networking/src/AssetClient.cpp +++ b/libraries/networking/src/AssetClient.cpp @@ -88,7 +88,7 @@ namespace { const QString& CACHE_ERROR_MESSAGE{ "AssetClient::Error: %1 %2" }; } -/**jsdoc +/*@jsdoc * Cache status value returned by {@link Assets.getCacheStatus}. * @typedef {object} Assets.GetCacheStatusResult * @property {string} cacheDirectory - The path of the cache directory. @@ -116,7 +116,7 @@ MiniPromise::Promise AssetClient::cacheInfoRequestAsync(MiniPromise::Promise def return deferred; } -/**jsdoc +/*@jsdoc * Information on an asset in the cache. Value returned by {@link Assets.queryCacheMeta} and included in the data returned by * {@link Assets.loadFromCache}. * @typedef {object} Assets.CacheItemMetaData @@ -226,7 +226,7 @@ namespace { } } -/**jsdoc +/*@jsdoc * Last-modified and expiry times for a cache item. * @typedef {object} Assets.SaveToCacheHeaders * @property {string} [expires] - The date and time the cache value expires, in the format: @@ -234,7 +234,7 @@ namespace { * @property {string} [last-modified] - The date and time the cache value was last modified, in the format: * "ddd, dd MMM yyyy HH:mm:ss". The default value is the current date and time. */ -/**jsdoc +/*@jsdoc * Information on saving asset data to the cache with {@link Assets.saveToCache}. * @typedef {object} Assets.SaveToCacheResult * @property {number} [byteLength] - The size of the cached data, in bytes. diff --git a/libraries/networking/src/BaseAssetScriptingInterface.cpp b/libraries/networking/src/BaseAssetScriptingInterface.cpp index 2a98dbf3c3e..d7d14496baf 100644 --- a/libraries/networking/src/BaseAssetScriptingInterface.cpp +++ b/libraries/networking/src/BaseAssetScriptingInterface.cpp @@ -68,7 +68,7 @@ Promise BaseAssetScriptingInterface::queryCacheMeta(const QUrl& url) { return assetClient()->queryCacheMetaAsync(url, makePromise(__FUNCTION__)); } -/**jsdoc +/*@jsdoc * Data and information returned by {@link Assets.loadFromCache}. * @typedef {object} Assets.LoadFromCacheResult * @property {number} [byteLength] - The number of bytes in the retrieved data. diff --git a/libraries/networking/src/BaseAssetScriptingInterface.h b/libraries/networking/src/BaseAssetScriptingInterface.h index 18ba8c294a4..2a8be599217 100644 --- a/libraries/networking/src/BaseAssetScriptingInterface.h +++ b/libraries/networking/src/BaseAssetScriptingInterface.h @@ -25,7 +25,7 @@ class BaseAssetScriptingInterface : public QObject { Q_OBJECT public: - /**jsdoc + /*@jsdoc *

Types of response that {@link Assets.decompressData}, {@link Assets.getAsset}, or {@link Assets.loadFromCache} may * provide.

*
@@ -48,7 +48,7 @@ class BaseAssetScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Checks whether a string is a valid path. Note: A valid path must start with a "/". * @function Assets.isValidPath * @param {string} path - The path to check. @@ -56,7 +56,7 @@ public slots: */ bool isValidPath(QString input) { return AssetUtils::isValidPath(input); } - /**jsdoc + /*@jsdoc * Checks whether a string is a valid path and filename. Note: A valid path and filename must start with a "/" * but must not end with a "/". * @function Assets.isValidFilePath @@ -65,7 +65,7 @@ public slots: */ bool isValidFilePath(QString input) { return AssetUtils::isValidFilePath(input); } - /**jsdoc + /*@jsdoc * Gets the normalized ATP URL for a path or hash: ensures that it has "atp:" at the start. * @function Assets.getATPUrl * @param {string} url - The URL to normalize. @@ -73,7 +73,7 @@ public slots: */ QUrl getATPUrl(QString input) { return AssetUtils::getATPUrl(input); } - /**jsdoc + /*@jsdoc * Gets the SHA256 hexadecimal hash portion of an asset server URL. * @function Assets.extractAssetHash * @param {string} url - The URL to get the SHA256 hexadecimal hash from. @@ -81,7 +81,7 @@ public slots: */ QString extractAssetHash(QString input) { return AssetUtils::extractAssetHash(input); } - /**jsdoc + /*@jsdoc * Checks whether a string is a valid SHA256 hexadecimal hash, i.e., 64 hexadecimal characters. * @function Assets.isValidHash * @param {string} hash - The hash to check. @@ -89,7 +89,7 @@ public slots: */ bool isValidHash(QString input) { return AssetUtils::isValidHash(input); } - /**jsdoc + /*@jsdoc * Calculates the SHA256 hash of given data. * @function Assets.hashData * @param {string|ArrayBuffer} data - The data to calculate the hash of. @@ -97,7 +97,7 @@ public slots: */ QByteArray hashData(const QByteArray& data) { return AssetUtils::hashData(data); } - /**jsdoc + /*@jsdoc * Calculates the SHA256 hash of given data, in hexadecimal format. * @function Assets.hashDataHex * @param {string|ArrayBuffer} data - The data to calculate the hash of. diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index fd188ecec0e..a56d3162bd3 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -167,7 +167,7 @@ class DomainHandler : public QObject { _haveAskedConnectWithoutAvatarEntities = false; } - /**jsdoc + /*@jsdoc *

The reasons that you may be refused connection to a domain are defined by numeric values:

*
* diff --git a/libraries/networking/src/ExternalResource.h b/libraries/networking/src/ExternalResource.h index fa6eb85cfe0..edba0b458ba 100644 --- a/libraries/networking/src/ExternalResource.h +++ b/libraries/networking/src/ExternalResource.h @@ -42,7 +42,7 @@ class ExternalResource : public QObject { static ExternalResource* getInstance(); ~ExternalResource(){}; - /**jsdoc + /*@jsdoc *

An external resource bucket.

*

The original High Fidelity used "Public", "Content", and "MPAssets" Amazon S3 buckets. The intention is that the * community-run versions of these will keep the original data and structure, and any new additions will be made to @@ -56,7 +56,7 @@ class ExternalResource : public QObject { * @property {Script.ResourceBucket} HF_Marketplace - Assets that used to be in the High Fidelity's mpassets * Amazon S3 bucket. (High Fidelity marketplace.) */ - /**jsdoc + /*@jsdoc *

An external resource bucket.

*
* diff --git a/libraries/networking/src/MessagesClient.h b/libraries/networking/src/MessagesClient.h index 7f2714e5ea7..db2085da5a5 100644 --- a/libraries/networking/src/MessagesClient.h +++ b/libraries/networking/src/MessagesClient.h @@ -23,7 +23,7 @@ #include "Node.h" #include "ReceivedMessage.h" -/**jsdoc +/*@jsdoc *

The Messages API enables text and data to be sent between scripts over named "channels". A channel can have * an arbitrary name to help separate messaging between different sets of scripts.

* @@ -51,7 +51,7 @@ class MessagesClient : public QObject, public Dependency { void startThread(); - /**jsdoc + /*@jsdoc * Sends a text message on a channel. * @function Messages.sendMessage * @param {string} channel - The channel to send the message on. @@ -89,7 +89,7 @@ class MessagesClient : public QObject, public Dependency { */ Q_INVOKABLE void sendMessage(QString channel, QString message, bool localOnly = false); - /**jsdoc + /*@jsdoc * Sends a text message locally on a channel. * This is the same as calling {@link Messages.sendMessage|sendMessage} with localOnly == true. * @function Messages.sendLocalMessage @@ -98,7 +98,7 @@ class MessagesClient : public QObject, public Dependency { */ Q_INVOKABLE void sendLocalMessage(QString channel, QString message); - /**jsdoc + /*@jsdoc * Sends a data message on a channel. * @function Messages.sendData * @param {string} channel - The channel to send the data on. @@ -145,7 +145,7 @@ class MessagesClient : public QObject, public Dependency { */ Q_INVOKABLE void sendData(QString channel, QByteArray data, bool localOnly = false); - /**jsdoc + /*@jsdoc * Subscribes the scripting environment — Interface, the entity script server, or assignment client instance — * to receive messages on a specific channel. This means, for example, that if there are two Interface scripts that * subscribe to different channels, both scripts will receive messages on both channels. @@ -154,7 +154,7 @@ class MessagesClient : public QObject, public Dependency { */ Q_INVOKABLE void subscribe(QString channel); - /**jsdoc + /*@jsdoc * Unsubscribes the scripting environment from receiving messages on a specific channel. * @function Messages.unsubscribe * @param {string} channel - The channel to unsubscribe from. @@ -168,7 +168,7 @@ class MessagesClient : public QObject, public Dependency { static std::unique_ptr encodeMessagesDataPacket(QString channel, QByteArray data, QUuid senderID); signals: - /**jsdoc + /*@jsdoc * Triggered when a text message is received. * @function Messages.messageReceived * @param {string} channel - The channel that the message was sent on. This can be used to filter out messages not relevant @@ -182,7 +182,7 @@ class MessagesClient : public QObject, public Dependency { */ void messageReceived(QString channel, QString message, QUuid senderUUID, bool localOnly); - /**jsdoc + /*@jsdoc * Triggered when a data message is received. * @function Messages.dataReceived * @param {string} channel - The channel that the message was sent on. This can be used to filter out messages not relevant diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index 125640d0b9d..127369d0c8c 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -88,7 +88,7 @@ class ResourceCacheSharedItems : public Dependency { /// Wrapper to expose resources to JS/QML class ScriptableResource : public QObject { - /**jsdoc + /*@jsdoc * Information about a cached resource. Created by {@link AnimationCache.prefetch}, {@link MaterialCache.prefetch}, * {@link ModelCache.prefetch}, {@link SoundCache.prefetch}, or {@link TextureCache.prefetch}. * @@ -110,7 +110,7 @@ class ScriptableResource : public QObject { public: - /**jsdoc + /*@jsdoc * The loading state of a resource. * @typedef {object} Resource.State * @property {number} QUEUED - The resource is queued up, waiting to be loaded. @@ -131,7 +131,7 @@ class ScriptableResource : public QObject { ScriptableResource(const QUrl& url); virtual ~ScriptableResource() = default; - /**jsdoc + /*@jsdoc * Releases the resource. * @function ResourceObject#release */ @@ -146,7 +146,7 @@ class ScriptableResource : public QObject { signals: - /**jsdoc + /*@jsdoc * Triggered when the resource's download progress changes. * @function ResourceObject#progressChanged * @param {number} bytesReceived - Bytes downloaded so far. @@ -155,7 +155,7 @@ class ScriptableResource : public QObject { */ void progressChanged(uint64_t bytesReceived, uint64_t bytesTotal); - /**jsdoc + /*@jsdoc * Triggered when the resource's loading state changes. * @function ResourceObject#stateChanged * @param {Resource.State} state - New state. @@ -305,7 +305,7 @@ class ScriptableResourceCache : public QObject { // JSDoc 3.5.5 doesn't augment name spaces with @property definitions so the following properties JSDoc is copied to the // different exposed cache classes. - /**jsdoc + /*@jsdoc * @property {number} numTotal - Total number of total resources. Read-only. * @property {number} numCached - Total number of cached resource. Read-only. * @property {number} sizeTotal - Size in bytes of all resources. Read-only. @@ -316,7 +316,7 @@ class ScriptableResourceCache : public QObject { Q_PROPERTY(size_t sizeTotal READ getSizeTotalResources NOTIFY dirty) Q_PROPERTY(size_t sizeCached READ getSizeCachedResources NOTIFY dirty) - /**jsdoc + /*@jsdoc * @property {number} numGlobalQueriesPending - Total number of global queries pending (across all resource cache managers). * Read-only. * @property {number} numGlobalQueriesLoading - Total number of global queries loading (across all resource cache managers). @@ -328,7 +328,7 @@ class ScriptableResourceCache : public QObject { public: ScriptableResourceCache(QSharedPointer resourceCache); - /**jsdoc + /*@jsdoc * Gets the URLs of all resources in the cache. * @function ResourceCache.getResourceList * @returns {string[]} The URLs of all resources in the cache. @@ -340,14 +340,14 @@ class ScriptableResourceCache : public QObject { */ Q_INVOKABLE QVariantList getResourceList(); - /**jsdoc + /*@jsdoc * @function ResourceCache.updateTotalSize * @param {number} deltaSize - Delta size. * @deprecated This function is deprecated and will be removed. */ Q_INVOKABLE void updateTotalSize(const qint64& deltaSize); - /**jsdoc + /*@jsdoc * Prefetches a resource. * @function ResourceCache.prefetch * @param {string} url - The URL of the resource to prefetch. @@ -384,7 +384,7 @@ class ScriptableResourceCache : public QObject { signals: - /**jsdoc + /*@jsdoc * Triggered when the cache content has changed. * @function ResourceCache.dirty * @returns {Signal} diff --git a/libraries/networking/src/ResourceScriptingInterface.h b/libraries/networking/src/ResourceScriptingInterface.h index 73e2d8e29cb..0dda8d9b2ca 100644 --- a/libraries/networking/src/ResourceScriptingInterface.h +++ b/libraries/networking/src/ResourceScriptingInterface.h @@ -17,7 +17,7 @@ #include -/**jsdoc +/*@jsdoc * The Resources API enables the default location for different resource types to be overridden. * * @namespace Resources @@ -33,7 +33,7 @@ class ResourceScriptingInterface : public QObject, public Dependency { Q_OBJECT public: - /**jsdoc + /*@jsdoc * Overrides a path prefix with an alternative path. * @function Resources.overrideUrlPrefix * @param {string} prefix - The path prefix to override, e.g., "atp:/". @@ -41,7 +41,7 @@ class ResourceScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void overrideUrlPrefix(const QString& prefix, const QString& replacement); - /**jsdoc + /*@jsdoc * Restores the default path for a specified prefix. * @function Resources.restoreUrlPrefix * @param {string} prefix - The prefix of the resource to restore the path for. diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index 87bd7941d3e..f7c1192886b 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -24,7 +24,7 @@ int packetTypeMetaTypeId = qRegisterMetaType(); PacketVersion versionForPacketType(PacketType packetType) { switch (packetType) { - case PacketType::StunResponse: + case PacketType::DomainConnectRequestPending: // keeping the old version to maintain the protocol hash return 17; case PacketType::DomainList: return static_cast(DomainListVersion::HasConnectReason); diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 1d969690354..819551045ac 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -33,7 +33,7 @@ class PacketTypeEnum { // This enum must hold 256 or fewer packet types (so the value is <= 255) since it is statically typed as a uint8_t enum class Value : uint8_t { Unknown, - StunResponse, + DomainConnectRequestPending, DomainList, Ping, PingReply, @@ -170,7 +170,7 @@ class PacketTypeEnum { const static QSet getNonSourcedPackets() { const static QSet NON_SOURCED_PACKETS = QSet() - << PacketTypeEnum::Value::StunResponse << PacketTypeEnum::Value::CreateAssignment + << PacketTypeEnum::Value::DomainConnectRequestPending << PacketTypeEnum::Value::CreateAssignment << PacketTypeEnum::Value::RequestAssignment << PacketTypeEnum::Value::DomainServerRequireDTLS << PacketTypeEnum::Value::DomainConnectRequest << PacketTypeEnum::Value::DomainList << PacketTypeEnum::Value::DomainConnectionDenied << PacketTypeEnum::Value::DomainServerPathQuery diff --git a/libraries/octree/src/OctreeScriptingInterface.h b/libraries/octree/src/OctreeScriptingInterface.h index c7b0552511f..41f722a95f5 100644 --- a/libraries/octree/src/OctreeScriptingInterface.h +++ b/libraries/octree/src/OctreeScriptingInterface.h @@ -36,7 +36,7 @@ private slots: public slots: - /**jsdoc + /*@jsdoc * Sets the maximum number of entity packets that the client can send per second. * @function Entities.setPacketsPerSecond * @param {number} packetsPerSecond - Integer maximum number of entity packets that the client can send per second. @@ -44,7 +44,7 @@ public slots: /// set the max packets per second send rate void setPacketsPerSecond(int packetsPerSecond) { return _packetSender->setPacketsPerSecond(packetsPerSecond); } - /**jsdoc + /*@jsdoc * Gets the maximum number of entity packets that the client can send per second. * @function Entities.getPacketsPerSecond * @returns {number} Integer maximum number of entity packets that the client can send per second. @@ -52,7 +52,7 @@ public slots: /// get the max packets per second send rate int getPacketsPerSecond() const { return _packetSender->getPacketsPerSecond(); } - /**jsdoc + /*@jsdoc * Checks whether servers exist for the client to send entity packets to, i.e., whether you are connected to a domain and * its entity server is working. * @function Entities.serversExist @@ -62,7 +62,7 @@ public slots: /// does a server exist to send to bool serversExist() const { return _packetSender->serversExist(); } - /**jsdoc + /*@jsdoc * Checks whether the client has entity packets waiting to be sent. * @function Entities.hasPacketsToSend * @returns {boolean} true if the client has entity packets waiting to be sent, otherwise false. @@ -70,7 +70,7 @@ public slots: /// are there packets waiting in the send queue to be sent bool hasPacketsToSend() const { return _packetSender->hasPacketsToSend(); } - /**jsdoc + /*@jsdoc * Gets the number of entity packets the client has waiting to be sent. * @function Entities.packetsToSendCount * @returns {number} Integer number of entity packets the client has waiting to be sent. @@ -78,7 +78,7 @@ public slots: /// how many packets are there in the send queue waiting to be sent int packetsToSendCount() const { return (int)_packetSender->packetsToSendCount(); } - /**jsdoc + /*@jsdoc * Gets the entity packets per second send rate of the client over its lifetime. * @function Entities.getLifetimePPS * @returns {number} Entity packets per second send rate of the client over its lifetime. @@ -86,7 +86,7 @@ public slots: /// returns the packets per second send rate of this object over its lifetime float getLifetimePPS() const { return _packetSender->getLifetimePPS(); } - /**jsdoc + /*@jsdoc * Gets the entity bytes per second send rate of the client over its lifetime. * @function Entities.getLifetimeBPS * @returns {number} Entity bytes per second send rate of the client over its lifetime. @@ -94,7 +94,7 @@ public slots: /// returns the bytes per second send rate of this object over its lifetime float getLifetimeBPS() const { return _packetSender->getLifetimeBPS(); } - /**jsdoc + /*@jsdoc * Gets the entity packets per second queued rate of the client over its lifetime. * @function Entities.getLifetimePPSQueued * @returns {number} Entity packets per second queued rate of the client over its lifetime. @@ -102,7 +102,7 @@ public slots: /// returns the packets per second queued rate of this object over its lifetime float getLifetimePPSQueued() const { return _packetSender->getLifetimePPSQueued(); } - /**jsdoc + /*@jsdoc * Gets the entity bytes per second queued rate of the client over its lifetime. * @function Entities.getLifetimeBPSQueued * @returns {number} Entity bytes per second queued rate of the client over its lifetime. @@ -110,7 +110,7 @@ public slots: /// returns the bytes per second queued rate of this object over its lifetime float getLifetimeBPSQueued() const { return _packetSender->getLifetimeBPSQueued(); } - /**jsdoc + /*@jsdoc * Gets the lifetime of the client from the first entity packet sent until now, in microseconds. * @function Entities.getLifetimeInUsecs * @returns {number} Lifetime of the client from the first entity packet sent until now, in microseconds. @@ -118,7 +118,7 @@ public slots: /// returns lifetime of this object from first packet sent to now in usecs long long unsigned int getLifetimeInUsecs() const { return _packetSender->getLifetimeInUsecs(); } - /**jsdoc + /*@jsdoc * Gets the lifetime of the client from the first entity packet sent until now, in seconds. * @function Entities.getLifetimeInSeconds * @returns {number} Lifetime of the client from the first entity packet sent until now, in seconds. @@ -126,7 +126,7 @@ public slots: /// returns lifetime of this object from first packet sent to now in secs float getLifetimeInSeconds() const { return _packetSender->getLifetimeInSeconds(); } - /**jsdoc + /*@jsdoc * Gets the total number of entity packets sent by the client over its lifetime. * @function Entities.getLifetimePacketsSent * @returns {number} The total number of entity packets sent by the client over its lifetime. @@ -134,7 +134,7 @@ public slots: /// returns the total packets sent by this object over its lifetime long long unsigned int getLifetimePacketsSent() const { return _packetSender->getLifetimePacketsSent(); } - /**jsdoc + /*@jsdoc * Gets the total bytes of entity packets sent by the client over its lifetime. * @function Entities.getLifetimeBytesSent * @returns {number} The total bytes of entity packets sent by the client over its lifetime. @@ -142,7 +142,7 @@ public slots: /// returns the total bytes sent by this object over its lifetime long long unsigned int getLifetimeBytesSent() const { return _packetSender->getLifetimeBytesSent(); } - /**jsdoc + /*@jsdoc * Gets the total number of entity packets queued by the client over its lifetime. * @function Entities.getLifetimePacketsQueued * @returns {number} The total number of entity packets queued by the client over its lifetime. @@ -150,7 +150,7 @@ public slots: /// returns the total packets queued by this object over its lifetime long long unsigned int getLifetimePacketsQueued() const { return _packetSender->getLifetimePacketsQueued(); } - /**jsdoc + /*@jsdoc * Gets the total bytes of entity packets queued by the client over its lifetime. * @function Entities.getLifetimeBytesQueued * @returns {number} The total bytes of entity packets queued by the client over its lifetime. diff --git a/libraries/oculusMobilePlugin/src/OculusMobileControllerManager.cpp b/libraries/oculusMobilePlugin/src/OculusMobileControllerManager.cpp index ec744ce039f..9566cf1b498 100644 --- a/libraries/oculusMobilePlugin/src/OculusMobileControllerManager.cpp +++ b/libraries/oculusMobilePlugin/src/OculusMobileControllerManager.cpp @@ -535,7 +535,7 @@ bool OculusMobileInputDevice::triggerHapticPulse(float strength, float duration, return success; } -/**jsdoc +/*@jsdoc *

The Controller.Hardware.OculusTouch object has properties representing Oculus Rift. The property values are * integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or * Controller.Standard items in a {@link RouteObject} mapping.

diff --git a/libraries/physics/src/ObjectActionOffset.cpp b/libraries/physics/src/ObjectActionOffset.cpp index 526eb9f000c..4a35be4c09b 100644 --- a/libraries/physics/src/ObjectActionOffset.cpp +++ b/libraries/physics/src/ObjectActionOffset.cpp @@ -142,7 +142,7 @@ bool ObjectActionOffset::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "offset" {@link Entities.ActionType|ActionType} moves an entity so that it is a defined distance away from * a target point. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectActionTractor.cpp b/libraries/physics/src/ObjectActionTractor.cpp index 4925faaf2ad..a65c0aa66ad 100644 --- a/libraries/physics/src/ObjectActionTractor.cpp +++ b/libraries/physics/src/ObjectActionTractor.cpp @@ -338,7 +338,7 @@ bool ObjectActionTractor::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "tractor" {@link Entities.ActionType|ActionType} moves and rotates an entity to a target position and * orientation, optionally relative to another entity. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectActionTravelOriented.cpp b/libraries/physics/src/ObjectActionTravelOriented.cpp index 025c74b96a8..d547cf0afc9 100644 --- a/libraries/physics/src/ObjectActionTravelOriented.cpp +++ b/libraries/physics/src/ObjectActionTravelOriented.cpp @@ -149,7 +149,7 @@ bool ObjectActionTravelOriented::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "travel-oriented" {@link Entities.ActionType|ActionType} orients an entity to align with its direction of * travel. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectConstraintBallSocket.cpp b/libraries/physics/src/ObjectConstraintBallSocket.cpp index 5b925c9e880..1498aec2b5f 100644 --- a/libraries/physics/src/ObjectConstraintBallSocket.cpp +++ b/libraries/physics/src/ObjectConstraintBallSocket.cpp @@ -181,7 +181,7 @@ bool ObjectConstraintBallSocket::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "ball-socket" {@link Entities.ActionType|ActionType} connects two entities with a ball and socket joint. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: * diff --git a/libraries/physics/src/ObjectConstraintConeTwist.cpp b/libraries/physics/src/ObjectConstraintConeTwist.cpp index 6763f82773c..14d593618a9 100644 --- a/libraries/physics/src/ObjectConstraintConeTwist.cpp +++ b/libraries/physics/src/ObjectConstraintConeTwist.cpp @@ -261,7 +261,7 @@ bool ObjectConstraintConeTwist::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "cone-twist" {@link Entities.ActionType|ActionType} connects two entities with a joint that can move * through a cone and can twist. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectConstraintHinge.cpp b/libraries/physics/src/ObjectConstraintHinge.cpp index 3059d82bf38..5bc4c211306 100644 --- a/libraries/physics/src/ObjectConstraintHinge.cpp +++ b/libraries/physics/src/ObjectConstraintHinge.cpp @@ -245,7 +245,7 @@ bool ObjectConstraintHinge::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "hinge" {@link Entities.ActionType|ActionType} lets an entity pivot about an axis or connects two entities * with a hinge joint. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectConstraintSlider.cpp b/libraries/physics/src/ObjectConstraintSlider.cpp index 11374298cf7..c64de60da15 100644 --- a/libraries/physics/src/ObjectConstraintSlider.cpp +++ b/libraries/physics/src/ObjectConstraintSlider.cpp @@ -261,7 +261,7 @@ bool ObjectConstraintSlider::updateArguments(QVariantMap arguments) { return true; } -/**jsdoc +/*@jsdoc * The "slider" {@link Entities.ActionType|ActionType} lets an entity slide and rotate along an axis, or connects * two entities that slide and rotate along a shared axis. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}: diff --git a/libraries/physics/src/ObjectDynamic.cpp b/libraries/physics/src/ObjectDynamic.cpp index 4f7feacbab2..67596978329 100644 --- a/libraries/physics/src/ObjectDynamic.cpp +++ b/libraries/physics/src/ObjectDynamic.cpp @@ -93,7 +93,7 @@ bool ObjectDynamic::updateArguments(QVariantMap arguments) { return somethingChanged; } -/**jsdoc +/*@jsdoc * Different entity action types have different arguments: some common to all actions (listed in the table) and some specific * to each {@link Entities.ActionType|ActionType} (linked to below). * diff --git a/libraries/physics/src/ObjectMotionState.h b/libraries/physics/src/ObjectMotionState.h index 415b388e706..d543459cddb 100644 --- a/libraries/physics/src/ObjectMotionState.h +++ b/libraries/physics/src/ObjectMotionState.h @@ -29,7 +29,7 @@ enum PhysicsMotionType { MOTION_TYPE_KINEMATIC // keyframed motion }; -/**jsdoc +/*@jsdoc *

An entity's physics motion type may be one of the following:

*
* diff --git a/libraries/platform/src/platform/backend/Platform.cpp b/libraries/platform/src/platform/backend/Platform.cpp index 8b52b9cc29f..5c128ba28f8 100644 --- a/libraries/platform/src/platform/backend/Platform.cpp +++ b/libraries/platform/src/platform/backend/Platform.cpp @@ -10,7 +10,7 @@ #include "../Platform.h" #include "../PlatformKeys.h" -/**jsdoc +/*@jsdoc * Information on the computer platform as a whole. * @typedef {object} PlatformInfo.PlatformDescription * @property {PlatformInfo.ComputerDescription} computer - Information on the computer. @@ -24,7 +24,7 @@ namespace platform { namespace keys { const char* UNKNOWN = "UNKNOWN"; - /**jsdoc + /*@jsdoc * Information on a CPU. * @typedef {object} PlatformInfo.CPUDescription * @property {string} vendor - The CPU vendor (e.g., "Intel" or "AMD"). @@ -44,7 +44,7 @@ namespace platform { namespace keys { const char* isMaster = "isMaster"; } - /**jsdoc + /*@jsdoc * Information on a GPU. * @typedef {object} PlatformInfo.GPUDescription * @property {string} vendor - The GPU vendor (e.g., "NVIDIA", "AMD", or "Intel"). @@ -69,7 +69,7 @@ namespace platform { namespace keys { const char* isMaster = "isMaster"; } - /**jsdoc + /*@jsdoc * Information on a graphics API. * @typedef {object} PlatformInfo.GraphicsAPIDescription * @property {string} name - The name of the graphics API. @@ -82,7 +82,7 @@ namespace platform { namespace keys { * * @property {PlatformInfo.VulkanAPIDescription[]} [devices] - If a Vulkan API, then the devices provided in the API. */ - /**jsdoc + /*@jsdoc * Information on a Vulkan graphics API. * @typedef {object} PlatformInfo.VulkanAPIDescription * @property {string} @@ -95,13 +95,13 @@ namespace platform { namespace keys { * @property {PlatformInfo.VulkanQueueDescription[]} queues - The Vulkan queues available. * @property {PlatformInfo.VulkanHeapDescription[]} heaps - The Vulkan heaps available. */ - /**jsdoc + /*@jsdoc * Information on a Vulkan queue. * @typedef {object} PlatformInfo.VulkanQueueDescription * @property {string} flags - The Vulkan queue flags. * @property {number} count - The queue count. */ - /**jsdoc + /*@jsdoc * Information on a Vulkan heap. * @typedef {object} PlatformInfo.VulkanHeapDescription * @property {string} flags - The Vulkan heap flags. @@ -147,7 +147,7 @@ namespace platform { namespace keys { } } - /**jsdoc + /*@jsdoc * Information on a network card. * @typedef {object} PlatformInfo.NICDescription * @property {string} name - The name of the network card. @@ -158,7 +158,7 @@ namespace platform { namespace keys { const char* name = "name"; } - /**jsdoc + /*@jsdoc * Information on a display. * @typedef {object} PlatformInfo.DisplayDescription * @property {string} description - The display's description. @@ -196,7 +196,7 @@ namespace platform { namespace keys { const char* isMaster = "isMaster"; } - /**jsdoc + /*@jsdoc * Information on the computer's memory. * @typedef {object} PlatformInfo.MemoryDescription * @property {number} memTotal - The total amount of usable physical memory, in MB. @@ -205,7 +205,7 @@ namespace platform { namespace keys { const char* memTotal = "memTotal"; } - /**jsdoc + /*@jsdoc * Information on the computer. * @typedef {object} PlatformInfo.ComputerDescription * @property {PlatformInfo.ComputerOS} OS - The operating system. @@ -214,7 +214,7 @@ namespace platform { namespace keys { * @property {string} model - The computer model. * @property {PlatformInfo.PlatformTier} profileTier - The platform tier of the computer, profiled at Interface start-up. */ - /**jsdoc + /*@jsdoc *

The computer operating system.

*
* diff --git a/libraries/plugins/src/plugins/SteamClientPlugin.h b/libraries/plugins/src/plugins/SteamClientPlugin.h index e4d765882f7..f3ae1193e89 100644 --- a/libraries/plugins/src/plugins/SteamClientPlugin.h +++ b/libraries/plugins/src/plugins/SteamClientPlugin.h @@ -40,7 +40,7 @@ class SteamClientPlugin { virtual int getSteamVRBuildID() = 0; }; -/**jsdoc +/*@jsdoc * The Steam API provides facilities for working with the Steam version of Interface. * * @namespace Steam @@ -63,14 +63,14 @@ class SteamScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Gets whether Interface is running under Steam. * @function Steam.isRunning * @returns {boolean} true if Interface is running under Steam, false if it isn't. */ bool isRunning() const { return _plugin && _plugin->isRunning(); } - /**jsdoc + /*@jsdoc * Opens Steam's "Choose Friends to invite" dialog if Interface is running under Steam. * @function Steam.openInviteOverlay * @example diff --git a/libraries/pointers/src/Pick.h b/libraries/pointers/src/Pick.h index 9e6c5f98988..557fc937506 100644 --- a/libraries/pointers/src/Pick.h +++ b/libraries/pointers/src/Pick.h @@ -20,7 +20,7 @@ #include #include -/**jsdoc +/*@jsdoc *

The type of an intersection.

*
Invite Steam friends to join you in Vircadia.
* @@ -76,7 +76,7 @@ class PickQuery : protected ReadWriteLockable { PickQuery(const PickFilter& filter, const float maxDistance, const bool enabled); virtual ~PickQuery() = default; - /**jsdoc + /*@jsdoc * The PickType API provides constant numeric values that represent different types of picks. * * @namespace PickType @@ -93,7 +93,7 @@ class PickQuery : protected ReadWriteLockable { * collisions. */ - /**jsdoc + /*@jsdoc *

A type of pick.

*
* diff --git a/libraries/procedural/src/procedural/MaterialCacheScriptingInterface.h b/libraries/procedural/src/procedural/MaterialCacheScriptingInterface.h index 2e0d319b7ae..d3d5846c676 100644 --- a/libraries/procedural/src/procedural/MaterialCacheScriptingInterface.h +++ b/libraries/procedural/src/procedural/MaterialCacheScriptingInterface.h @@ -23,7 +23,7 @@ class MaterialCacheScriptingInterface : public ScriptableResourceCache, public D // Properties are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc + /*@jsdoc * The MaterialCache API manages material cache resources. * * @namespace MaterialCache diff --git a/libraries/procedural/src/procedural/Procedural.h b/libraries/procedural/src/procedural/Procedural.h index 7d655b5ef49..ee301d0a72d 100644 --- a/libraries/procedural/src/procedural/Procedural.h +++ b/libraries/procedural/src/procedural/Procedural.h @@ -27,12 +27,12 @@ using UniformLambdas = std::list>; const size_t MAX_PROCEDURAL_TEXTURE_CHANNELS{ 4 }; -/**jsdoc +/*@jsdoc * An object containing user-defined uniforms for communicating data to shaders. * @typedef {object} ProceduralUniforms */ -/**jsdoc +/*@jsdoc * The data used to define a Procedural shader material. * @typedef {object} ProceduralData * @property {number} version=1 - The version of the procedural shader. diff --git a/libraries/procedural/src/procedural/ProceduralMaterialCache.cpp b/libraries/procedural/src/procedural/ProceduralMaterialCache.cpp index 130f11f3ef2..af31418bf00 100644 --- a/libraries/procedural/src/procedural/ProceduralMaterialCache.cpp +++ b/libraries/procedural/src/procedural/ProceduralMaterialCache.cpp @@ -30,7 +30,7 @@ void NetworkMaterialResource::downloadFinished(const QByteArray& data) { finishedLoading(true); } -/**jsdoc +/*@jsdoc *

An RGB or SRGB color value.

*
* @@ -71,7 +71,7 @@ bool NetworkMaterialResource::parseJSONColor(const QJsonValue& array, glm::vec3& return false; } -/**jsdoc +/*@jsdoc * A material or set of materials used by a {@link Entities.EntityType|Material entity}. * @typedef {object} Entities.MaterialResource * @property {number} materialVersion=1 - The version of the material. Currently not used. @@ -110,7 +110,7 @@ NetworkMaterialResource::ParsedMaterials NetworkMaterialResource::parseJSONMater return toReturn; } -/**jsdoc +/*@jsdoc * A material used in a {@link Entities.MaterialResource|MaterialResource}. * @typedef {object} Entities.Material * @property {string} name="" - A name for the material. Supported by all material models. diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 9fa822994c7..dd3bcd0587a 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -443,7 +443,7 @@ bool Model::findRayIntersectionAgainstSubMeshes(const glm::vec3& origin, const g } } - /**jsdoc + /*@jsdoc * A submesh intersection point. * @typedef {object} SubmeshIntersection * @property {Vec3} worldIntersectionPoint - The intersection point in world coordinates. diff --git a/libraries/script-engine-qtscript/src/BaseScriptEngine.h b/libraries/script-engine-qtscript/src/BaseScriptEngine.h index 06493807e80..9e78c1239cd 100644 --- a/libraries/script-engine-qtscript/src/BaseScriptEngine.h +++ b/libraries/script-engine-qtscript/src/BaseScriptEngine.h @@ -28,7 +28,7 @@ class BaseScriptEngine : public QScriptEngine, public QEnableSharedFromThisScript API provides facilities for working with scripts. * * @namespace Script @@ -124,7 +124,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { // NOTE - these are NOT intended to be public interfaces available to scripts, the are only Q_INVOKABLE so we can // properly ensure they are only called on the correct thread - /**jsdoc + /*@jsdoc * @function Script.registerGlobalObject * @param {string} name - Name. * @param {object} object - Object. @@ -133,7 +133,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { /// registers a global object by name Q_INVOKABLE void registerGlobalObject(const QString& name, QObject* object); - /**jsdoc + /*@jsdoc * @function Script.registerGetterSetter * @param {string} name - Name. * @param {function} getter - Getter. @@ -145,7 +145,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { Q_INVOKABLE void registerGetterSetter(const QString& name, QScriptEngine::FunctionSignature getter, QScriptEngine::FunctionSignature setter, const QString& parent = QString("")); - /**jsdoc + /*@jsdoc * @function Script.registerFunction * @param {string} name - Name. * @param {function} function - Function. @@ -155,7 +155,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { /// register a global function Q_INVOKABLE void registerFunction(const QString& name, QScriptEngine::FunctionSignature fun, int numArguments = -1); - /**jsdoc + /*@jsdoc * @function Script.registerFunction * @param {string} parent - Parent. * @param {string} name - Name. @@ -167,7 +167,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { Q_INVOKABLE void registerFunction(const QString& parent, const QString& name, QScriptEngine::FunctionSignature fun, int numArguments = -1); - /**jsdoc + /*@jsdoc * @function Script.registerEnum * @param {string} name - Name. * @param {object} enum - Enum. @@ -178,7 +178,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { /// registers a global enum Q_INVOKABLE void registerEnum(const QString& enumName, QMetaEnum newEnum); - /**jsdoc + /*@jsdoc * @function Script.registerValue * @param {string} name - Name. * @param {object} value - Value. @@ -187,7 +187,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { /// registers a global object by name Q_INVOKABLE void registerValue(const QString& valueName, QScriptValue value); - /**jsdoc + /*@jsdoc * @function Script.evaluate * @param {string} program - Program. * @param {string} filename - File name. @@ -198,7 +198,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { /// evaluate some code in the context of the ScriptEngineQtScript and return the result Q_INVOKABLE QScriptValue evaluate(const QString& program, const QString& fileName, int lineNumber = 1); // this is also used by the script tool widget - /**jsdoc + /*@jsdoc * @function Script.evaluateInClosure * @param {object} locals - Locals. * @param {object} program - Program. @@ -207,7 +207,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { */ Q_INVOKABLE QScriptValue evaluateInClosure(const QScriptValue& locals, const QScriptProgram& program); - /**jsdoc + /*@jsdoc * Checks whether the application was compiled as a debug build. * @function Script.isDebugMode * @returns {boolean} true if the application was compiled as a debug build, false if it was @@ -218,7 +218,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // MODULE related methods - /**jsdoc + /*@jsdoc * Prints a message to the program log and emits {@link Script.printedMessage}. *

Alternatively, you can use {@link print} or one of the {@link console} API methods.

* @function Script.print @@ -229,7 +229,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Entity Script Related methods - /**jsdoc + /*@jsdoc * Manually runs the JavaScript garbage collector which reclaims memory by disposing of objects that are no longer * reachable. * @function Script.requestGarbageCollection @@ -247,7 +247,7 @@ class ScriptEngineQtScript : public BaseScriptEngine, public ScriptEngine { public slots: - /**jsdoc + /*@jsdoc * @function Script.updateMemoryCost * @param {number} deltaSize - Delta size. * @deprecated This function is deprecated and will be removed. @@ -256,7 +256,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered frequently at a system-determined interval. * @function Script.update * @param {number} deltaTime - The time since the last update, in s. @@ -268,7 +268,7 @@ public slots: */ void update(float deltaTime); - /**jsdoc + /*@jsdoc * @function Script.finished * @param {string} filename - File name. * @param {object} engine - Engine. @@ -277,7 +277,7 @@ public slots: */ void finished(const QString& fileNameString, ScriptEngineQtScriptPointer); - /**jsdoc + /*@jsdoc * @function Script.cleanupMenuItem * @param {string} menuItem - Menu item. * @returns {Signal} @@ -285,7 +285,7 @@ public slots: */ void cleanupMenuItem(const QString& menuItemString); - /**jsdoc + /*@jsdoc * Triggered when the script prints a message to the program log via {@link print}, {@link Script.print}, * {@link console.log}, {@link console.debug}, {@link console.group}, {@link console.groupEnd}, {@link console.time}, or * {@link console.timeEnd}. @@ -296,7 +296,7 @@ public slots: */ void printedMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates an error, {@link console.error} or {@link console.exception} is called, or * {@link console.assert} is called and fails. * @function Script.errorMessage @@ -306,7 +306,7 @@ public slots: */ void errorMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates a warning or {@link console.warn} is called. * @function Script.warningMessage * @param {string} message - The warning message. @@ -315,7 +315,7 @@ public slots: */ void warningMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates an information message or {@link console.info} is called. * @function Script.infoMessage * @param {string} message - The information message. @@ -324,21 +324,21 @@ public slots: */ void infoMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the running state of the script changes, e.g., from running to stopping. * @function Script.runningStateChanged * @returns {Signal} */ void runningStateChanged(); - /**jsdoc + /*@jsdoc * @function Script.clearDebugWindow * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ void clearDebugWindow(); - /**jsdoc + /*@jsdoc * @function Script.loadScript * @param {string} scriptName - Script name. * @param {boolean} isUserLoaded - Is user loaded. @@ -347,7 +347,7 @@ public slots: */ void loadScript(const QString& scriptName, bool isUserLoaded); - /**jsdoc + /*@jsdoc * @function Script.reloadScript * @param {string} scriptName - Script name. * @param {boolean} isUserLoaded - Is user loaded. @@ -356,14 +356,14 @@ public slots: */ void reloadScript(const QString& scriptName, bool isUserLoaded); - /**jsdoc + /*@jsdoc * Triggered when the script has stopped. * @function Script.doneRunning * @returns {Signal} */ void doneRunning(); - /**jsdoc + /*@jsdoc * @function Script.entityScriptDetailsUpdated * @returns {Signal} * @deprecated This signal is deprecated and will be removed. @@ -374,7 +374,7 @@ public slots: protected: - /**jsdoc + /*@jsdoc * @function Script.executeOnScriptThread * @param {function} function - Function. * @param {ConnectionType} [type=2] - Connection type. diff --git a/libraries/script-engine/src/AssetScriptingInterface.cpp b/libraries/script-engine/src/AssetScriptingInterface.cpp index b301c0136c2..942df370f51 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.cpp +++ b/libraries/script-engine/src/AssetScriptingInterface.cpp @@ -108,7 +108,7 @@ void AssetScriptingInterface::setMapping(QString path, QString hash, ScriptValue setMappingRequest->start(); } -/**jsdoc +/*@jsdoc * The success or failure of an {@link Assets.downloadData} call. * @typedef {object} Assets.DownloadDataError * @property {string} errorMessage - "" if the download was successful, otherwise a description of the error. @@ -253,7 +253,7 @@ void AssetScriptingInterface::deleteAsset(ScriptValuePointer options, ScriptValu jsVerify(false, "TODO: deleteAsset API"); } -/**jsdoc +/*@jsdoc * Source and download options for {@link Assets.getAsset}. * @typedef {object} Assets.GetOptions * @property {boolean} [decompress=false] - true to gunzip decompress the downloaded data. Synonym: @@ -261,7 +261,7 @@ void AssetScriptingInterface::deleteAsset(ScriptValuePointer options, ScriptValu * @property {Assets.ResponseType} [responseType="text"] - The desired result type. * @property {string} url - The mapped path or hash to download. May have a leading "atp:". */ -/**jsdoc +/*@jsdoc * Result value returned by {@link Assets.getAsset}. * @typedef {object} Assets.GetResult * @property {number} [byteLength] - The number of bytes in the downloaded content in response. @@ -329,12 +329,12 @@ void AssetScriptingInterface::getAsset(ScriptValuePointer options, ScriptValuePo } } -/**jsdoc +/*@jsdoc * Source options for {@link Assets.resolveAsset}. * @typedef {object} Assets.ResolveOptions * @property {string} url - The hash or path to resolve. May have a leading "atp:". */ -/**jsdoc +/*@jsdoc * Result value returned by {@link Assets.resolveAsset}. *

Note: If resolving a hash, a file of that hash need not be present on the asset server for the hash to resolve.

* @typedef {object} Assets.ResolveResult @@ -357,13 +357,13 @@ void AssetScriptingInterface::resolveAsset(ScriptValuePointer options, ScriptVal jsPromiseReady(getAssetInfo(asset), scope, callback); } -/**jsdoc +/*@jsdoc * Content and decompression options for {@link Assets.decompressData}. * @typedef {object} Assets.DecompressOptions * @property {ArrayBuffer} data - The data to decompress. * @property {Assets.ResponseType} [responseType=text] - The type of decompressed data to return. */ -/**jsdoc +/*@jsdoc * Result value returned by {@link Assets.decompressData}. * @typedef {object} Assets.DecompressResult * @property {number} [byteLength] - The number of bytes in the decompressed data. @@ -397,7 +397,7 @@ namespace { const int32_t MAX_GZIP_COMPRESSION_LEVEL = 9; } -/**jsdoc +/*@jsdoc * Content and compression options for {@link Assets.compressData}. * @typedef {object} Assets.CompressOptions * @property {string|ArrayBuffer} data - The data to compress. @@ -405,7 +405,7 @@ namespace { * use the default gzip compression level, 0 means no compression, and 9 means maximum * compression. */ -/**jsdoc +/*@jsdoc * Result value returned by {@link Assets.compressData}. * @typedef {object} Assets.CompressResult * @property {number} [byteLength] - The number of bytes in the compressed data. @@ -421,7 +421,7 @@ void AssetScriptingInterface::compressData(ScriptValuePointer options, ScriptVal jsPromiseReady(compressBytes(dataByteArray, level), scope, callback); } -/**jsdoc +/*@jsdoc * Content and upload options for {@link Assets.putAsset}. * @typedef {object} Assets.PutOptions * @property {boolean} [compress=false] - true to gzip compress the content for upload and storage, @@ -432,7 +432,7 @@ void AssetScriptingInterface::compressData(ScriptValuePointer options, ScriptVal *

Note: The asset server destroys any unmapped SHA256-named file at server restart. Either set the mapping path * with this property or use {@link Assets.setMapping} to set a path-to-hash mapping for the uploaded file.

*/ -/**jsdoc +/*@jsdoc * Result value returned by {@link Assets.putAsset}. * @typedef {object} Assets.PutResult * @property {number} [byteLength] - The number of bytes in the hash file stored on the asset server. @@ -492,7 +492,7 @@ void AssetScriptingInterface::putAsset(ScriptValuePointer options, ScriptValuePo } } -/**jsdoc +/*@jsdoc * Source for {@link Assets.queryCacheMeta}. * @typedef {object} Assets.QueryCacheMetaOptions * @property {string} url - The URL of the cached asset to get information on. Must start with "atp:" or @@ -504,7 +504,7 @@ void AssetScriptingInterface::queryCacheMeta(ScriptValuePointer options, ScriptV jsPromiseReady(Parent::queryCacheMeta(url), scope, callback); } -/**jsdoc +/*@jsdoc * Source and retrieval options for {@link Assets.loadFromCache}. * @typedef {object} Assets.LoadFromCacheOptions * @property {boolean} [decompress=false] - true to gunzip decompress the cached data. Synonym: @@ -547,7 +547,7 @@ bool AssetScriptingInterface::canWriteCacheValue(const QUrl& url) { return true; } -/**jsdoc +/*@jsdoc * The data to save to the cache and cache options for {@link Assets.saveToCache}. * @typedef {object} Assets.SaveToCacheOptions * @property {string|ArrayBuffer} data - The data to save to the cache. diff --git a/libraries/script-engine/src/AssetScriptingInterface.h b/libraries/script-engine/src/AssetScriptingInterface.h index 8871fdebf6a..fda3936df62 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.h +++ b/libraries/script-engine/src/AssetScriptingInterface.h @@ -27,7 +27,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Assets API provides facilities for interacting with the domain's asset server and the client cache. *

Assets are stored in the asset server in files with SHA256 names. These files are mapped to user-friendly URLs of the * format: atp:/path/filename. The assets may optionally be baked, in which case a request for the original @@ -50,14 +50,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { using Parent = BaseAssetScriptingInterface; AssetScriptingInterface(QObject* parent = nullptr); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.uploadData} call is complete. * @callback Assets~uploadDataCallback * @param {string} url - The raw URL of the file that the content is stored in, with atp: as the scheme and * the SHA256 hash as the filename (with no extension). * @param {string} hash - The SHA256 hash of the content. */ - /**jsdoc + /*@jsdoc * Uploads content to the asset server, storing it in a SHA256-named file. *

Note: The asset server destroys any unmapped SHA256-named file at server restart. Use {@link Assets.setMapping} to * set a path-to-hash mapping for the new file.

@@ -77,13 +77,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void uploadData(QString data, ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.downloadData} call is complete. * @callback Assets~downloadDataCallback * @param {string} data - The content that was downloaded. * @param {Assets.DownloadDataError} error - The success or failure of the download. */ - /**jsdoc + /*@jsdoc * Downloads content from the asset server, from a SHA256-named file. * @function Assets.downloadData * @param {string} url - The raw URL of asset to download: atp: followed by the assets's SHA256 hash. @@ -113,12 +113,12 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void downloadData(QString url, ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.setMapping} call is complete. * @callback Assets~setMappingCallback * @param {string} error - null if the path-to-hash mapping was set, otherwise a description of the error. */ - /**jsdoc + /*@jsdoc * Sets a path-to-hash mapping within the asset server. * @function Assets.setMapping * @param {string} path - A user-friendly path for the file in the asset server, without leading "atp:". @@ -127,13 +127,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void setMapping(QString path, QString hash, ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.getMapping} call is complete. * @callback Assets~getMappingCallback * @param {string} error - null if the path was found, otherwise a description of the error. * @param {string} hash - The hash value if the path was found, "" if it wasn't. */ - /**jsdoc + /*@jsdoc * Gets the hash for a path within the asset server. The hash is for the unbaked or baked version of the * asset, according to the asset server setting for the particular path. * @function Assets.getMapping @@ -151,13 +151,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void getMapping(QString path, ScriptValuePointer callback); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.setBakingEnabled} call is complete. * @callback Assets~setBakingEnabledCallback * @param {string} error - null if baking was successfully enabled or disabled, otherwise a description of the * error. */ - /**jsdoc + /*@jsdoc * Sets whether or not to bake an asset in the asset server. * @function Assets.setBakingEnabled * @param {string} path - The path to a file in the asset server. @@ -175,7 +175,7 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { Q_INVOKABLE void sendFakedHandshake(); #endif - /**jsdoc + /*@jsdoc * Details of a callback function. * @typedef {object} Assets.CallbackDetails * @property {object} scope - The scope that the callback function is defined in. This object is bound to @@ -187,13 +187,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { * identifier, it must be a member of scope. */ - /**jsdoc + /*@jsdoc * Called when an {@link Assets.getAsset} call is complete. * @callback Assets~getAssetCallback * @param {string} error - null if the content was downloaded, otherwise a description of the error. * @param {Assets.GetResult} result - Information on and the content downloaded. */ - /**jsdoc + /*@jsdoc * Downloads content from the asset server. * @function Assets.getAsset * @param {string|Assets.GetOptions} source - What to download and download options. If a string, the mapped path or hash @@ -223,14 +223,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void getAsset(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.putAsset} call is complete. * @callback Assets~putAssetCallback * @param {string} error - null if the content was uploaded and any path-to-hash mapping set, otherwise a * description of the error. * @param {Assets.PutResult} result - Information on the content uploaded. */ - /**jsdoc + /*@jsdoc * Uploads content to the asset server and sets a path-to-hash mapping. * @function Assets.putAsset * @param {string|Assets.PutOptions} options - The content to upload and upload options. If a string, the value of the @@ -260,14 +260,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void putAsset(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.deleteAsset} call is complete. *

Not implemented: This type is not implemented yet.

* @callback Assets~deleteAssetCallback * @param {string} error - null if the content was deleted, otherwise a description of the error. * @param {Assets.DeleteResult} result - Information on the content deleted. */ - /**jsdoc + /*@jsdoc * Deletes content from the asset server. *

Not implemented: This method is not implemented yet.

* @function Assets.deleteAsset @@ -277,13 +277,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void deleteAsset(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.resolveAsset} call is complete. * @callback Assets~resolveAssetCallback * @param {string} error - null if the asset hash or path was resolved, otherwise a description of the error. * @param {Assets.ResolveResult} result - Information on the hash or path resolved. */ - /**jsdoc + /*@jsdoc * Resolves and returns information on a hash or a path in the asset server. * @function Assets.resolveAsset * @param {string|Assets.ResolveOptions} source - The hash or path to resolve if a string, otherwise an object specifying @@ -311,13 +311,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void resolveAsset(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.decompressData} call is complete. * @callback Assets~decompressDataCallback * @param {string} error - null if the data was successfully compressed, otherwise a description of the error. * @param {Assets.DecompressResult} result - Information on and the decompressed data. */ - /**jsdoc + /*@jsdoc * Decompresses data in memory using gunzip. * @function Assets.decompressData * @param {Assets.DecompressOptions} source - What to decompress and decompression options. @@ -332,13 +332,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void decompressData(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.compressData} call is complete. * @callback Assets~compressDataCallback * @param {string} error - null if the data was successfully compressed, otherwise a description of the error. * @param {Assets.CompressResult} result - Information on and the compressed data. */ - /**jsdoc + /*@jsdoc * Compresses data in memory using gzip. * @function Assets.compressData * @param {string|ArrayBuffer|Assets.CompressOptions} source - What to compress and compression options. If a string or @@ -354,14 +354,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void compressData(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Initializes the cache if it isn't already initialized. * @function Assets.initializeCache * @returns {boolean} true if the cache is initialized, false if it isn't. */ Q_INVOKABLE bool initializeCache(); - /**jsdoc + /*@jsdoc * Checks whether the script can write to the cache. * @function Assets.canWriteCacheValue * @param {string} url - Not used. @@ -372,14 +372,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE bool canWriteCacheValue(const QUrl& url); - /**jsdoc + /*@jsdoc * Called when a {@link Assets.getCacheStatus} call is complete. * @callback Assets~getCacheStatusCallback * @param {string} error - null if the cache status was retrieved without error, otherwise a description of * the error. * @param {Assets.GetCacheStatusResult} result - Details of the current cache status. */ - /**jsdoc + /*@jsdoc * Gets the current cache status. * @function Assets.getCacheStatus * @param {object|Assets.CallbackDetails|Assets~getCacheStatusCallback} scopeOrCallback - If an object, then the scope that @@ -401,13 +401,13 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { jsPromiseReady(Parent::getCacheStatus(), scope, callback); } - /**jsdoc + /*@jsdoc * Called when {@link Assets.queryCacheMeta} is complete. * @callback Assets~queryCacheMetaCallback * @param {string} error - null if the URL has a valid cache entry, otherwise a description of the error. * @param {Assets.CacheItemMetaData} result - Information on an asset in the cache. */ - /**jsdoc + /*@jsdoc * Gets information about the status of an asset in the cache. * @function Assets.queryCacheMeta * @param {string|Assets.QueryCacheMetaOptions} path - The URL of the cached asset to get information on if a string, @@ -439,14 +439,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void queryCacheMeta(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.loadFromCache} call is complete. * @callback Assets~loadFromCacheCallback * @param {string} error - null if the cache item was successfully retrieved, otherwise a description of the * error. * @param {Assets.LoadFromCacheResult} result - Information on and the retrieved data. */ - /**jsdoc + /*@jsdoc * Retrieves data from the cache directly, without downloading it. * @function Assets.loadFromCache * @param {string|Assets.LoadFromCacheOptions} options - The URL of the asset to load from the cache if a string, otherwise @@ -479,14 +479,14 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void loadFromCache(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Called when an {@link Assets.saveToCache} call is complete. * @callback Assets~saveToCacheCallback * @param {string} error - null if the asset data was successfully saved to the cache, otherwise a description * of the error. * @param {Assets.SaveToCacheResult} result - Information on the cached data. */ - /**jsdoc + /*@jsdoc * Saves asset data to the cache directly, without downloading it from a URL. *

Note: Can only be used in Interface, avatar, and assignment client scripts.

* @function Assets.saveToCache @@ -518,7 +518,7 @@ class AssetScriptingInterface : public BaseAssetScriptingInterface, Scriptable { */ Q_INVOKABLE void saveToCache(ScriptValuePointer options, ScriptValuePointer scope, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Saves asset data to the cache directly, without downloading it from a URL. *

Note: Can only be used in Interface, avatar, and assignment client scripts.

* @function Assets.saveToCache diff --git a/libraries/script-engine/src/AudioScriptingInterface.h b/libraries/script-engine/src/AudioScriptingInterface.h index 05483febc22..6b7078e6792 100644 --- a/libraries/script-engine/src/AudioScriptingInterface.h +++ b/libraries/script-engine/src/AudioScriptingInterface.h @@ -41,7 +41,7 @@ class AudioScriptingInterface : public QObject, public Dependency { return _localAudioInterface->getAudioSolo().getUUIDs(); } - /**jsdoc + /*@jsdoc * Adds avatars to the audio solo list. If the audio solo list is not empty, only audio from the avatars in the list is * played. * @function Audio.addToSoloList @@ -78,7 +78,7 @@ class AudioScriptingInterface : public QObject, public Dependency { _localAudioInterface->getAudioSolo().addUUIDs(uuidList); } - /**jsdoc + /*@jsdoc * Removes avatars from the audio solo list. If the audio solo list is not empty, only audio from the avatars in the list * is played. * @function Audio.removeFromSoloList @@ -88,7 +88,7 @@ class AudioScriptingInterface : public QObject, public Dependency { _localAudioInterface->getAudioSolo().removeUUIDs(uuidList); } - /**jsdoc + /*@jsdoc * Clears the audio solo list. * @function Audio.resetSoloList */ @@ -96,7 +96,7 @@ class AudioScriptingInterface : public QObject, public Dependency { _localAudioInterface->getAudioSolo().reset(); } - /**jsdoc + /*@jsdoc * Gets whether your microphone audio is echoed back to you from the server. When enabled, microphone audio is echoed only * if you're unmuted or are using push-to-talk. * @function Audio.getServerEcho @@ -105,7 +105,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool getServerEcho(); - /**jsdoc + /*@jsdoc * Sets whether your microphone audio is echoed back to you from the server. When enabled, microphone audio is echoed * only if you're unmuted or are using push-to-talk. * @function Audio.setServerEcho @@ -114,14 +114,14 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setServerEcho(bool serverEcho); - /**jsdoc + /*@jsdoc * Toggles the echoing of microphone audio back to you from the server. When enabled, microphone audio is echoed only if * you're unmuted or are using push-to-talk. * @function Audio.toggleServerEcho */ Q_INVOKABLE void toggleServerEcho(); - /**jsdoc + /*@jsdoc * Gets whether your microphone audio is echoed back to you by the client. When enabled, microphone audio is echoed * even if you're muted or not using push-to-talk. * @function Audio.getLocalEcho @@ -130,7 +130,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE bool getLocalEcho(); - /**jsdoc + /*@jsdoc * Sets whether your microphone audio is echoed back to you by the client. When enabled, microphone audio is echoed * even if you're muted or not using push-to-talk. * @function Audio.setLocalEcho @@ -144,7 +144,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setLocalEcho(bool localEcho); - /**jsdoc + /*@jsdoc * Toggles the echoing of microphone audio back to you by the client. When enabled, microphone audio is echoed even if * you're muted or not using push-to-talk. * @function Audio.toggleLocalEcho @@ -157,7 +157,7 @@ class AudioScriptingInterface : public QObject, public Dependency { // these methods are protected to stop C++ callers from calling, but invokable from script - /**jsdoc + /*@jsdoc * Starts playing or "injecting" the content of an audio file. The sound is played globally (sent to the audio * mixer) so that everyone hears it, unless the injectorOptions has localOnly set to * true in which case only the client hears the sound played. No sound is played if sent to the audio mixer @@ -192,7 +192,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE ScriptAudioInjector* playSound(SharedSoundPointer sound, const AudioInjectorOptions& injectorOptions = AudioInjectorOptions()); - /**jsdoc + /*@jsdoc * Starts playing the content of an audio file locally (isn't sent to the audio mixer). This is the same as calling * {@link Audio.playSound} with {@link AudioInjector.AudioInjectorOptions} localOnly set true and * the specified position. @@ -203,7 +203,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE ScriptAudioInjector* playSystemSound(SharedSoundPointer sound); - /**jsdoc + /*@jsdoc * Sets whether the audio input should be used in stereo. If the audio input doesn't support stereo then setting a value * of true has no effect. * @function Audio.setStereoInput @@ -211,7 +211,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ Q_INVOKABLE void setStereoInput(bool stereo); - /**jsdoc + /*@jsdoc * Gets whether the audio input is used in stereo. * @function Audio.isStereoInput * @returns {boolean} true if the audio input is used in stereo, otherwise false. @@ -220,7 +220,7 @@ class AudioScriptingInterface : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when the client is muted by the mixer because their loudness value for the noise background has reached the * threshold set for the domain (in the server settings). * @function Audio.mutedByMixer @@ -228,7 +228,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ void mutedByMixer(); - /**jsdoc + /*@jsdoc * Triggered when the client is muted by the mixer because they're within a certain radius (50m) of someone who requested * the mute through Developer > Audio > Mute Environment. * @function Audio.environmentMuted @@ -236,21 +236,21 @@ class AudioScriptingInterface : public QObject, public Dependency { */ void environmentMuted(); - /**jsdoc + /*@jsdoc * Triggered when the client receives its first packet from the audio mixer. * @function Audio.receivedFirstPacket * @returns {Signal} */ void receivedFirstPacket(); - /**jsdoc + /*@jsdoc * Triggered when the client is disconnected from the audio mixer. * @function Audio.disconnected * @returns {Signal} */ void disconnected(); - /**jsdoc + /*@jsdoc * Triggered when the noise gate is opened. The input audio signal is no longer blocked (fully attenuated) because it has * risen above an adaptive threshold set just above the noise floor. Only occurs if Audio.noiseReduction is * true. @@ -259,7 +259,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ void noiseGateOpened(); - /**jsdoc + /*@jsdoc * Triggered when the noise gate is closed. The input audio signal is blocked (fully attenuated) because it has fallen * below an adaptive threshold set just above the noise floor. Only occurs if Audio.noiseReduction is * true. @@ -268,7 +268,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ void noiseGateClosed(); - /**jsdoc + /*@jsdoc * Triggered when a frame of audio input is processed. * @function Audio.inputReceived * @param {Int16Array} inputSamples - The audio input processed. @@ -276,7 +276,7 @@ class AudioScriptingInterface : public QObject, public Dependency { */ void inputReceived(const QByteArray& inputSamples); - /**jsdoc + /*@jsdoc * Triggered when the input audio use changes between mono and stereo. * @function Audio.isStereoInputChanged * @param {boolean} isStereo - true if the input audio is stereo, otherwise false. diff --git a/libraries/script-engine/src/ConsoleScriptingInterface.h b/libraries/script-engine/src/ConsoleScriptingInterface.h index 82fbfc9e410..c86c1d18f81 100644 --- a/libraries/script-engine/src/ConsoleScriptingInterface.h +++ b/libraries/script-engine/src/ConsoleScriptingInterface.h @@ -33,7 +33,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The console API provides program logging facilities. * * @namespace console @@ -49,7 +49,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { Q_OBJECT public: - /**jsdoc + /*@jsdoc * Logs an "INFO" message to the program log and triggers {@link Script.infoMessage}. * The message logged is "INFO -" followed by the message values separated by spaces. * @function console.info @@ -57,7 +57,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer info(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs a message to the program log and triggers {@link Script.printedMessage}. * The message logged is the message values separated by spaces. *

If a {@link console.group} is in effect, the message is indented by an amount proportional to the group level.

@@ -75,7 +75,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer log(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs a message to the program log and triggers {@link Script.printedMessage}. * The message logged is the message values separated by spaces. * @function console.debug @@ -83,7 +83,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer debug(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs a "WARNING" message to the program log and triggers {@link Script.warningMessage}. * The message logged is "WARNING - " followed by the message values separated by spaces. * @function console.warn @@ -91,7 +91,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer warn(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs an "ERROR" message to the program log and triggers {@link Script.errorMessage}. * The message logged is "ERROR - " followed by the message values separated by spaces. * @function console.error @@ -99,7 +99,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer error(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * A synonym of {@link console.error}. * Logs an "ERROR" message to the program log and triggers {@link Script.errorMessage}. * The message logged is "ERROR - " followed by the message values separated by spaces. @@ -108,7 +108,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer exception(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs an "ERROR" message to the program log and triggers {@link Script.errorMessage}, if a test condition fails. * The message logged is "ERROR - Assertion failed : " followed by the message values separated by spaces. *

Note: Script execution continues whether or not the test condition fails.

@@ -131,7 +131,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { // Note: Is registered in the script engine as "assert" static ScriptValuePointer assertion(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Logs a message to the program log and triggers {@link Script.printedMessage}, then starts indenting subsequent * {@link console.log} messages until a {@link console.groupEnd}. Groups may be nested. * @function console.group @@ -159,7 +159,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer group(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Has the same behavior as {@link console.group}. * Logs a message to the program log and triggers {@link Script.printedMessage}, then starts indenting subsequent * {@link console.log} messages until a {@link console.groupEnd}. Groups may be nested. @@ -168,7 +168,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { */ static ScriptValuePointer groupCollapsed(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * Finishes a group of indented {@link console.log} messages. * @function console.groupEnd */ @@ -176,7 +176,7 @@ class ConsoleScriptingInterface : public QObject, protected Scriptable { public slots: - /**jsdoc + /*@jsdoc * Starts a timer, logs a message to the program log, and triggers {@link Script.printedMessage}. The message logged has * the timer name and "Timer started". * @function console.time @@ -199,7 +199,7 @@ public slots: * // MyTimer: 1001ms */ void time(QString labelName); - /**jsdoc + /*@jsdoc * Finishes a timer, logs a message to the program log, and triggers {@link Script.printedMessage}. The message logged has * the timer name and the number of milliseconds since the timer was started. * @function console.timeEnd @@ -207,13 +207,13 @@ public slots: */ void timeEnd(QString labelName); - /**jsdoc + /*@jsdoc * Logs the JavaScript call stack at the point of call to the program log. * @function console.trace */ void trace(); - /**jsdoc + /*@jsdoc * Clears the Developer > Scripting > Script Log debug window. * @function console.clear */ diff --git a/libraries/script-engine/src/FileScriptingInterface.h b/libraries/script-engine/src/FileScriptingInterface.h index ce939214039..4bc73346aca 100644 --- a/libraries/script-engine/src/FileScriptingInterface.h +++ b/libraries/script-engine/src/FileScriptingInterface.h @@ -16,7 +16,7 @@ #include #include -/**jsdoc +/*@jsdoc * The File API provides some facilities for working with the file system. * * @namespace File @@ -36,7 +36,7 @@ class FileScriptingInterface : public QObject { public slots: - /**jsdoc + /*@jsdoc * Extracts a filename from a URL, where the filename is specified in the query part of the URL as filename=. * @function File.convertUrlToPath * @param {string} url - The URL to extract the filename from. @@ -47,7 +47,7 @@ public slots: */ QString convertUrlToPath(QUrl url); - /**jsdoc + /*@jsdoc * Unzips a file in the local file system to a new, unique temporary directory. * @function File.runUnzip * @param {string} path - The path of the zip file in the local file system. May have a leading "file:///". @@ -79,7 +79,7 @@ public slots: */ void runUnzip(QString path, QUrl url, bool autoAdd, bool isZip, bool isBlocks); - /**jsdoc + /*@jsdoc * Creates a new, unique directory for temporary use. * @function File.getTempDir * @returns {string} The path of the newly created temporary directory. @@ -90,7 +90,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when {@link File.runUnzip|runUnzip} completes. * @function File.unzipResult * @param {string} zipFile - The file that was unzipped. diff --git a/libraries/script-engine/src/KeyEvent.cpp b/libraries/script-engine/src/KeyEvent.cpp index 598fd19a355..41fdf4332ac 100644 --- a/libraries/script-engine/src/KeyEvent.cpp +++ b/libraries/script-engine/src/KeyEvent.cpp @@ -151,7 +151,7 @@ KeyEvent::operator QKeySequence() const { return QKeySequence(resultCode); } -/**jsdoc +/*@jsdoc * A keyboard key event. * @typedef {object} KeyEvent * @property {number} key - The Qt keyboard code of the key pressed. For a list of keyboard codes, see diff --git a/libraries/script-engine/src/Mat4.h b/libraries/script-engine/src/Mat4.h index d8004b9b8b0..a5f3888933d 100644 --- a/libraries/script-engine/src/Mat4.h +++ b/libraries/script-engine/src/Mat4.h @@ -21,7 +21,7 @@ #include "RegisteredMetaTypes.h" #include "Scriptable.h" -/**jsdoc +/*@jsdoc * The Mat4 API provides facilities for generating and using 4 x 4 matrices. These matrices are typically used to * represent transforms (scale, rotate, and translate) that convert one coordinate system into another, or perspective * transforms that convert 3D points into screen coordinates. @@ -42,7 +42,7 @@ class Mat4 : public QObject, protected Scriptable { public slots: - /**jsdoc + /*@jsdoc * Multiplies two matrices. * @function Mat4(0).multiply * @param {Mat4} m1 - The first matrix. @@ -52,7 +52,7 @@ public slots: glm::mat4 multiply(const glm::mat4& m1, const glm::mat4& m2) const; - /**jsdoc + /*@jsdoc * Creates a matrix that represents a rotation and translation. * @function Mat4(0).createFromRotAndTrans * @param {Quat} rot - The rotation. @@ -70,7 +70,7 @@ public slots: */ glm::mat4 createFromRotAndTrans(const glm::quat& rot, const glm::vec3& trans) const; - /**jsdoc + /*@jsdoc * Creates a matrix that represents a scale, rotation, and translation. * @function Mat4(0).createFromScaleRotAndTrans * @param {Vec3} scale - The scale. @@ -90,7 +90,7 @@ public slots: */ glm::mat4 createFromScaleRotAndTrans(const glm::vec3& scale, const glm::quat& rot, const glm::vec3& trans) const; - /**jsdoc + /*@jsdoc * Creates a matrix from columns of values. * @function Mat4(0).createFromColumns * @param {Vec4} col0 - Column 0 values. @@ -112,7 +112,7 @@ public slots: */ glm::mat4 createFromColumns(const glm::vec4& col0, const glm::vec4& col1, const glm::vec4& col2, const glm::vec4& col3) const; - /**jsdoc + /*@jsdoc * Creates a matrix from an array of values. * @function Mat4(0).createFromArray * @param {number[]} arr - The array of values, starting with column 0. @@ -134,7 +134,7 @@ public slots: glm::mat4 createFromArray(const QVector& floats) const; - /**jsdoc + /*@jsdoc * Extracts the translation from a matrix. * @function Mat4(0).extractTranslation * @param {Mat4} m - The matrix. @@ -151,7 +151,7 @@ public slots: */ glm::vec3 extractTranslation(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Extracts the rotation from a matrix. * @function Mat4(0).extractRotation * @param {Mat4} m - The matrix. @@ -168,7 +168,7 @@ public slots: */ glm::quat extractRotation(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Extracts the scale from a matrix. * @function Mat4(0).extractScale * @param {Mat4} m - The matrix. @@ -186,7 +186,7 @@ public slots: glm::vec3 extractScale(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Transforms a point into a new coordinate system: the point value is scaled, rotated, and translated. * @function Mat4(0).transformPoint * @param {Mat4} m - The transform to the new coordinate system. @@ -205,7 +205,7 @@ public slots: */ glm::vec3 transformPoint(const glm::mat4& m, const glm::vec3& point) const; - /**jsdoc + /*@jsdoc * Transforms a vector into a new coordinate system: the vector is scaled and rotated. * @function Mat4(0).transformVector * @param {Mat4} m - The transform to the new coordinate system. @@ -225,7 +225,7 @@ public slots: glm::vec3 transformVector(const glm::mat4& m, const glm::vec3& vector) const; - /**jsdoc + /*@jsdoc * Calculates the inverse of a matrix. * @function Mat4(0).inverse * @param {Mat4} m - The matrix. @@ -246,7 +246,7 @@ public slots: glm::mat4 inverse(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Gets the "forward" direction that the camera would face if its orientation was set to the rotation contained in a * matrix. The High Fidelity camera has axes x = right, y = up, -z = forward. *

Synonym for {@link Mat4(0).getForward|getForward}.

@@ -257,7 +257,7 @@ public slots: // redundant, calls getForward which better describes the returned vector as a direction glm::vec3 getFront(const glm::mat4& m) const { return getForward(m); } - /**jsdoc + /*@jsdoc * Gets the "forward" direction that the camera would face if its orientation was set to the rotation contained in a * matrix. The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Mat4(0).getForward @@ -273,7 +273,7 @@ public slots: */ glm::vec3 getForward(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Gets the "right" direction that the camera would have if its orientation was set to the rotation contained in a matrix. * The High Fidelity camera has axes x = right, y = up, -z = forward. * @function Mat4(0).getRight @@ -282,7 +282,7 @@ public slots: */ glm::vec3 getRight(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Gets the "up" direction that the camera would have if its orientation was set to the rotation contained in a matrix. The * High Fidelity camera has axes x = right, y = up, -z = forward. * @function Mat4(0).getUp @@ -292,7 +292,7 @@ public slots: glm::vec3 getUp(const glm::mat4& m) const; - /**jsdoc + /*@jsdoc * Prints a matrix to the program log as a label followed by the matrix's values. * @function Mat4(0).print * @param {string} label - The label to print. diff --git a/libraries/script-engine/src/MenuItemProperties.cpp b/libraries/script-engine/src/MenuItemProperties.cpp index 0d863552461..34d68981ee2 100644 --- a/libraries/script-engine/src/MenuItemProperties.cpp +++ b/libraries/script-engine/src/MenuItemProperties.cpp @@ -53,7 +53,7 @@ ScriptValuePointer menuItemPropertiesToScriptValue(ScriptEngine* engine, const M return obj; } -/**jsdoc +/*@jsdoc * A set of properties that can be passed to {@link Menu.addMenuItem} to create a new menu item. * * If none of the properties, position, beforeItem, afterItem, or grouping diff --git a/libraries/script-engine/src/ModelScriptingInterface.h b/libraries/script-engine/src/ModelScriptingInterface.h index 4ba9f5ff133..c5ed24bab0b 100644 --- a/libraries/script-engine/src/ModelScriptingInterface.h +++ b/libraries/script-engine/src/ModelScriptingInterface.h @@ -22,7 +22,7 @@ class ScriptValue; using ScriptEnginePointer = QSharedPointer; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Model API provides the ability to manipulate meshes. You can get the meshes for an entity using * {@link Entities.getMeshes}, or create a new mesh using {@link Model.newMesh}. *

See also, the {@link Graphics} API.

@@ -43,7 +43,7 @@ class ModelScriptingInterface : public QObject { public: ModelScriptingInterface(QObject* parent); - /**jsdoc + /*@jsdoc * Exports meshes to an OBJ format model. * @function Model.meshToOBJ * @param {MeshProxy[]} meshes - The meshes to export. @@ -51,7 +51,7 @@ class ModelScriptingInterface : public QObject { */ Q_INVOKABLE QString meshToOBJ(MeshProxyList in); - /**jsdoc + /*@jsdoc * Combines multiple meshes into one. * @function Model.appendMeshes * @param {MeshProxy[]} meshes - The meshes to combine. @@ -59,7 +59,7 @@ class ModelScriptingInterface : public QObject { */ Q_INVOKABLE ScriptValuePointer appendMeshes(MeshProxyList in); - /**jsdoc + /*@jsdoc * Transforms the vertices in a mesh. * @function Model.transformMesh * @param {Mat4} transform - The transform to apply. @@ -68,7 +68,7 @@ class ModelScriptingInterface : public QObject { */ Q_INVOKABLE ScriptValuePointer transformMesh(glm::mat4 transform, MeshProxy* meshProxy); - /**jsdoc + /*@jsdoc * Creates a new mesh. * @function Model.newMesh * @param {Vec3[]} vertices - The vertices in the mesh. @@ -80,7 +80,7 @@ class ModelScriptingInterface : public QObject { const QVector& normals, const QVector& faces); - /**jsdoc + /*@jsdoc * Gets the number of vertices in a mesh. * @function Model.getVertexCount * @param {MeshProxy} mesh - The mesh to count the vertices in. @@ -88,7 +88,7 @@ class ModelScriptingInterface : public QObject { */ Q_INVOKABLE ScriptValuePointer getVertexCount(MeshProxy* meshProxy); - /**jsdoc + /*@jsdoc * Gets the position of a vertex in a mesh. * @function Model.getVertex * @param {MeshProxy} mesh - The mesh. diff --git a/libraries/script-engine/src/MouseEvent.cpp b/libraries/script-engine/src/MouseEvent.cpp index 218f675ef5c..b6a3e17c428 100644 --- a/libraries/script-engine/src/MouseEvent.cpp +++ b/libraries/script-engine/src/MouseEvent.cpp @@ -60,7 +60,7 @@ MouseEvent::MouseEvent(const QMouseEvent& event) : } } -/**jsdoc +/*@jsdoc * A controller mouse movement or button event. * @typedef {object} MouseEvent * @property {number} x - Integer x-coordinate of the event on the Interface window or HMD HUD. diff --git a/libraries/script-engine/src/PointerEvent.cpp b/libraries/script-engine/src/PointerEvent.cpp index d5fc771f5f3..487ac295c37 100644 --- a/libraries/script-engine/src/PointerEvent.cpp +++ b/libraries/script-engine/src/PointerEvent.cpp @@ -65,7 +65,7 @@ void PointerEvent::setButton(Button button) { _buttons |= button; } -/**jsdoc +/*@jsdoc * A 2D or 3D mouse or similar pointer event. * @typedef {object} PointerEvent * @property {string} type - The type of event: "Press", "DoublePress", "Release", or @@ -99,7 +99,7 @@ void PointerEvent::setButton(Button button) { * @property {KeyboardModifiers} keyboardModifiers - Integer value with bits set according to which keyboard modifier keys were * pressed when the event was generated. */ -/**jsdoc +/*@jsdoc *

A KeyboardModifiers value is used to specify which modifier keys on the keyboard are pressed. The value is the sum * (bitwise OR) of the relevant combination of values from the following table:

*
diff --git a/libraries/script-engine/src/Quat.h b/libraries/script-engine/src/Quat.h index 2cba09a124a..1dbbd0fbca8 100644 --- a/libraries/script-engine/src/Quat.h +++ b/libraries/script-engine/src/Quat.h @@ -23,7 +23,7 @@ #include "Scriptable.h" -/**jsdoc +/*@jsdoc * A quaternion value. See also the {@link Quat(0)|Quat} API. * @typedef {object} Quat * @property {number} x - Imaginary component i. @@ -32,7 +32,7 @@ * @property {number} w - Real component. */ -/**jsdoc +/*@jsdoc * The Quat API provides facilities for generating and manipulating quaternions. * Quaternions should be used in preference to Euler angles wherever possible because quaternions don't suffer from the problem * of gimbal lock. @@ -60,7 +60,7 @@ class Quat : public QObject, protected Scriptable { public slots: - /**jsdoc + /*@jsdoc * Multiplies two quaternions. * @function Quat(0).multiply * @param {Quat} q1 - The first quaternion. @@ -75,7 +75,7 @@ public slots: */ glm::quat multiply(const glm::quat& q1, const glm::quat& q2); - /**jsdoc + /*@jsdoc * Normalizes a quaternion. * @function Quat(0).normalize * @param {Quat} q - The quaternion to normalize. @@ -91,7 +91,7 @@ public slots: */ glm::quat normalize(const glm::quat& q); - /**jsdoc + /*@jsdoc * Calculates the conjugate of a quaternion. For a unit quaternion, its conjugate is the same as its * {@link Quat(0).inverse|Quat.inverse}. * @function Quat(0).conjugate @@ -107,7 +107,7 @@ public slots: */ glm::quat conjugate(const glm::quat& q); - /**jsdoc + /*@jsdoc * Calculates a camera orientation given an eye position, point of interest, and "up" direction. The camera's negative * z-axis is the forward direction. The result has zero roll about its forward direction with respect to the given "up" * direction. @@ -123,7 +123,7 @@ public slots: */ glm::quat lookAt(const glm::vec3& eye, const glm::vec3& center, const glm::vec3& up); - /**jsdoc + /*@jsdoc * Calculates a camera orientation given an eye position and point of interest. The camera's negative z-axis is the forward * direction. The result has zero roll about its forward direction. * @function Quat(0).lookAtSimple @@ -139,7 +139,7 @@ public slots: */ glm::quat lookAtSimple(const glm::vec3& eye, const glm::vec3& center); - /**jsdoc + /*@jsdoc * Calculates the shortest rotation from a first vector onto a second. * @function Quat(0).rotationBetween * @param {Vec3} v1 - The first vector. @@ -156,7 +156,7 @@ public slots: */ glm::quat rotationBetween(const glm::vec3& v1, const glm::vec3& v2); - /**jsdoc + /*@jsdoc * Generates a quaternion from a {@link Vec3} of Euler angles in degrees. * @function Quat(0).fromVec3Degrees * @param {Vec3} vector - A vector of three Euler angles in degrees, the angles being the rotations about the x, y, and z @@ -170,7 +170,7 @@ public slots: */ glm::quat fromVec3Degrees(const glm::vec3& vec3); - /**jsdoc + /*@jsdoc * Generates a quaternion from a {@link Vec3} of Euler angles in radians. * @function Quat(0).fromVec3Radians * @param {Vec3} vector - A vector of three Euler angles in radians, the angles being the rotations about the x, y, and z @@ -181,7 +181,7 @@ public slots: */ glm::quat fromVec3Radians(const glm::vec3& vec3); - /**jsdoc + /*@jsdoc * Generates a quaternion from pitch, yaw, and roll values in degrees. * @function Quat(0).fromPitchYawRollDegrees * @param {number} pitch - The pitch angle in degrees. @@ -193,7 +193,7 @@ public slots: */ glm::quat fromPitchYawRollDegrees(float pitch, float yaw, float roll); - /**jsdoc + /*@jsdoc * Generates a quaternion from pitch, yaw, and roll values in radians. * @function Quat(0).fromPitchYawRollRadians * @param {number} pitch - The pitch angle in radians. @@ -205,7 +205,7 @@ public slots: */ glm::quat fromPitchYawRollRadians(float pitch, float yaw, float roll); - /**jsdoc + /*@jsdoc * Calculates the inverse of a quaternion. For a unit quaternion, its inverse is the same as its * {@link Quat(0).conjugate|Quat.conjugate}. * @function Quat(0).inverse @@ -221,7 +221,7 @@ public slots: */ glm::quat inverse(const glm::quat& q); - /**jsdoc + /*@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 Vircadia camera has axes x = right, y = up, -z = forward. @@ -231,7 +231,7 @@ public slots: */ glm::vec3 getFront(const glm::quat& orientation) { return getForward(orientation); } - /**jsdoc + /*@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 Vircadia camera has axes x = right, y = up, -z = forward. @@ -244,7 +244,7 @@ public slots: */ glm::vec3 getForward(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Gets the "right" direction that the camera would have if its orientation was set to the quaternion value. * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getRight @@ -253,7 +253,7 @@ public slots: */ glm::vec3 getRight(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Gets the "up" direction that the camera would have if its orientation was set to the quaternion value. * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getUp @@ -262,7 +262,7 @@ public slots: */ glm::vec3 getUp(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Calculates the Euler angles for the quaternion, in degrees. (The "safe" in the name signifies that the angle results * will not be garbage even when the rotation is particularly difficult to decompose with pitches around +/-90 degrees.) * @function Quat(0).safeEulerAngles @@ -275,7 +275,7 @@ public slots: */ glm::vec3 safeEulerAngles(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Generates a quaternion given an angle to rotate through and an axis to rotate about. * @function Quat(0).angleAxis * @param {number} angle - The angle to rotate through, in degrees. @@ -288,7 +288,7 @@ public slots: */ glm::quat angleAxis(float angle, const glm::vec3& v); - /**jsdoc + /*@jsdoc * Gets the rotation axis for a quaternion. * @function Quat(0).axis * @param {Quat} q - The quaternion. @@ -302,7 +302,7 @@ public slots: */ glm::vec3 axis(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Gets the rotation angle for a quaternion. * @function Quat(0).angle * @param {Quat} q - The quaternion. @@ -318,7 +318,7 @@ public slots: // spherical linear interpolation // alpha: 0.0 to 1.0? - /**jsdoc + /*@jsdoc * Computes a spherical linear interpolation between two rotations, safely handling two rotations that are very similar. * See also, {@link Quat(0).slerp|Quat.slerp}. * @function Quat(0).mix @@ -338,7 +338,7 @@ public slots: */ glm::quat mix(const glm::quat& q1, const glm::quat& q2, float alpha); - /**jsdoc + /*@jsdoc * Computes a spherical linear interpolation between two rotations, for rotations that are not very similar. * See also, {@link Quat(0).mix|Quat.mix}. * @function Quat(0).slerp @@ -351,7 +351,7 @@ public slots: */ glm::quat slerp(const glm::quat& q1, const glm::quat& q2, float alpha); - /**jsdoc + /*@jsdoc * Computes a spherical quadrangle interpolation between two rotations along a path oriented toward two other rotations. * Equivalent to: Quat.slerp(Quat.slerp(q1, q2, alpha), Quat.slerp(s1, s2, alpha), 2 * alpha * (1.0 - alpha)). * @function Quat(0).squad @@ -366,7 +366,7 @@ public slots: */ glm::quat squad(const glm::quat& q1, const glm::quat& q2, const glm::quat& s1, const glm::quat& s2, float h); - /**jsdoc + /*@jsdoc * Calculates the dot product of two quaternions. The closer the quaternions are to each other the more non-zero the value * is (either positive or negative). Identical unit rotations have a dot product of +/-1. * @function Quat(0).dot @@ -387,7 +387,7 @@ public slots: */ float dot(const glm::quat& q1, const glm::quat& q2); - /**jsdoc + /*@jsdoc * Prints to the program log a text label followed by a quaternion's pitch, yaw, and roll Euler angles. * @function Quat(0).print * @param {string} label - The label to print. @@ -405,7 +405,7 @@ public slots: */ void print(const QString& label, const glm::quat& q, bool asDegrees = false); - /**jsdoc + /*@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.

@@ -427,7 +427,7 @@ public slots: */ bool equal(const glm::quat& q1, const glm::quat& q2); - /**jsdoc + /*@jsdoc * Cancels out the roll and pitch component of a quaternion so that its completely horizontal with a yaw pointing in the * given quaternion's direction. * @function Quat(0).cancelOutRollAndPitch @@ -447,7 +447,7 @@ public slots: */ glm::quat cancelOutRollAndPitch(const glm::quat& q); - /**jsdoc + /*@jsdoc * Cancels out the roll component of a quaternion so that its horizontal axis is level. * @function Quat(0).cancelOutRoll * @param {Quat} orientation - A quaternion representing an orientation. diff --git a/libraries/script-engine/src/RecordingScriptingInterface.h b/libraries/script-engine/src/RecordingScriptingInterface.h index 457623576a0..a294e4c174d 100644 --- a/libraries/script-engine/src/RecordingScriptingInterface.h +++ b/libraries/script-engine/src/RecordingScriptingInterface.h @@ -23,7 +23,7 @@ class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * The Recording API makes and plays back recordings of voice and avatar movements. Playback may be done on a * user's avatar or an assignment client agent (see the {@link Agent} API). * @@ -42,14 +42,14 @@ class RecordingScriptingInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Called when a {@link Recording.loadRecording} call is complete. * @callback Recording~loadRecordingCallback * @param {boolean} success - true if the recording has successfully been loaded, false if it * hasn't. * @param {string} url - The URL of the recording that was requested to be loaded. */ - /**jsdoc + /*@jsdoc * Loads a recording so that it is ready for playing. * @function Recording.loadRecording * @param {string} url - The ATP, HTTP, or file system URL of the recording to load. @@ -71,33 +71,33 @@ public slots: void loadRecording(const QString& url, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Starts playing the recording currently loaded or paused. * @function Recording.startPlaying */ void startPlaying(); - /**jsdoc + /*@jsdoc * Pauses playback of the recording currently playing. Use {@link Recording.startPlaying|startPlaying} to resume playback * or {@link Recording.stopPlaying|stopPlaying} to stop playback. * @function Recording.pausePlayer */ void pausePlayer(); - /**jsdoc + /*@jsdoc * Stops playing the recording currently playing or paused. * @function Recording.stopPlaying */ void stopPlaying(); - /**jsdoc + /*@jsdoc * Gets whether a recording is currently playing. * @function Recording.isPlaying * @returns {boolean} true if a recording is being played, false if one isn't. */ bool isPlaying() const; - /**jsdoc + /*@jsdoc * Gets whether recording playback is currently paused. * @function Recording.isPaused * @returns {boolean} true if recording playback is currently paused, false if it isn't. @@ -105,14 +105,14 @@ public slots: bool isPaused() const; - /**jsdoc + /*@jsdoc * Gets the current playback time in the loaded recording, in seconds. * @function Recording.playerElapsed * @returns {number} The current playback time in the loaded recording, in seconds. */ float playerElapsed() const; - /**jsdoc + /*@jsdoc * Gets the length of the loaded recording, in seconds. * @function Recording.playerLength * @returns {number} The length of the recording currently loaded, in seconds @@ -120,28 +120,28 @@ public slots: float playerLength() const; - /**jsdoc + /*@jsdoc * Sets the playback audio volume. * @function Recording.setPlayerVolume * @param {number} volume - The playback audio volume, range 0.01.0. */ void setPlayerVolume(float volume); - /**jsdoc + /*@jsdoc *

Not implemented: This method is not implemented yet.

* @function Recording.setPlayerAudioOffset * @param {number} audioOffset - Audio offset. */ void setPlayerAudioOffset(float audioOffset); - /**jsdoc + /*@jsdoc * Sets the current playback time in the loaded recording. * @function Recording.setPlayerTime * @param {number} time - The current playback time, in seconds. */ void setPlayerTime(float time); - /**jsdoc + /*@jsdoc * Sets whether playback should repeat in a loop. * @function Recording.setPlayerLoop * @param {boolean} loop - true if playback should repeat, false if it shouldn't. @@ -149,7 +149,7 @@ public slots: void setPlayerLoop(bool loop); - /**jsdoc + /*@jsdoc * Sets whether recording playback will use the display name that the recording was made with. * @function Recording.setPlayerUseDisplayName * @param {boolean} useDisplayName - true to have recording playback use the display name that the recording @@ -157,7 +157,7 @@ public slots: */ void setPlayerUseDisplayName(bool useDisplayName); - /**jsdoc + /*@jsdoc *

Not used.

* @function Recording.setPlayerUseAttachments * @param {boolean} useAttachments - Use attachments. @@ -165,7 +165,7 @@ public slots: */ void setPlayerUseAttachments(bool useAttachments); - /**jsdoc + /*@jsdoc *

Not used.

* @function Recording.setPlayerUseHeadModel * @param {boolean} useHeadModel - Use head model. @@ -173,7 +173,7 @@ public slots: */ void setPlayerUseHeadModel(bool useHeadModel); - /**jsdoc + /*@jsdoc * Sets whether recording playback will use the avatar model that the recording was made with. * @function Recording.setPlayerUseSkeletonModel * @param {boolean} useSkeletonModel - true to have recording playback use the avatar model that the recording @@ -181,7 +181,7 @@ public slots: */ void setPlayerUseSkeletonModel(bool useSkeletonModel); - /**jsdoc + /*@jsdoc * Sets whether recordings are played at the current avatar location or the recorded location. * @function Recording.setPlayFromCurrentLocation * @param {boolean} playFromCurrentLocation - true to play recordings at the current avatar location, @@ -190,7 +190,7 @@ public slots: void setPlayFromCurrentLocation(bool playFromCurrentLocation); - /**jsdoc + /*@jsdoc * Gets whether recording playback will use the display name that the recording was made with. * @function Recording.getPlayerUseDisplayName * @returns {boolean} true if recording playback will use the display name that the recording was made with, @@ -198,7 +198,7 @@ public slots: */ bool getPlayerUseDisplayName() { return _useDisplayName; } - /**jsdoc + /*@jsdoc *

Not used.

* @function Recording.getPlayerUseAttachments * @returns {boolean} Use attachments. @@ -206,7 +206,7 @@ public slots: */ bool getPlayerUseAttachments() { return _useAttachments; } - /**jsdoc + /*@jsdoc *

Not used.

* @function Recording.getPlayerUseHeadModel * @returns {boolean} Use head model. @@ -214,7 +214,7 @@ public slots: */ bool getPlayerUseHeadModel() { return _useHeadModel; } - /**jsdoc + /*@jsdoc * Gets whether recording playback will use the avatar model that the recording was made with. * @function Recording.getPlayerUseSkeletonModel * @returns {boolean} true if recording playback will use the avatar model that the recording was made with, @@ -222,7 +222,7 @@ public slots: */ bool getPlayerUseSkeletonModel() { return _useSkeletonModel; } - /**jsdoc + /*@jsdoc * Gets whether recordings are played at the current avatar location or the recorded location. * @function Recording.getPlayFromCurrentLocation * @returns {boolean} true if recordings are played at the current avatar location, false if @@ -231,13 +231,13 @@ public slots: bool getPlayFromCurrentLocation() { return _playFromCurrentLocation; } - /**jsdoc + /*@jsdoc * Starts making a recording. * @function Recording.startRecording */ void startRecording(); - /**jsdoc + /*@jsdoc * Stops making a recording. The recording may be saved using {@link Recording.saveRecording|saveRecording} or * {@link Recording.saveRecordingToAsset|saveRecordingToAsset}, or immediately played back with * {@link Recording.loadLastRecording|loadLastRecording}. @@ -245,7 +245,7 @@ public slots: */ void stopRecording(); - /**jsdoc + /*@jsdoc * Gets whether a recording is currently being made. * @function Recording.isRecording * @returns {boolean} true if a recording is currently being made, false if one isn't. @@ -253,7 +253,7 @@ public slots: bool isRecording() const; - /**jsdoc + /*@jsdoc * Gets the duration of the recording currently being made or recently made, in seconds. * @function Recording.recorderElapsed * @returns {number} The duration of the recording currently being made or recently made, in seconds. @@ -261,7 +261,7 @@ public slots: float recorderElapsed() const; - /**jsdoc + /*@jsdoc * Gets the default directory that recordings are saved in. * @function Recording.getDefaultRecordingSaveDirectory * @returns {string} The default recording save directory. @@ -270,7 +270,7 @@ public slots: */ QString getDefaultRecordingSaveDirectory(); - /**jsdoc + /*@jsdoc * Saves the most recently made recording to a file. * @function Recording.saveRecording * @param {string} filename - The path and name of the file to save the recording to. @@ -289,13 +289,13 @@ public slots: */ void saveRecording(const QString& filename); - /**jsdoc + /*@jsdoc * Called when a {@link Recording.saveRecordingToAsset} call is complete. * @callback Recording~saveRecordingToAssetCallback * @param {string} url - The URL of the recording stored in the asset server if successful, "" if * unsuccessful. The URL has atp: as the scheme and the SHA256 hash as the filename (with no extension). */ - /**jsdoc + /*@jsdoc * Saves the most recently made recording to the domain's asset server. * @function Recording.saveRecordingToAsset * @param {Recording~saveRecordingToAssetCallback} callback - The function to call upon completion. @@ -334,7 +334,7 @@ public slots: */ bool saveRecordingToAsset(ScriptValuePointer getClipAtpUrl); - /**jsdoc + /*@jsdoc * Loads the most recently made recording and plays it back on your avatar. * @function Recording.loadLastRecording * @example
diff --git a/libraries/script-engine/src/SceneScriptingInterface.h b/libraries/script-engine/src/SceneScriptingInterface.h index e232eb4de43..07ff025573e 100644 --- a/libraries/script-engine/src/SceneScriptingInterface.h +++ b/libraries/script-engine/src/SceneScriptingInterface.h @@ -14,7 +14,7 @@ #include -/**jsdoc +/*@jsdoc * The Scene API provides some control over what is rendered. * * @namespace Scene @@ -41,7 +41,7 @@ class SceneScriptingInterface : public QObject, public Dependency { signals: - /**jsdoc + /*@jsdoc * Triggered when whether or not avatars are rendered changes. * @function Scene.shouldRenderAvatarsChanged * @param {boolean} shouldRenderAvatars - true if avatars are rendered, false if they aren't. @@ -53,7 +53,7 @@ class SceneScriptingInterface : public QObject, public Dependency { */ void shouldRenderAvatarsChanged(bool shouldRenderAvatars); - /**jsdoc + /*@jsdoc * Triggered when whether or not entities are rendered changes. * @function Scene.shouldRenderEntitiesChanged * @param {boolean} shouldRenderEntities - true if entities (domain, avatar, and local) are rendered, diff --git a/libraries/script-engine/src/ScriptAudioInjector.h b/libraries/script-engine/src/ScriptAudioInjector.h index 48e3f5c912e..2ae2cfc35ed 100644 --- a/libraries/script-engine/src/ScriptAudioInjector.h +++ b/libraries/script-engine/src/ScriptAudioInjector.h @@ -21,7 +21,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * Plays or "injects" the content of an audio file. * *

Create using {@link Audio} API methods.

@@ -51,13 +51,13 @@ class ScriptAudioInjector : public QObject { ~ScriptAudioInjector(); public slots: - /**jsdoc + /*@jsdoc * Stops current playback, if any, and starts playing from the beginning. * @function AudioInjector.restart */ void restart() { DependencyManager::get()->restart(_injector); } - /**jsdoc + /*@jsdoc * Stops audio playback. * @function AudioInjector.stop * @example
@@ -77,28 +77,28 @@ public slots: */ void stop() { DependencyManager::get()->stop(_injector); } - /**jsdoc + /*@jsdoc * Gets the current configuration of the audio injector. * @function AudioInjector.getOptions * @returns {AudioInjector.AudioInjectorOptions} Configuration of how the injector plays the audio. */ AudioInjectorOptions getOptions() const { return DependencyManager::get()->getOptions(_injector); } - /**jsdoc + /*@jsdoc * Configures how the injector plays the audio. * @function AudioInjector.setOptions * @param {AudioInjector.AudioInjectorOptions} options - Configuration of how the injector plays the audio. */ void setOptions(const AudioInjectorOptions& options) { DependencyManager::get()->setOptions(_injector, options); } - /**jsdoc + /*@jsdoc * Gets the loudness of the most recent frame of audio played. * @function AudioInjector.getLoudness * @returns {number} The loudness of the most recent frame of audio played, range 0.01.0. */ float getLoudness() const { return DependencyManager::get()->getLoudness(_injector); } - /**jsdoc + /*@jsdoc * Gets whether or not the audio is currently playing. * @function AudioInjector.isPlaying * @returns {boolean} true if the audio is currently playing, otherwise false. @@ -121,7 +121,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when the audio has finished playing. * @function AudioInjector.finished * @returns {Signal} diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 3ccdbaaf546..4dc9aad648e 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -195,7 +195,7 @@ void ScriptEngines::shutdownScripting() { qCDebug(scriptengine) << "DONE Stopping all scripts...."; } -/**jsdoc +/*@jsdoc * Information on a public script, i.e., a script that's included in the Interface installation. * @typedef {object} ScriptDiscoveryService.PublicScript * @property {string} name - The script's file name. @@ -238,7 +238,7 @@ QVariantList ScriptEngines::getPublic() { return getPublicChildNodes(NULL); } -/**jsdoc +/*@jsdoc * Information on a local script. * @typedef {object} ScriptDiscoveryService.LocalScript * @property {string} name - The script's file name. @@ -265,7 +265,7 @@ QVariantList ScriptEngines::getLocal() { return result; } -/**jsdoc +/*@jsdoc * Information on a running script. * @typedef {object} ScriptDiscoveryService.RunningScript * @property {boolean} local - true if the script is a local file (i.e., the scheme is "file"), false diff --git a/libraries/script-engine/src/ScriptEngines.h b/libraries/script-engine/src/ScriptEngines.h index eca37cd3580..2d7d96f62d4 100644 --- a/libraries/script-engine/src/ScriptEngines.h +++ b/libraries/script-engine/src/ScriptEngines.h @@ -28,7 +28,7 @@ #include "ScriptsModelFilter.h" #include "ScriptGatekeeper.h" -/**jsdoc +/*@jsdoc * The ScriptDiscoveryService API provides facilities to work with Interface scripts. * * @namespace ScriptDiscoveryService @@ -78,7 +78,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize QString getDefaultScriptsLocation() const; - /**jsdoc + /*@jsdoc * Starts running an Interface script, if it isn't already running. The script is automatically loaded next time Interface * starts. *

This is a synonym for calling {@link ScriptDiscoveryService.loadScript|loadScript} with just the script URL.

@@ -90,7 +90,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ Q_INVOKABLE void loadOneScript(const QString& scriptFilename); - /**jsdoc + /*@jsdoc * Starts running an Interface script, if it isn't already running. *

Supported Script Types: Interface Scripts • Avatar Scripts

*

See also, {@link Script.load}.

@@ -110,7 +110,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize Q_INVOKABLE ScriptManagerPointer loadScript(const QUrl& scriptFilename = QString(), bool isUserLoaded = true, bool loadScriptFromEditor = false, bool activateMainWindow = false, bool reload = false, bool quitWhenFinished = false); - /**jsdoc + /*@jsdoc * Stops or restarts an Interface script. * @function ScriptDiscoveryService.stopScript * @param {string} url - The path and name of the script. If a local file, including the "file:///" scheme is @@ -123,13 +123,13 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize Q_INVOKABLE bool stopScript(const QString& scriptHash, bool restart = false); - /**jsdoc + /*@jsdoc * Restarts all Interface, avatar, and client entity scripts after clearing the scripts cache. * @function ScriptDiscoveryService.reloadAllScripts */ Q_INVOKABLE void reloadAllScripts(); - /**jsdoc + /*@jsdoc * Stops or restarts all Interface scripts. The scripts cache is not cleared. If restarting, avatar and client entity * scripts are also restarted. * @function ScriptDiscoveryService.stopAllScripts @@ -138,7 +138,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize Q_INVOKABLE void stopAllScripts(bool restart = false); - /**jsdoc + /*@jsdoc * Gets a list of all Interface scripts that are currently running. * @function ScriptDiscoveryService.getRunning * @returns {ScriptDiscoveryService.RunningScript[]} All Interface scripts that are currently running. @@ -151,7 +151,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ Q_INVOKABLE QVariantList getRunning(); - /**jsdoc + /*@jsdoc * Gets a list of all script files that are in the default scripts directory of the Interface installation. * @function ScriptDiscoveryService.getPublic * @returns {ScriptDiscoveryService.PublicScript[]} All scripts in the "scripts" directory of the Interface @@ -159,7 +159,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ Q_INVOKABLE QVariantList getPublic(); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.getLocal * @returns {ScriptDiscoveryService.LocalScript[]} Local scripts. * @deprecated This function is deprecated and will be removed. @@ -182,7 +182,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize signals: - /**jsdoc + /*@jsdoc * Triggered when the number of Interface scripts running changes. * @function ScriptDiscoveryService.scriptCountChanged * @returns {Signal} @@ -193,7 +193,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void scriptCountChanged(); - /**jsdoc + /*@jsdoc * Triggered when Interface, avatar, and client entity scripts are restarting as a result of * {@link ScriptDiscoveryService.reloadAllScripts|reloadAllScripts} or * {@link ScriptDiscoveryService.stopAllScripts|stopAllScripts}. @@ -202,7 +202,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void scriptsReloading(); - /**jsdoc + /*@jsdoc * Triggered when a script could not be loaded. * @function ScriptDiscoveryService.scriptLoadError * @param {string} url - The path and name of the script that could not be loaded. @@ -211,7 +211,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void scriptLoadError(const QString& filename, const QString& error); - /**jsdoc + /*@jsdoc * Triggered when any script prints a message to the program log via {@link print}, {@link Script.print}, * {@link console.log}, or {@link console.debug}. * @function ScriptDiscoveryService.printedMessage @@ -221,7 +221,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void printedMessage(const QString& message, const QString& engineName); - /**jsdoc + /*@jsdoc * Triggered when any script generates an error or {@link console.error} is called. * @function ScriptDiscoveryService.errorMessage * @param {string} message - The error message. @@ -230,7 +230,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void errorMessage(const QString& message, const QString& engineName); - /**jsdoc + /*@jsdoc * Triggered when any script generates a warning or {@link console.warn} is called. * @function ScriptDiscoveryService.warningMessage * @param {string} message - The warning message. @@ -239,7 +239,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void warningMessage(const QString& message, const QString& engineName); - /**jsdoc + /*@jsdoc * Triggered when any script generates an information message or {@link console.info} is called. * @function ScriptDiscoveryService.infoMessage * @param {string} message - The information message. @@ -248,7 +248,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize */ void infoMessage(const QString& message, const QString& engineName); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.errorLoadingScript * @param {string} url - URL. * @returns {Signal} @@ -257,7 +257,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize // Deprecated because never emitted. void errorLoadingScript(const QString& url); - /**jsdoc + /*@jsdoc * Triggered when the Debug Window is cleared. * @function ScriptDiscoveryService.clearDebugWindow * @returns {Signal} @@ -266,7 +266,7 @@ class ScriptEngines : public QObject, public Dependency, public ScriptInitialize public slots: - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onPrintedMessage * @param {string} message - Message. * @param {string} scriptName - Script name. @@ -275,7 +275,7 @@ public slots: // Deprecated because only use is to emit a signal. void onPrintedMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onErrorMessage * @param {string} message - Message. * @param {string} scriptName - Script name. @@ -284,7 +284,7 @@ public slots: // Deprecated because only use is to emit a signal. void onErrorMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onWarningMessage * @param {string} message - Message. * @param {string} scriptName - Script name. @@ -293,7 +293,7 @@ public slots: // Deprecated because only use is to emit a signal. void onWarningMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onInfoMessage * @param {string} message - Message. * @param {string} scriptName - Script name. @@ -302,7 +302,7 @@ public slots: // Deprecated because only use is to emit a signal. void onInfoMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onErrorLoadingScript * @param {string} url - URL. * @deprecated This function is deprecated and will be removed. @@ -310,7 +310,7 @@ public slots: // Deprecated because only use is to emit a signal. And it isn't used. void onErrorLoadingScript(const QString& url); - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onClearDebugWindow * @deprecated This function is deprecated and will be removed. */ @@ -319,7 +319,7 @@ public slots: protected slots: - /**jsdoc + /*@jsdoc * @function ScriptDiscoveryService.onScriptFinished * @param {string} scriptName - Script name. * @param {object} manager - Script manager. diff --git a/libraries/script-engine/src/ScriptManager.cpp b/libraries/script-engine/src/ScriptManager.cpp index 24474e9fb38..a0f7fe9ee3a 100644 --- a/libraries/script-engine/src/ScriptManager.cpp +++ b/libraries/script-engine/src/ScriptManager.cpp @@ -672,7 +672,7 @@ static void scriptableResourceFromScriptValue(const ScriptValuePointer& value, S resource = static_cast(value->toQObject()); } -/**jsdoc +/*@jsdoc * The Resource API provides values that define the possible loading states of a resource. * * @namespace Resource @@ -796,7 +796,7 @@ void ScriptManager::init() { ScriptValuePointer webSocketConstructorValue = scriptEngine->newFunction(WebSocketClass::constructor); scriptEngine->globalObject()->setProperty("WebSocket", webSocketConstructorValue); - /**jsdoc + /*@jsdoc * Prints a message to the program log and emits {@link Script.printedMessage}. * The message logged is the message values separated by spaces. *

Alternatively, you can use {@link Script.print} or one of the {@link console} API methods.

@@ -956,7 +956,7 @@ void ScriptManager::addEventHandler(const EntityItemID& entityID, const QString& // Two common cases of event handler, differing only in argument signature. - /**jsdoc + /*@jsdoc * Called when an entity event occurs on an entity as registered with {@link Script.addEventHandler}. * @callback Script~entityEventCallback * @param {Uuid} entityID - The ID of the entity the event has occured on. @@ -968,7 +968,7 @@ void ScriptManager::addEventHandler(const EntityItemID& entityID, const QString& }; }; - /**jsdoc + /*@jsdoc * Called when a pointer event occurs on an entity as registered with {@link Script.addEventHandler}. * @callback Script~pointerEventCallback * @param {Uuid} entityID - The ID of the entity the event has occurred on. @@ -983,7 +983,7 @@ void ScriptManager::addEventHandler(const EntityItemID& entityID, const QString& }; }; - /**jsdoc + /*@jsdoc * Called when a collision event occurs on an entity as registered with {@link Script.addEventHandler}. * @callback Script~collisionEventCallback * @param {Uuid} entityA - The ID of one entity in the collision. @@ -998,7 +998,7 @@ void ScriptManager::addEventHandler(const EntityItemID& entityID, const QString& }; }; - /**jsdoc + /*@jsdoc *

The name of an entity event. When the entity event occurs, any function that has been registered for that event * via {@link Script.addEventHandler} is called with parameters per the entity event.

*
Make a 5 second recording and immediately play it back on your avatar.Stop playing a sound before it finishes.
@@ -2156,7 +2156,7 @@ void ScriptManager::loadEntityScript(const EntityItemID& entityID, const QString }, forceRedownload); } -/**jsdoc +/*@jsdoc * Triggered when the script starts for a user. See also, {@link Script.entityScriptPreloadFinished}. *

Note: Can only be connected to via this.preload = function (...) { ... } in the entity script.

*

Supported Script Types: Client Entity Scripts • Server Entity Scripts

@@ -2443,7 +2443,7 @@ void ScriptManager::entityScriptContentAvailable(const EntityItemID& entityID, c emit entityScriptPreloadFinished(entityID); } -/**jsdoc +/*@jsdoc * Triggered when the script terminates for a user. *

Note: Can only be connected to via this.unoad = function () { ... } in the entity script.

*

Supported Script Types: Client Entity Scripts • Server Entity Scripts

diff --git a/libraries/script-engine/src/ScriptManager.h b/libraries/script-engine/src/ScriptManager.h index ba4e15f6338..3fd77800d3f 100644 --- a/libraries/script-engine/src/ScriptManager.h +++ b/libraries/script-engine/src/ScriptManager.h @@ -104,7 +104,7 @@ class EntityScriptDetails { QUrl definingSandboxURL { QUrl("about:EntityScript") }; }; -/**jsdoc +/*@jsdoc * The Script API provides facilities for working with scripts. * * @namespace Script @@ -181,7 +181,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi QList getListOfEntityScriptIDs(); - /**jsdoc + /*@jsdoc * Stops and unloads the current script. *

Warning: If an assignment client script, the script gets restarted after stopping.

* @function Script.stop @@ -213,7 +213,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi void loadURL(const QUrl& scriptURL, bool reload); bool hasValidScriptSuffix(const QString& scriptFileName); - /**jsdoc + /*@jsdoc * Gets the context that the script is running in: Interface/avatar, client entity, server entity, or assignment client. * @function Script.getContext * @returns {string} The context that the script is running in: @@ -226,7 +226,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE QString getContext() const; - /**jsdoc + /*@jsdoc * Checks whether the script is running as an Interface or avatar script. * @function Script.isClientScript * @returns {boolean} true if the script is running as an Interface or avatar script, false if it @@ -234,7 +234,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE bool isClientScript() const { return _context == CLIENT_SCRIPT; } - /**jsdoc + /*@jsdoc * Checks whether the application was compiled as a debug build. * @function Script.isDebugMode * @returns {boolean} true if the application was compiled as a debug build, false if it was @@ -242,21 +242,21 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE bool isDebugMode() const; - /**jsdoc + /*@jsdoc * Checks whether the script is running as a client entity script. * @function Script.isEntityClientScript * @returns {boolean} true if the script is running as a client entity script, false if it isn't. */ Q_INVOKABLE bool isEntityClientScript() const { return _context == ENTITY_CLIENT_SCRIPT; } - /**jsdoc + /*@jsdoc * Checks whether the script is running as a server entity script. * @function Script.isEntityServerScript * @returns {boolean} true if the script is running as a server entity script, false if it isn't. */ Q_INVOKABLE bool isEntityServerScript() const { return _context == ENTITY_SERVER_SCRIPT; } - /**jsdoc + /*@jsdoc * Checks whether the script is running as an assignment client script. * @function Script.isAgentScript * @returns {boolean} true if the script is running as an assignment client script, false if it @@ -267,7 +267,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // NOTE - these are intended to be public interfaces available to scripts - /**jsdoc + /*@jsdoc * @function Script.formatExecption * @param {object} exception - Exception. * @param {boolean} inludeExtendeDetails - Include extended details. @@ -276,7 +276,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE QString formatException(const ScriptValuePointer& exception, bool includeExtendedDetails); - /**jsdoc + /*@jsdoc * Adds a function to the list of functions called when a particular event occurs on a particular entity. *

See also, the {@link Entities} API.

* @function Script.addEventHandler @@ -300,7 +300,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void addEventHandler(const EntityItemID& entityID, const QString& eventName, ScriptValuePointer handler); - /**jsdoc + /*@jsdoc * Removes a function from the list of functions called when an entity event occurs on a particular entity. *

See also, the {@link Entities} API.

* @function Script.removeEventHandler @@ -310,7 +310,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void removeEventHandler(const EntityItemID& entityID, const QString& eventName, ScriptValuePointer handler); - /**jsdoc + /*@jsdoc * Starts running another script in Interface, if it isn't already running. The script is not automatically loaded next * time Interface starts. *

Supported Script Types: Interface Scripts • Avatar Scripts

@@ -332,7 +332,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void load(const QString& loadfile); - /**jsdoc + /*@jsdoc * Includes JavaScript from other files in the current script. If a callback is specified, the files are loaded and * included asynchronously, otherwise they are included synchronously (i.e., script execution blocks while the files are * included). @@ -344,7 +344,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void include(const QStringList& includeFiles, ScriptValuePointer callback = ScriptValuePointer()); - /**jsdoc + /*@jsdoc * Includes JavaScript from another file in the current script. If a callback is specified, the file is loaded and included * asynchronously, otherwise it is included synchronously (i.e., script execution blocks while the file is included). * @function Script.include @@ -372,7 +372,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // MODULE related methods - /**jsdoc + /*@jsdoc * Provides access to methods or objects provided in an external JavaScript or JSON file. * See {@link https://docs.vircadia.dev/script/js-tips.html} for further details. * @function Script.require @@ -383,7 +383,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE ScriptValuePointer require(const QString& moduleId); - /**jsdoc + /*@jsdoc * @function Script.resetModuleCache * @param {boolean} [deleteScriptCache=false] - Delete script cache. * @deprecated This function is deprecated and will be removed. @@ -398,7 +398,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi Q_INVOKABLE ScriptValuePointer evaluate(const QString& program, const QString& fileName = QString()); - /**jsdoc + /*@jsdoc * Calls a function repeatedly, at a set interval. * @function Script.setInterval * @param {function} function - The function to call. This can be either the name of a function or an in-line definition. @@ -411,7 +411,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE QObject* setInterval(const ScriptValuePointer& function, int intervalMS); - /**jsdoc + /*@jsdoc * Calls a function once, after a delay. * @function Script.setTimeout * @param {function} function - The function to call. This can be either the name of a function or an in-line definition. @@ -424,7 +424,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE QObject* setTimeout(const ScriptValuePointer& function, int timeoutMS); - /**jsdoc + /*@jsdoc * Stops an interval timer set by {@link Script.setInterval|setInterval}. * @function Script.clearInterval * @param {object} timer - The interval timer to stop. @@ -442,7 +442,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void clearInterval(QObject* timer) { stopTimer(reinterpret_cast(timer)); } - /**jsdoc + /*@jsdoc * Stops a timeout timer set by {@link Script.setTimeout|setTimeout}. * @function Script.clearTimeout * @param {object} timer - The timeout timer to stop. @@ -457,7 +457,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void clearTimeout(QObject* timer) { stopTimer(reinterpret_cast(timer)); } - /**jsdoc + /*@jsdoc * Prints a message to the program log and emits {@link Script.printedMessage}. *

Alternatively, you can use {@link print} or one of the {@link console} API methods.

* @function Script.print @@ -465,7 +465,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void print(const QString& message); - /**jsdoc + /*@jsdoc * Resolves a relative path to an absolute path. The relative path is relative to the script's location. * @function Script.resolvePath * @param {string} path - The relative path to resolve. @@ -479,14 +479,14 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE QUrl resolvePath(const QString& path) const; - /**jsdoc + /*@jsdoc * Gets the path to the resources directory for QML files. * @function Script.resourcesPath * @returns {string} The path to the resources directory for QML files. */ Q_INVOKABLE QUrl resourcesPath() const; - /**jsdoc + /*@jsdoc * Starts timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of the * standard scripts. * @function Script.beginProfileRange @@ -494,7 +494,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void beginProfileRange(const QString& label) const; - /**jsdoc + /*@jsdoc * Finishes timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of * the standard scripts. * @function Script.endProfileRange @@ -505,7 +505,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Entity Script Related methods - /**jsdoc + /*@jsdoc * Checks whether an entity has an entity script running. * @function Script.isEntityScriptRunning * @param {Uuid} entityID - The ID of the entity. @@ -519,7 +519,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi QVariant cloneEntityScriptDetails(const EntityItemID& entityID); QFuture getLocalEntityScriptDetails(const EntityItemID& entityID) override; - /**jsdoc + /*@jsdoc * @function Script.loadEntityScript * @param {Uuid} entityID - Entity ID. * @param {string} script - Script. @@ -528,7 +528,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void loadEntityScript(const EntityItemID& entityID, const QString& entityScript, bool forceRedownload); - /**jsdoc + /*@jsdoc * @function Script.unloadEntityScript * @param {Uuid} entityID - Entity ID. * @param {boolean} [shouldRemoveFromMap=false] - Should remove from map. @@ -536,14 +536,14 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void unloadEntityScript(const EntityItemID& entityID, bool shouldRemoveFromMap = false); // will call unload method - /**jsdoc + /*@jsdoc * @function Script.unloadAllEntityScripts * @param {boolean} [blockingCall=false] - Wait for completion if call moved to another thread. * @deprecated This function is deprecated and will be removed. */ Q_INVOKABLE void unloadAllEntityScripts(bool blockingCall = false); - /**jsdoc + /*@jsdoc * Calls a method in an entity script. * @function Script.callEntityScriptMethod * @param {Uuid} entityID - The ID of the entity running the entity script. @@ -555,7 +555,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi const QStringList& params = QStringList(), const QUuid& remoteCallerID = QUuid()) override; - /**jsdoc + /*@jsdoc * Calls a method in an entity script. * @function Script.callEntityScriptMethod * @param {Uuid} entityID - Entity ID. @@ -565,7 +565,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void callEntityScriptMethod(const EntityItemID& entityID, const QString& methodName, const PointerEvent& event); - /**jsdoc + /*@jsdoc * Calls a method in an entity script. * @function Script.callEntityScriptMethod * @param {Uuid} entityID - Entity ID. @@ -576,7 +576,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi */ Q_INVOKABLE void callEntityScriptMethod(const EntityItemID& entityID, const QString& methodName, const EntityItemID& otherID, const Collision& collision); - /**jsdoc + /*@jsdoc * @function Script.generateUUID * @returns {Uuid} A new UUID. * @deprecated This function is deprecated and will be removed. Use {@link Uuid(0).generate|Uuid.generate} instead. @@ -619,7 +619,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi void setScriptEngines(QSharedPointer& scriptEngines) { _scriptEngines = scriptEngines; } - /**jsdoc + /*@jsdoc * Gets the URL for an asset in an external resource bucket. (The location where the bucket is hosted may change over time * but this method will return the asset's current URL.) * @function Script.getExternalPath @@ -638,7 +638,7 @@ class ScriptManager : public QObject, public EntitiesScriptEngineProvider, publi public slots: - /**jsdoc + /*@jsdoc * @function Script.callAnimationStateHandler * @param {function} callback - Callback function. * @param {object} parameters - Parameters. @@ -649,7 +649,7 @@ public slots: */ void callAnimationStateHandler(ScriptValuePointer callback, AnimVariantMap parameters, QStringList names, bool useNames, AnimVariantResultHandler resultHandler); - /**jsdoc + /*@jsdoc * @function Script.updateMemoryCost * @param {number} deltaSize - Delta size. * @deprecated This function is deprecated and will be removed. @@ -658,7 +658,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * @function Script.scriptLoaded * @param {string} filename - File name. * @returns {Signal} @@ -666,7 +666,7 @@ public slots: */ void scriptLoaded(const QString& scriptFilename); - /**jsdoc + /*@jsdoc * @function Script.errorLoadingScript * @param {string} filename - File name. * @returns {Signal} @@ -674,7 +674,7 @@ public slots: */ void errorLoadingScript(const QString& scriptFilename); - /**jsdoc + /*@jsdoc * Triggered frequently at a system-determined interval. * @function Script.update * @param {number} deltaTime - The time since the last update, in s. @@ -686,7 +686,7 @@ public slots: */ void update(float deltaTime); - /**jsdoc + /*@jsdoc * Triggered when the script is stopping. * @function Script.scriptEnding * @returns {Signal} @@ -704,7 +704,7 @@ public slots: */ void scriptEnding(); - /**jsdoc + /*@jsdoc * @function Script.finished * @param {string} filename - File name. * @param {object} engine - Engine. @@ -713,7 +713,7 @@ public slots: */ void finished(const QString& fileNameString, ScriptManagerPointer); - /**jsdoc + /*@jsdoc * @function Script.cleanupMenuItem * @param {string} menuItem - Menu item. * @returns {Signal} @@ -721,7 +721,7 @@ public slots: */ void cleanupMenuItem(const QString& menuItemString); - /**jsdoc + /*@jsdoc * Triggered when the script prints a message to the program log via {@link print}, {@link Script.print}, * {@link console.log}, {@link console.debug}, {@link console.group}, {@link console.groupEnd}, {@link console.time}, or * {@link console.timeEnd}. @@ -732,7 +732,7 @@ public slots: */ void printedMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates an error, {@link console.error} or {@link console.exception} is called, or * {@link console.assert} is called and fails. * @function Script.errorMessage @@ -742,7 +742,7 @@ public slots: */ void errorMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates a warning or {@link console.warn} is called. * @function Script.warningMessage * @param {string} message - The warning message. @@ -751,7 +751,7 @@ public slots: */ void warningMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the script generates an information message or {@link console.info} is called. * @function Script.infoMessage * @param {string} message - The information message. @@ -760,21 +760,21 @@ public slots: */ void infoMessage(const QString& message, const QString& scriptName); - /**jsdoc + /*@jsdoc * Triggered when the running state of the script changes, e.g., from running to stopping. * @function Script.runningStateChanged * @returns {Signal} */ void runningStateChanged(); - /**jsdoc + /*@jsdoc * @function Script.clearDebugWindow * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ void clearDebugWindow(); - /**jsdoc + /*@jsdoc * @function Script.loadScript * @param {string} scriptName - Script name. * @param {boolean} isUserLoaded - Is user loaded. @@ -783,7 +783,7 @@ public slots: */ void loadScript(const QString& scriptName, bool isUserLoaded); - /**jsdoc + /*@jsdoc * @function Script.reloadScript * @param {string} scriptName - Script name. * @param {boolean} isUserLoaded - Is user loaded. @@ -792,14 +792,14 @@ public slots: */ void reloadScript(const QString& scriptName, bool isUserLoaded); - /**jsdoc + /*@jsdoc * Triggered when the script has stopped. * @function Script.doneRunning * @returns {Signal} */ void doneRunning(); - /**jsdoc + /*@jsdoc * @function Script.entityScriptDetailsUpdated * @returns {Signal} * @deprecated This signal is deprecated and will be removed. @@ -808,7 +808,7 @@ public slots: // script is updated (goes from RUNNING to ERROR_RUNNING_SCRIPT, for example) void entityScriptDetailsUpdated(); - /**jsdoc + /*@jsdoc * Triggered when the script starts for the user. See also, {@link Entities.preload}. *

Supported Script Types: Client Entity Scripts • Server Entity Scripts

* @function Script.entityScriptPreloadFinished @@ -836,7 +836,7 @@ public slots: // Emitted when an entity script has finished running preload void entityScriptPreloadFinished(const EntityItemID& entityID); - /**jsdoc + /*@jsdoc * Triggered when a script generates an unhandled exception. * @function Script.unhandledException * @param {object} exception - The details of the exception. @@ -852,7 +852,7 @@ public slots: protected: void init(); - /**jsdoc + /*@jsdoc * @function Script.executeOnScriptThread * @param {function} function - Function. * @param {ConnectionType} [type=2] - Connection type. @@ -860,7 +860,7 @@ public slots: */ Q_INVOKABLE void executeOnScriptThread(std::function function, const Qt::ConnectionType& type = Qt::QueuedConnection ); - /**jsdoc + /*@jsdoc * @function Script._requireResolve * @param {string} module - Module. * @param {string} [relativeTo=""] - Relative to. @@ -886,7 +886,7 @@ public slots: QHash _registeredHandlers; void forwardHandlerCall(const EntityItemID& entityID, const QString& eventName, ScriptValueList eventHanderArgs); - /**jsdoc + /*@jsdoc * @function Script.entityScriptContentAvailable * @param {Uuid} entityID - Entity ID. * @param {string} scriptOrURL - Path. diff --git a/libraries/script-engine/src/ScriptUUID.h b/libraries/script-engine/src/ScriptUUID.h index 5bfde9131d3..c1af40ae242 100644 --- a/libraries/script-engine/src/ScriptUUID.h +++ b/libraries/script-engine/src/ScriptUUID.h @@ -19,7 +19,7 @@ #include "Scriptable.h" -/**jsdoc +/*@jsdoc * The Uuid API provides facilities for working with UUIDs. * * @namespace Uuid @@ -40,7 +40,7 @@ class ScriptUUID : public QObject, protected Scriptable { Q_PROPERTY(QString NULL READ NULL_UUID CONSTANT) // String for use in scripts. public slots: - /**jsdoc + /*@jsdoc * Generates a UUID from a string representation of the UUID. * @function Uuid(0).fromString * @param {string} string - A string representation of a UUID. The curly braces are optional. @@ -57,7 +57,7 @@ public slots: */ QUuid fromString(const QString& string); - /**jsdoc + /*@jsdoc * Generates a string representation of a UUID. However, because UUIDs are represented in JavaScript as strings, this is in * effect a no-op. * @function Uuid(0).toString @@ -66,7 +66,7 @@ public slots: */ QString toString(const QUuid& id); - /**jsdoc + /*@jsdoc * Generates a new UUID. * @function Uuid(0).generate * @returns {Uuid} A new UUID. @@ -77,7 +77,7 @@ public slots: */ QUuid generate(); - /**jsdoc + /*@jsdoc * Tests whether two UUIDs are equal. * @function Uuid(0).isEqual * @param {Uuid} idA - The first UUID to compare. @@ -92,7 +92,7 @@ public slots: */ bool isEqual(const QUuid& idA, const QUuid& idB); - /**jsdoc + /*@jsdoc * Tests whether a UUID is null. * @function Uuid(0).isNull * @param {Uuid} id - The UUID to test. @@ -110,7 +110,7 @@ public slots: */ bool isNull(const QUuid& id); - /**jsdoc + /*@jsdoc * Prints a UUID to the program log, as a text label followed by the UUID value. * @function Uuid(0).print * @param {string} label - The label to print. diff --git a/libraries/script-engine/src/ScriptValueUtils.cpp b/libraries/script-engine/src/ScriptValueUtils.cpp index 777e3296f7c..03d10887f8c 100644 --- a/libraries/script-engine/src/ScriptValueUtils.cpp +++ b/libraries/script-engine/src/ScriptValueUtils.cpp @@ -619,7 +619,7 @@ ScriptValuePointer qColorToScriptValue(ScriptEngine* engine, const QColor& color return object; } -/**jsdoc +/*@jsdoc * An axis-aligned cube, defined as the bottom right near (minimum axes values) corner of the cube plus the dimension of its * sides. * @typedef {object} AACube @@ -704,7 +704,7 @@ void pickRayFromScriptValue(const ScriptValuePointer& object, PickRay& pickRay) } } -/**jsdoc +/*@jsdoc * Details of a collision between avatars and entities. * @typedef {object} Collision * @property {ContactEventType} type - The contact type of the collision event. @@ -747,7 +747,7 @@ void quuidFromScriptValue(const ScriptValuePointer& object, QUuid& uuid) { uuid = fromString; } -/**jsdoc +/*@jsdoc * A 2D size value. * @typedef {object} Size * @property {number} height - The height value. @@ -765,7 +765,7 @@ void qSizeFFromScriptValue(const ScriptValuePointer& object, QSizeF& qSizeF) { qSizeF.setHeight(object->property("height")->toVariant().toFloat()); } -/**jsdoc +/*@jsdoc * The details of an animation that is playing. * @typedef {object} Avatar.AnimationDetails * @property {string} role - Not used. @@ -838,7 +838,7 @@ void meshesFromScriptValue(const ScriptValuePointer& value, MeshProxyList& out) } } -/**jsdoc +/*@jsdoc * A triangle in a mesh. * @typedef {object} MeshFace * @property {number[]} vertices - The indexes of the three vertices that make up the face. diff --git a/libraries/script-engine/src/ScriptValueUtils.h b/libraries/script-engine/src/ScriptValueUtils.h index f387f6c6d1e..bd6e4d2cb31 100644 --- a/libraries/script-engine/src/ScriptValueUtils.h +++ b/libraries/script-engine/src/ScriptValueUtils.h @@ -27,7 +27,7 @@ bool isListOfStrings(const ScriptValuePointer& value); void registerMetaTypes(ScriptEngine* engine); // Mat4 -/**jsdoc +/*@jsdoc * A 4 x 4 matrix, typically containing a scale, rotation, and translation transform. See also the {@link Mat4(0)|Mat4} object. * * @typedef {object} Mat4 @@ -51,7 +51,7 @@ void registerMetaTypes(ScriptEngine* engine); ScriptValuePointer mat4toScriptValue(ScriptEngine* engine, const glm::mat4& mat4); void mat4FromScriptValue(const ScriptValuePointer& object, glm::mat4& mat4); -/**jsdoc +/*@jsdoc * A 2-dimensional vector. * * @typedef {object} Vec2 @@ -68,7 +68,7 @@ void mat4FromScriptValue(const ScriptValuePointer& object, glm::mat4& mat4); ScriptValuePointer vec2ToScriptValue(ScriptEngine* engine, const glm::vec2& vec2); void vec2FromScriptValue(const ScriptValuePointer& object, glm::vec2& vec2); -/**jsdoc +/*@jsdoc * A 3-dimensional vector. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} Vec3 @@ -92,7 +92,7 @@ ScriptValuePointer vec3ToScriptValue(ScriptEngine* engine, const glm::vec3& vec3 ScriptValuePointer vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3); void vec3FromScriptValue(const ScriptValuePointer& object, glm::vec3& vec3); -/**jsdoc +/*@jsdoc * A color vector. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} Color @@ -111,7 +111,7 @@ void vec3FromScriptValue(const ScriptValuePointer& object, glm::vec3& vec3); * Entities.editEntity(, { color: "red"}); // { red: 255, green: 0, blue: 0 } * Entities.editEntity(, { color: "#00FF00"}); // { red: 0, green: 255, blue: 0 } */ -/**jsdoc +/*@jsdoc * A color vector with real values. Values may also be null. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} ColorFloat @@ -134,7 +134,7 @@ ScriptValuePointer u8vec3ToScriptValue(ScriptEngine* engine, const glm::u8vec3& ScriptValuePointer u8vec3ColorToScriptValue(ScriptEngine* engine, const glm::u8vec3& vec3); void u8vec3FromScriptValue(const ScriptValuePointer& object, glm::u8vec3& vec3); -/**jsdoc +/*@jsdoc * A 4-dimensional vector. * * @typedef {object} Vec4 @@ -150,7 +150,7 @@ void vec4FromScriptValue(const ScriptValuePointer& object, glm::vec4& vec4); ScriptValuePointer quatToScriptValue(ScriptEngine* engine, const glm::quat& quat); void quatFromScriptValue(const ScriptValuePointer& object, glm::quat& quat); -/**jsdoc +/*@jsdoc * Defines a rectangular portion of an image or screen, or similar. * @typedef {object} Rect * @property {number} x - Left, x-coordinate value. @@ -218,7 +218,7 @@ class Collision; ScriptValuePointer collisionToScriptValue(ScriptEngine* engine, const Collision& collision); void collisionFromScriptValue(const ScriptValuePointer& object, Collision& collision); -/**jsdoc +/*@jsdoc * UUIDs (Universally Unique IDentifiers) are used to uniquely identify entities, avatars, and the like. They are represented * in JavaScript as strings in the format, "{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}", where the "n"s are * hexadecimal digits. diff --git a/libraries/script-engine/src/ScriptsModel.h b/libraries/script-engine/src/ScriptsModel.h index a55ae7163e9..dad82c34bf5 100644 --- a/libraries/script-engine/src/ScriptsModel.h +++ b/libraries/script-engine/src/ScriptsModel.h @@ -67,7 +67,7 @@ class TreeNodeFolder : public TreeNodeBase { TreeNodeFolder(const QString& foldername, TreeNodeFolder* parent); }; -/**jsdoc +/*@jsdoc * Information on the scripts that are in the default scripts directory of the Interface installation. This is provided as a * property of {@link ScriptDiscoveryService}. * @@ -155,26 +155,26 @@ class ScriptsModel : public QAbstractItemModel { protected slots: - /**jsdoc + /*@jsdoc * @function ScriptsModel.updateScriptsLocation * @param {string} newPath - New path. * @deprecated This method is deprecated and will be removed from the API. */ void updateScriptsLocation(const QString& newPath); - /**jsdoc + /*@jsdoc * @function ScriptsModel.downloadFinished * @deprecated This method is deprecated and will be removed from the API. */ void downloadFinished(); - /**jsdoc + /*@jsdoc * @function ScriptsModel.reloadLocalFiles * @deprecated This method is deprecated and will be removed from the API. */ void reloadLocalFiles(); - /**jsdoc + /*@jsdoc * @function ScriptsModel.reloadDefaultFiles * @deprecated This method is deprecated and will be removed from the API. */ diff --git a/libraries/script-engine/src/ScriptsModelFilter.h b/libraries/script-engine/src/ScriptsModelFilter.h index eb7495e7d4c..f6c21196475 100644 --- a/libraries/script-engine/src/ScriptsModelFilter.h +++ b/libraries/script-engine/src/ScriptsModelFilter.h @@ -15,7 +15,7 @@ #include "ScriptsModel.h" #include -/**jsdoc +/*@jsdoc * Sorted and filtered information on the scripts that are in the default scripts directory of the Interface installation. This * is provided as a property of {@link ScriptDiscoveryService}. * diff --git a/libraries/script-engine/src/TouchEvent.cpp b/libraries/script-engine/src/TouchEvent.cpp index 64d64226932..e85b773ef60 100644 --- a/libraries/script-engine/src/TouchEvent.cpp +++ b/libraries/script-engine/src/TouchEvent.cpp @@ -165,7 +165,7 @@ void TouchEvent::calculateMetaAttributes(const TouchEvent& other) { } } -/**jsdoc +/*@jsdoc * A display or device touch event. * @typedef {object} TouchEvent * @property {number} x - Integer x-coordinate of the average position of the touch events. diff --git a/libraries/script-engine/src/UsersScriptingInterface.h b/libraries/script-engine/src/UsersScriptingInterface.h index 79c0f4b61d9..ccf5a1d6932 100644 --- a/libraries/script-engine/src/UsersScriptingInterface.h +++ b/libraries/script-engine/src/UsersScriptingInterface.h @@ -19,7 +19,7 @@ #include #include -/**jsdoc +/*@jsdoc * The Users API provides features to regulate your interaction with other users. * * @namespace Users @@ -61,7 +61,7 @@ class UsersScriptingInterface : public QObject, public Dependency { public slots: - /**jsdoc + /*@jsdoc * Ignores or un-ignores another avatar. Ignoring an avatar makes them disappear for you and you disappear for them. * @function Users.ignore * @param {Uuid} sessionID - The session ID of the avatar to ignore. @@ -81,7 +81,7 @@ public slots: */ void ignore(const QUuid& nodeID, bool ignoreEnabled = true); - /**jsdoc + /*@jsdoc * Gets whether or not you have ignored a particular avatar. * @function Users.getIgnoreStatus * @param {Uuid} sessionID - The session ID of the avatar to get the ignore status of. @@ -89,7 +89,7 @@ public slots: */ bool getIgnoreStatus(const QUuid& nodeID); - /**jsdoc + /*@jsdoc * Mutes or un-mutes another avatar. Muting makes you unable to hear them and them unable to hear you. * @function Users.personalMute * @param {Uuid} sessionID - The session ID of the avatar to mute. @@ -97,7 +97,7 @@ public slots: */ void personalMute(const QUuid& nodeID, bool muteEnabled = true); - /**jsdoc + /*@jsdoc * Gets whether or not you have muted a particular avatar. * @function Users.getPersonalMuteStatus * @param {Uuid} sessionID - The session ID of the avatar to get the mute status of. @@ -105,7 +105,7 @@ public slots: */ bool getPersonalMuteStatus(const QUuid& nodeID); - /**jsdoc + /*@jsdoc * Sets an avatar's gain (volume) for you and you only, or sets the master gain. * @function Users.setAvatarGain * @param {Uuid} nodeID - The session ID of the avatar to set the gain for, or null to set the master gain. @@ -113,7 +113,7 @@ public slots: */ void setAvatarGain(const QUuid& nodeID, float gain); - /**jsdoc + /*@jsdoc * Gets an avatar's gain (volume) for you and you only, or gets the master gain. * @function Users.getAvatarGain * @param {Uuid} nodeID - The session ID of the avatar to get the gain for, or null to get the master gain. @@ -121,7 +121,7 @@ public slots: */ float getAvatarGain(const QUuid& nodeID); - /**jsdoc + /*@jsdoc * Kicks and bans a user. This removes them from the server and prevents them from returning. The ban is by user name (if * available) and by machine fingerprint. The ban functionality can be controlled with flags. *

This function only works if you're an administrator of the domain you're in.

@@ -131,7 +131,7 @@ public slots: */ void kick(const QUuid& nodeID, unsigned int banFlags = ModerationFlags::getDefaultBanFlags()); - /**jsdoc + /*@jsdoc * Mutes a user's microphone for everyone. The mute is not permanent: the user can unmute themselves. *

This function only works if you're an administrator of the domain you're in.

* @function Users.mute @@ -139,7 +139,7 @@ public slots: */ void mute(const QUuid& nodeID); - /**jsdoc + /*@jsdoc * Requests the user name and machine fingerprint associated with the given UUID. The user name is returned via a * {@link Users.usernameFromIDReply|usernameFromIDReply} signal. *

This function only works if you're an administrator of the domain you're in.

@@ -165,7 +165,7 @@ public slots: */ void requestUsernameFromID(const QUuid& nodeID); - /**jsdoc + /*@jsdoc * Gets whether the client can kick and ban users in the domain. * @function Users.getCanKick * @returns {boolean} true if the domain server allows the client to kick and ban users, otherwise @@ -173,25 +173,25 @@ public slots: */ bool getCanKick(); - /**jsdoc + /*@jsdoc * Toggles the state of the privacy shield. * @function Users.toggleIgnoreRadius */ void toggleIgnoreRadius(); - /**jsdoc + /*@jsdoc * Enables the privacy shield. * @function Users.enableIgnoreRadius */ void enableIgnoreRadius(); - /**jsdoc + /*@jsdoc * Disables the privacy shield. * @function Users.disableIgnoreRadius */ void disableIgnoreRadius(); - /**jsdoc + /*@jsdoc * Gets the status of the privacy shield. * @function Users.getIgnoreRadiusEnabled * @returns {boolean} true if the privacy shield is enabled, false if it is disabled. @@ -200,7 +200,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when your ability to kick and ban users changes. * @function Users.canKickChanged * @param {boolean} canKick - true if you can kick and ban users, false if you can't. @@ -208,7 +208,7 @@ public slots: */ void canKickChanged(bool canKick); - /**jsdoc + /*@jsdoc * Triggered when the privacy shield status changes. * @function Users.ignoreRadiusEnabledChanged * @param {boolean} isEnabled - true if the privacy shield is enabled, false if it isn't. @@ -216,14 +216,14 @@ public slots: */ void ignoreRadiusEnabledChanged(bool isEnabled); - /**jsdoc + /*@jsdoc * Triggered when another user enters the privacy shield. * @function Users.enteredIgnoreRadius * @returns {Signal} */ void enteredIgnoreRadius(); - /**jsdoc + /*@jsdoc * Triggered in response to a {@link Users.requestUsernameFromID|requestUsernameFromID} call. Provides the user name and * machine fingerprint associated with a UUID. * @function Users.usernameFromIDReply @@ -237,7 +237,7 @@ public slots: */ void usernameFromIDReply(const QString& nodeID, const QString& username, const QString& machineFingerprint, bool isAdmin); - /**jsdoc + /*@jsdoc * Triggered when a client has disconnected from the domain. * @function Users.avatarDisconnected * @param {Uuid} sessionID - The session ID of the client that has disconnected. diff --git a/libraries/script-engine/src/Vec3.h b/libraries/script-engine/src/Vec3.h index 1882dece19c..ba4b0733c8e 100644 --- a/libraries/script-engine/src/Vec3.h +++ b/libraries/script-engine/src/Vec3.h @@ -21,7 +21,7 @@ #include "GLMHelpers.h" #include "Scriptable.h" -/**jsdoc +/*@jsdoc * The Vec3 API provides facilities for generating and manipulating 3-dimensional vectors. Vircadia uses a * right-handed Cartesian coordinate system where the y-axis is the "up" and the negative z-axis is the "front" direction. * Vircadia coordinate system @@ -97,7 +97,7 @@ class Vec3 : public QObject, protected Scriptable { public slots: - /**jsdoc + /*@jsdoc * Calculates the reflection of a vector in a plane. * @function Vec3(0).reflect * @param {Vec3} v - The vector to reflect. @@ -111,7 +111,7 @@ public slots: */ glm::vec3 reflect(const glm::vec3& v1, const glm::vec3& v2) { return glm::reflect(v1, v2); } - /**jsdoc + /*@jsdoc * Calculates the cross product of two vectors. * @function Vec3(0).cross * @param {Vec3} v1 - The first vector. @@ -125,7 +125,7 @@ public slots: */ glm::vec3 cross(const glm::vec3& v1, const glm::vec3& v2) { return glm::cross(v1, v2); } - /**jsdoc + /*@jsdoc * Calculates the dot product of two vectors. * @function Vec3(0).dot * @param {Vec3} v1 - The first vector. @@ -139,7 +139,7 @@ public slots: */ float dot(const glm::vec3& v1, const glm::vec3& v2) { return glm::dot(v1, v2); } - /**jsdoc + /*@jsdoc * Multiplies a vector by a scale factor. * @function Vec3(0).multiply * @param {Vec3} v - The vector. @@ -148,7 +148,7 @@ public slots: */ glm::vec3 multiply(const glm::vec3& v1, float f) { return v1 * f; } - /**jsdoc + /*@jsdoc * Multiplies a vector by a scale factor. * @function Vec3(0).multiply * @param {number} scale - The scale factor. @@ -157,7 +157,7 @@ public slots: */ glm::vec3 multiply(float f, const glm::vec3& v1) { return v1 * f; } - /**jsdoc + /*@jsdoc * Multiplies two vectors. * @function Vec3(0).multiplyVbyV * @param {Vec3} v1 - The first vector. @@ -172,7 +172,7 @@ public slots: */ glm::vec3 multiplyVbyV(const glm::vec3& v1, const glm::vec3& v2) { return v1 * v2; } - /**jsdoc + /*@jsdoc * Rotates a vector. * @function Vec3(0).multiplyQbyV * @param {Quat} q - The rotation to apply. @@ -186,7 +186,7 @@ public slots: */ glm::vec3 multiplyQbyV(const glm::quat& q, const glm::vec3& v) { return q * v; } - /**jsdoc + /*@jsdoc * Calculates the sum of two vectors. * @function Vec3(0).sum * @param {Vec3} v1 - The first vector. @@ -195,7 +195,7 @@ public slots: */ glm::vec3 sum(const glm::vec3& v1, const glm::vec3& v2) { return v1 + v2; } - /**jsdoc + /*@jsdoc * Calculates one vector subtracted from another. * @function Vec3(0).subtract * @param {Vec3} v1 - The first vector. @@ -204,7 +204,7 @@ public slots: */ glm::vec3 subtract(const glm::vec3& v1, const glm::vec3& v2) { return v1 - v2; } - /**jsdoc + /*@jsdoc * Calculates the length of a vector * @function Vec3(0).length * @param {Vec3} v - The vector. @@ -212,7 +212,7 @@ public slots: */ float length(const glm::vec3& v) { return glm::length(v); } - /**jsdoc + /*@jsdoc * Calculates the distance between two points. * @function Vec3(0).distance * @param {Vec3} p1 - The first point. @@ -230,7 +230,7 @@ public slots: */ float distance(const glm::vec3& v1, const glm::vec3& v2) { return glm::distance(v1, v2); } - /**jsdoc + /*@jsdoc * Calculates the angle of rotation from one vector onto another, with the sign depending on a reference vector. * @function Vec3(0).orientedAngle * @param {Vec3} v1 - The first vector. @@ -252,7 +252,7 @@ public slots: */ float orientedAngle(const glm::vec3& v1, const glm::vec3& v2, const glm::vec3& v3); - /**jsdoc + /*@jsdoc * Normalizes a vector so that its length is 1. * @function Vec3(0).normalize * @param {Vec3} v - The vector to normalize. @@ -265,7 +265,7 @@ public slots: */ glm::vec3 normalize(const glm::vec3& v) { return glm::normalize(v); }; - /**jsdoc + /*@jsdoc * Calculates a linear interpolation between two vectors. * @function Vec3(0).mix * @param {Vec3} v1 - The first vector. @@ -280,7 +280,7 @@ public slots: */ glm::vec3 mix(const glm::vec3& v1, const glm::vec3& v2, float m) { return glm::mix(v1, v2, m); } - /**jsdoc + /*@jsdoc * Prints the vector to the program log, as a text label followed by the vector value. * @function Vec3(0).print * @param {string} label - The label to print. @@ -292,7 +292,7 @@ public slots: */ void print(const QString& label, const glm::vec3& v); - /**jsdoc + /*@jsdoc * Tests whether two vectors are equal. *

Note: The vectors must be exactly equal in order for true to be returned; it is often * better to use {@link Vec3(0).withinEpsilon|withinEpsilon}.

@@ -313,7 +313,7 @@ public slots: */ bool equal(const glm::vec3& v1, const glm::vec3& v2) { return v1 == v2; } - /**jsdoc + /*@jsdoc * Tests whether two vectors are equal within a tolerance. *

Note: It is often better to use this function than {@link Vec3(0).equal|equal}.

* @function Vec3(0).withinEpsilon @@ -334,7 +334,7 @@ public slots: */ bool withinEpsilon(const glm::vec3& v1, const glm::vec3& v2, float epsilon); - /**jsdoc + /*@jsdoc * Calculates polar coordinates (elevation, azimuth, radius) that transform the unit z-axis vector onto a point. * @function Vec3(0).toPolar * @param {Vec3} p - The point to calculate the polar coordinates for. @@ -350,7 +350,7 @@ public slots: // FIXME misnamed, should be 'spherical' or 'euler' depending on the implementation glm::vec3 toPolar(const glm::vec3& v); - /**jsdoc + /*@jsdoc * Calculates the coordinates of a point from polar coordinate transformation of the unit z-axis vector. * @function Vec3(0).fromPolar * @param {Vec3} polar - The polar coordinates of a point: x elevation rotation about the x-axis in radians, @@ -364,7 +364,7 @@ public slots: // FIXME misnamed, should be 'spherical' or 'euler' depending on the implementation glm::vec3 fromPolar(const glm::vec3& polar); - /**jsdoc + /*@jsdoc * Calculates the unit vector corresponding to polar coordinates elevation and azimuth transformation of the unit z-axis * vector. * @function Vec3(0).fromPolar @@ -382,7 +382,7 @@ public slots: // FIXME misnamed, should be 'spherical' or 'euler' depending on the implementation glm::vec3 fromPolar(float elevation, float azimuth); - /**jsdoc + /*@jsdoc * Calculates the angle between two vectors. * @function Vec3(0).getAngle * @param {Vec3} v1 - The first vector. diff --git a/libraries/script-engine/src/WebSocketClass.cpp b/libraries/script-engine/src/WebSocketClass.cpp index 312ad2fcdf8..a3950251589 100644 --- a/libraries/script-engine/src/WebSocketClass.cpp +++ b/libraries/script-engine/src/WebSocketClass.cpp @@ -77,12 +77,12 @@ void WebSocketClass::close(QWebSocketProtocol::CloseCode closeCode, QString reas _webSocket->close(closeCode, reason); } -/**jsdoc +/*@jsdoc * Called when the connection closes. * @callback WebSocket~onCloseCallback * @param {WebSocket.CloseData} data - Information on the connection closure. */ -/**jsdoc +/*@jsdoc * Information on a connection being closed. * @typedef {object} WebSocket.CloseData * @property {WebSocket.CloseCode} code - The reason why the connection was closed. @@ -102,12 +102,12 @@ void WebSocketClass::handleOnClose() { } } -/**jsdoc +/*@jsdoc * Called when an error occurs. * @callback WebSocket~onErrorCallback * @param {WebSocket.SocketError} error - The error. */ -/**jsdoc +/*@jsdoc *

The type of socket error.

*
* @@ -159,12 +159,12 @@ void WebSocketClass::handleOnError(QAbstractSocket::SocketError error) { } } -/**jsdoc +/*@jsdoc * Triggered when a message is received. * @callback WebSocket~onMessageCallback * @param {WebSocket.MessageData} message - The message received. */ -/**jsdoc +/*@jsdoc * A message received on a WebSocket connection. * @typedef {object} WebSocket.MessageData * @property {string} data - The message content. @@ -193,7 +193,7 @@ void WebSocketClass::handleOnBinaryMessage(const QByteArray& message) { } } -/**jsdoc +/*@jsdoc * Called when the connection opens. * @callback WebSocket~onOpenCallback */ diff --git a/libraries/script-engine/src/WebSocketClass.h b/libraries/script-engine/src/WebSocketClass.h index aee4a2c3591..3c464c781d6 100644 --- a/libraries/script-engine/src/WebSocketClass.h +++ b/libraries/script-engine/src/WebSocketClass.h @@ -21,7 +21,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * Provides a bi-directional, event-driven communication session between the script and another WebSocket connection. It is a * near-complete implementation of the WebSocket API described in the Mozilla docs: * https://developer.mozilla.org/en-US/docs/Web/API/WebSocket. @@ -110,7 +110,7 @@ class WebSocketClass : public QObject { static ScriptValuePointer constructor(ScriptContext* context, ScriptEngine* engine); - /**jsdoc + /*@jsdoc * The state of a WebSocket connection. *
* @@ -183,20 +183,20 @@ class WebSocketClass : public QObject { public slots: - /**jsdoc + /*@jsdoc * Sends a message on the connection. * @function WebSocket.send * @param {string|object} message - The message to send. If an object, it is converted to a string. */ void send(ScriptValuePointer message); - /**jsdoc + /*@jsdoc * Closes the connection. * @function WebSocket.close * @param {WebSocket.CloseCode} [closeCode=1000] - The reason for closing. * @param {string} [reason=""] - A description of the reason for closing. */ - /**jsdoc + /*@jsdoc * The reason why the connection was closed. *
* diff --git a/libraries/script-engine/src/WebSocketServerClass.h b/libraries/script-engine/src/WebSocketServerClass.h index dbaa0855986..f493e8e6857 100644 --- a/libraries/script-engine/src/WebSocketServerClass.h +++ b/libraries/script-engine/src/WebSocketServerClass.h @@ -22,7 +22,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * Manages {@link WebSocket}s in server entity and assignment client scripts. * *

Create using new WebSocketServer(...).

@@ -96,7 +96,7 @@ class WebSocketServerClass : public QObject { public slots: - /**jsdoc + /*@jsdoc * Closes all connections and closes the WebSocketServer. * @function WebSocketServer.close */ @@ -112,7 +112,7 @@ private slots: signals: - /**jsdoc + /*@jsdoc * Triggered when there is a new connection. * @function WebSocketServer.newConnection * @param {WebSocket} webSocket - The {@link WebSocket} for the new connection. diff --git a/libraries/script-engine/src/WheelEvent.cpp b/libraries/script-engine/src/WheelEvent.cpp index a0c19392d9f..22c3f9f2a47 100644 --- a/libraries/script-engine/src/WheelEvent.cpp +++ b/libraries/script-engine/src/WheelEvent.cpp @@ -53,7 +53,7 @@ WheelEvent::WheelEvent(const QWheelEvent& event) { isAlt = event.modifiers().testFlag(Qt::AltModifier); } -/**jsdoc +/*@jsdoc * A mouse wheel event. * @typedef {object} WheelEvent * @property {number} x - Integer x-coordinate of the event on the Interface window or HMD HUD. diff --git a/libraries/script-engine/src/XMLHttpRequestClass.cpp b/libraries/script-engine/src/XMLHttpRequestClass.cpp index c78d287fe00..0518cbc17a7 100644 --- a/libraries/script-engine/src/XMLHttpRequestClass.cpp +++ b/libraries/script-engine/src/XMLHttpRequestClass.cpp @@ -113,7 +113,7 @@ ScriptValuePointer XMLHttpRequestClass::getResponseHeader(const QString& name) c return _engine->nullValue(); } -/**jsdoc +/*@jsdoc * Called when the request's ready state changes. * @callback XMLHttpRequest~onReadyStateChangeCallback */ @@ -192,7 +192,7 @@ void XMLHttpRequestClass::doSend() { } } -/**jsdoc +/*@jsdoc * Called when the request times out. * @callback XMLHttpRequest~onTimeoutCallback */ diff --git a/libraries/script-engine/src/XMLHttpRequestClass.h b/libraries/script-engine/src/XMLHttpRequestClass.h index 8d3221c1955..e220142d948 100644 --- a/libraries/script-engine/src/XMLHttpRequestClass.h +++ b/libraries/script-engine/src/XMLHttpRequestClass.h @@ -60,7 +60,7 @@ XMlHttpRequest.getAllResponseHeaders() function XMlHttpRequest.getResponseHeader(QString) function */ -/**jsdoc +/*@jsdoc * Provides a means to interact with web servers. It is a near-complete implementation of the XMLHttpRequest API described in * the Mozilla docs: * https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest. @@ -179,7 +179,7 @@ class XMLHttpRequestClass : public QObject { static const int MAXIMUM_REDIRECTS = 5; - /**jsdoc + /*@jsdoc *

The state of an XMLHttpRequest.

*
* @@ -232,13 +232,13 @@ class XMLHttpRequestClass : public QObject { public slots: - /**jsdoc + /*@jsdoc * Aborts the request. * @function XMLHttpRequest.abort */ void abort(); - /**jsdoc + /*@jsdoc * Sets the value of an HTTP request header. Must be called after {@link XMLHttpRequest.open} but before * {@link XMLHttpRequest.send}; * @function XMLHttpRequest.setRequestHeader @@ -247,7 +247,7 @@ public slots: */ void setRequestHeader(const QString& name, const QString& value); - /**jsdoc + /*@jsdoc * Initializes a request. * @function XMLHttpRequest.open * @param {string} method - The HTTP request method @@ -261,7 +261,7 @@ public slots: void open(const QString& method, const QString& url, bool async = true, const QString& username = "", const QString& password = ""); - /**jsdoc + /*@jsdoc * Sends the request to the server. * @function XMLHttpRequest.send * @param {*} [data] - The data to send. @@ -269,14 +269,14 @@ public slots: void send(); void send(const ScriptValuePointer& data); - /**jsdoc + /*@jsdoc * Gets the response headers. * @function XMLHttpRequest.getAllResponseHeaders * @returns {string} The response headers, separated by "\n" characters. */ ScriptValuePointer getAllResponseHeaders() const; - /**jsdoc + /*@jsdoc * Gets a response header. * @function XMLHttpRequest.getResponseHeader * @param {string} name - @@ -286,7 +286,7 @@ public slots: signals: - /**jsdoc + /*@jsdoc * Triggered when the request is complete — with or without error (incl. timeout). * @function XMLHttpRequest.requestComplete * @returns {Signal} @@ -314,7 +314,7 @@ public slots: ScriptValuePointer _onReadyStateChange; ReadyState _readyState { XMLHttpRequestClass::UNSENT }; - /**jsdoc + /*@jsdoc *

The type of network error.

*
* diff --git a/libraries/shared/src/BillboardMode.h b/libraries/shared/src/BillboardMode.h index 4d123c0603c..dd377cab31e 100644 --- a/libraries/shared/src/BillboardMode.h +++ b/libraries/shared/src/BillboardMode.h @@ -16,7 +16,7 @@ #include "glm/glm.hpp" #include "glm/gtc/quaternion.hpp" -/**jsdoc +/*@jsdoc *

How an entity is billboarded.

*
* diff --git a/libraries/shared/src/BlendshapeConstants.cpp b/libraries/shared/src/BlendshapeConstants.cpp index 9035b105298..01f8c2db19e 100644 --- a/libraries/shared/src/BlendshapeConstants.cpp +++ b/libraries/shared/src/BlendshapeConstants.cpp @@ -77,10 +77,47 @@ const char* BLENDSHAPE_NAMES[] = { "" }; -const QMap BLENDSHAPE_LOOKUP_MAP = [] { - QMap toReturn; +const QHash BLENDSHAPE_LOOKUP_MAP = [] { + QHash toReturn; for (int i = 0; i < (int)Blendshapes::BlendshapeCount; i++) { toReturn[BLENDSHAPE_NAMES[i]] = i; } return toReturn; }(); + +const QHash> READYPLAYERME_BLENDSHAPES_MAP = { + // ReadyPlayerMe blendshape default mapping. + { "mouthOpen", { "JawOpen", 1.0f } }, + { "eyeBlinkLeft", { "EyeBlink_L", 1.0f } }, + { "eyeBlinkRight", { "EyeBlink_R", 1.0f } }, + { "eyeSquintLeft", { "EyeSquint_L", 1.0f } }, + { "eyeSquintRight", { "EyeSquint_R", 1.0f } }, + { "eyeWideLeft", { "EyeOpen_L", 1.0f } }, + { "eyeWideRight", { "EyeOpen_R", 1.0f } }, + { "browDownLeft", { "BrowsD_L", 1.0f } }, + { "browDownRight", { "BrowsD_R", 1.0f } }, + { "browInnerUp", { "BrowsU_C", 1.0f } }, + { "browOuterUpLeft", { "BrowsU_L", 1.0f } }, + { "browOuterUpRight", { "BrowsU_R", 1.0f } }, + { "mouthFrownLeft", { "MouthFrown_L", 1.0f } }, + { "mouthFrownRight", { "MouthFrown_R", 1.0f } }, + { "mouthPucker", { "LipsPucker", 1.0f } }, + { "jawForward", { "JawFwd", 1.0f } }, + { "jawLeft", { "JawLeft", 1.0f } }, + { "jawRight", { "JawRight", 1.0f } }, + { "mouthLeft", { "MouthLeft", 1.0f } }, + { "mouthRight", { "MouthRight", 1.0f } }, + { "noseSneerLeft", { "NoseSneer_L", 1.0f } }, + { "noseSneerRight", { "NoseSneer_R", 1.0f } }, + { "mouthLowerDownLeft", { "MouthLowerDown_L", 1.0f } }, + { "mouthLowerDownRight", { "MouthLowerDown_R", 1.0f } }, + { "mouthShrugLower", { "MouthShrugLower", 1.0f } }, + { "mouthShrugUpper", { "MouthShrugUpper", 1.0f } }, + { "viseme_sil", { "MouthClose", 1.0f } }, + { "mouthSmile", { "MouthSmile_L", 1.0f } }, + { "mouthSmile", { "MouthSmile_R", 1.0f } }, + { "viseme_CH", { "LipsFunnel", 1.0f } }, + { "viseme_PP", { "LipsUpperClose", 1.0f } }, + { "mouthShrugLower", { "LipsLowerClose", 1.0f } }, + { "viseme_FF", { "Puff", 1.0f } } +}; diff --git a/libraries/shared/src/BlendshapeConstants.h b/libraries/shared/src/BlendshapeConstants.h index 1c378920883..5dd1f0abbb6 100644 --- a/libraries/shared/src/BlendshapeConstants.h +++ b/libraries/shared/src/BlendshapeConstants.h @@ -12,14 +12,15 @@ #ifndef hifi_BlendshapeConstants_h #define hifi_BlendshapeConstants_h -#include +#include #include #include /// The names of the supported blendshapes, terminated with an empty string. extern const char* BLENDSHAPE_NAMES[]; -extern const QMap BLENDSHAPE_LOOKUP_MAP; +extern const QHash BLENDSHAPE_LOOKUP_MAP; +extern const QHash> READYPLAYERME_BLENDSHAPES_MAP; enum class Blendshapes : int { EyeBlink_L = 0, @@ -87,16 +88,6 @@ enum class Blendshapes : int { BlendshapeCount }; -enum class LegacyBlendshpaes : int { - JawChew, // not in ARKit - LipsUpperUp, // split in ARKit - LipsLowerDown, // split in ARKit - ChinLowerRaise, // not in ARKit - ChinUpperRaise, // not in ARKit - Sneer, // split in ARKit - LegacyBlendshapeCount -}; - // Original blendshapes were per Faceshift. // NEW in ARKit diff --git a/libraries/shared/src/BoxBase.h b/libraries/shared/src/BoxBase.h index 9bc2115d9e2..1d64341740b 100644 --- a/libraries/shared/src/BoxBase.h +++ b/libraries/shared/src/BoxBase.h @@ -18,7 +18,7 @@ #include #include -/**jsdoc +/*@jsdoc *

A BoxFace specifies the face of an axis-aligned (AA) box. *

* diff --git a/libraries/shared/src/ComponentMode.cpp b/libraries/shared/src/ComponentMode.cpp index 42ef820e2ac..437af19886d 100644 --- a/libraries/shared/src/ComponentMode.cpp +++ b/libraries/shared/src/ComponentMode.cpp @@ -8,7 +8,7 @@ #include "ComponentMode.h" -/**jsdoc +/*@jsdoc *

How an effect is applied in a {@link Entities.EntityProperties-Zone|Zone} entity.

*
* @@ -38,7 +38,7 @@ QString ComponentModeHelpers::getNameForComponentMode(ComponentMode mode) { return componentModeNames[(int)mode]; } -/**jsdoc +/*@jsdoc *

The priority of updates from avatars in a zone to other clients.

*
* diff --git a/libraries/shared/src/DebugDraw.h b/libraries/shared/src/DebugDraw.h index 9db48b759bc..c5ba2905144 100644 --- a/libraries/shared/src/DebugDraw.h +++ b/libraries/shared/src/DebugDraw.h @@ -21,7 +21,7 @@ #include #include -/**jsdoc +/*@jsdoc * The DebugDraw API renders debug markers and lines. These markers are only visible locally; they are not visible * to other users. * @@ -41,7 +41,7 @@ class DebugDraw : public QObject { DebugDraw(); ~DebugDraw(); - /**jsdoc + /*@jsdoc * Draws a line in world space, visible for a single frame. To make the line visually persist, you need to repeatedly draw * it. * @function DebugDraw.drawRay @@ -60,7 +60,7 @@ class DebugDraw : public QObject { */ Q_INVOKABLE void drawRay(const glm::vec3& start, const glm::vec3& end, const glm::vec4& color); - /**jsdoc + /*@jsdoc * Draws lines in world space, visible for a single frame. To make the lines visually persist, you need to repeatedly draw * them. *

Note: Currently doesn't work. @@ -86,7 +86,7 @@ class DebugDraw : public QObject { Q_INVOKABLE void drawRays(const std::vector>& lines, const glm::vec4& color, const glm::vec3& translation = glm::vec3(0.0f, 0.0f, 0.0f), const glm::quat& rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f)); - /**jsdoc + /*@jsdoc * Adds or updates a debug marker in world coordinates. This marker is drawn every frame until it is removed using * {@link DebugDraw.removeMarker|removeMarker}. If a world coordinates debug marker of the specified name * already exists, its parameters are updated. @@ -112,14 +112,14 @@ class DebugDraw : public QObject { Q_INVOKABLE void addMarker(const QString& key, const glm::quat& rotation, const glm::vec3& position, const glm::vec4& color, float size = 1.0f); - /**jsdoc + /*@jsdoc * Removes a debug marker that was added in world coordinates. * @function DebugDraw.removeMarker * @param {string} key - The name of the world coordinates debug marker to remove. */ Q_INVOKABLE void removeMarker(const QString& key); - /**jsdoc + /*@jsdoc * Adds or updates a debug marker to the world in avatar coordinates. This marker is drawn every frame until it is removed * using {@link DebugDraw.removeMyAvatarMarker|removeMyAvatarMarker}. If an avatar coordinates debug marker of the * specified name already exists, its parameters are updated. The debug marker moves with your avatar. @@ -145,7 +145,7 @@ class DebugDraw : public QObject { Q_INVOKABLE void addMyAvatarMarker(const QString& key, const glm::quat& rotation, const glm::vec3& position, const glm::vec4& color, float size = 1.0f); - /**jsdoc + /*@jsdoc * Removes a debug marker that was added in avatar coordinates. * @function DebugDraw.removeMyAvatarMarker * @param {string} key - The name of the avatar coordinates debug marker to remove. diff --git a/libraries/shared/src/GeometryUtil.h b/libraries/shared/src/GeometryUtil.h index d786d639800..dcfcbd2397b 100644 --- a/libraries/shared/src/GeometryUtil.h +++ b/libraries/shared/src/GeometryUtil.h @@ -119,7 +119,7 @@ void swingTwistDecomposition(const glm::quat& rotation, glm::quat& swing, glm::quat& twist); -/**jsdoc +/*@jsdoc * A triangle in a mesh. * @typedef {object} Triangle * @property {Vec3} v0 - The position of vertex 0 in the triangle. diff --git a/libraries/shared/src/GizmoType.h b/libraries/shared/src/GizmoType.h index 20870158bcc..ca091e63fe5 100644 --- a/libraries/shared/src/GizmoType.h +++ b/libraries/shared/src/GizmoType.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

A {@link Entities.EntityProperties-Gizmo|Gizmo} entity may be one of the following types:

*
* diff --git a/libraries/shared/src/ModerationFlags.h b/libraries/shared/src/ModerationFlags.h index a8390873d76..cf97f6249c9 100644 --- a/libraries/shared/src/ModerationFlags.h +++ b/libraries/shared/src/ModerationFlags.h @@ -15,7 +15,7 @@ class ModerationFlags { public: - /**jsdoc + /*@jsdoc *

A set of flags for moderation ban actions. The value is constructed by using the | (bitwise OR) operator on the * individual flag values.

*
diff --git a/libraries/shared/src/PathUtils.h b/libraries/shared/src/PathUtils.h index 142cd7bfbcd..41c2a6aef92 100644 --- a/libraries/shared/src/PathUtils.h +++ b/libraries/shared/src/PathUtils.h @@ -18,7 +18,7 @@ #include "DependencyManager.h" -/**jsdoc +/*@jsdoc * The Paths API provides absolute paths to the scripts and resources directories. * * @namespace Paths diff --git a/libraries/shared/src/PhysicsCollisionGroups.h b/libraries/shared/src/PhysicsCollisionGroups.h index 08fc5f5ac0c..56e6dc21b49 100644 --- a/libraries/shared/src/PhysicsCollisionGroups.h +++ b/libraries/shared/src/PhysicsCollisionGroups.h @@ -71,7 +71,7 @@ const int32_t BULLET_COLLISION_MASK_DETAILED_RAY = BULLET_COLLISION_GROUP_DETAIL // COLLISIONLESS gets an empty mask. const int32_t BULLET_COLLISION_MASK_COLLISIONLESS = 0; -/**jsdoc +/*@jsdoc *

A collision may occur with the following types of items:

*
* diff --git a/libraries/shared/src/PickFilter.h b/libraries/shared/src/PickFilter.h index d3d6673f50d..1cc1a8b0b58 100644 --- a/libraries/shared/src/PickFilter.h +++ b/libraries/shared/src/PickFilter.h @@ -15,7 +15,7 @@ class PickFilter { public: - /**jsdoc + /*@jsdoc *

A set of flags for a pick filter. The value is constructed by using the | (bitwise OR) operator on the * individual flag values.

*
diff --git a/libraries/shared/src/Preferences.h b/libraries/shared/src/Preferences.h index 91471177927..a195dc457ff 100644 --- a/libraries/shared/src/Preferences.h +++ b/libraries/shared/src/Preferences.h @@ -153,7 +153,7 @@ class FloatPreference : public Preference { Q_PROPERTY(float min READ getMin CONSTANT) Q_PROPERTY(float max READ getMax CONSTANT) Q_PROPERTY(float step READ getStep CONSTANT) - Q_PROPERTY(float decimals READ getDecimals CONSTANT) + Q_PROPERTY(uint decimals READ getDecimals CONSTANT) public: using Getter = std::function; @@ -194,10 +194,10 @@ class FloatPreference : public Preference { const Getter _getter; const Setter _setter; - float _decimals { 0 }; + uint _decimals { 0 }; float _min { 0 }; float _max { 1 }; - float _step { 0.1f }; + float _step { 1 }; }; class IntPreference : public Preference { diff --git a/libraries/shared/src/PrimitiveMode.h b/libraries/shared/src/PrimitiveMode.h index 421b940aa1d..6dd65ec0c71 100644 --- a/libraries/shared/src/PrimitiveMode.h +++ b/libraries/shared/src/PrimitiveMode.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

How the geometry of an entity is rendered.

*
* diff --git a/libraries/shared/src/PulseMode.h b/libraries/shared/src/PulseMode.h index 4e398cbbaa4..8d4c24b4bea 100644 --- a/libraries/shared/src/PulseMode.h +++ b/libraries/shared/src/PulseMode.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

Pulse modes for color and alpha pulsing.

*
* diff --git a/libraries/shared/src/RegisteredMetaTypes.cpp b/libraries/shared/src/RegisteredMetaTypes.cpp index 367a106a69b..d05d21afac3 100644 --- a/libraries/shared/src/RegisteredMetaTypes.cpp +++ b/libraries/shared/src/RegisteredMetaTypes.cpp @@ -507,7 +507,7 @@ QRectF qRectFFromVariant(const QVariant& object) { return qRectFFromVariant(object, valid); } -/**jsdoc +/*@jsdoc * Details of a collision between avatars and entities. * @typedef {object} Collision * @property {ContactEventType} type - The contact type of the collision event. diff --git a/libraries/shared/src/RegisteredMetaTypes.h b/libraries/shared/src/RegisteredMetaTypes.h index 8a731d147ef..e09d2e248ff 100644 --- a/libraries/shared/src/RegisteredMetaTypes.h +++ b/libraries/shared/src/RegisteredMetaTypes.h @@ -43,7 +43,7 @@ Q_DECLARE_METATYPE(std::function); Q_DECLARE_METATYPE(std::function); // Mat4 -/**jsdoc +/*@jsdoc * A 4 x 4 matrix, typically containing a scale, rotation, and translation transform. See also the {@link Mat4(0)|Mat4} object. * * @typedef {object} Mat4 @@ -68,7 +68,7 @@ QVariant mat4ToVariant(const glm::mat4& mat4); glm::mat4 mat4FromVariant(const QVariant& object, bool& valid); glm::mat4 mat4FromVariant(const QVariant& object); -/**jsdoc +/*@jsdoc * A 2-dimensional vector. * * @typedef {object} Vec2 @@ -86,7 +86,7 @@ QVariant vec2ToVariant(const glm::vec2& vec2); glm::vec2 vec2FromVariant(const QVariant& object, bool& valid); glm::vec2 vec2FromVariant(const QVariant& object); -/**jsdoc +/*@jsdoc * A 3-dimensional vector. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} Vec3 @@ -110,7 +110,7 @@ QVariant vec3toVariant(const glm::vec3& vec3); glm::vec3 vec3FromVariant(const QVariant &object, bool& valid); glm::vec3 vec3FromVariant(const QVariant &object); -/**jsdoc +/*@jsdoc * A color vector. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} Color @@ -129,7 +129,7 @@ glm::vec3 vec3FromVariant(const QVariant &object); * Entities.editEntity(, { color: "red"}); // { red: 255, green: 0, blue: 0 } * Entities.editEntity(, { color: "#00FF00"}); // { red: 0, green: 255, blue: 0 } */ -/**jsdoc +/*@jsdoc * A color vector with real values. Values may also be null. See also the {@link Vec3(0)|Vec3} object. * * @typedef {object} ColorFloat @@ -153,7 +153,7 @@ QVariant u8vec3ColortoVariant(const glm::u8vec3& vec3); glm::u8vec3 u8vec3FromVariant(const QVariant &object, bool& valid); glm::u8vec3 u8vec3FromVariant(const QVariant &object); -/**jsdoc +/*@jsdoc * A 4-dimensional vector. * * @typedef {object} Vec4 @@ -171,7 +171,7 @@ QVariant quatToVariant(const glm::quat& quat); glm::quat quatFromVariant(const QVariant &object, bool& isValid); glm::quat quatFromVariant(const QVariant &object); -/**jsdoc +/*@jsdoc * Defines a rectangular portion of an image or screen, or similar. * @typedef {object} Rect * @property {number} x - Left, x-coordinate value. @@ -195,7 +195,7 @@ class MathPick { virtual QVariantMap toVariantMap() const = 0; }; -/**jsdoc +/*@jsdoc * A vector with a starting point. It is used, for example, when finding entities or avatars that lie under a mouse click or * intersect a laser beam. * @@ -226,7 +226,7 @@ class PickRay : public MathPick { }; Q_DECLARE_METATYPE(PickRay) -/**jsdoc +/*@jsdoc * The tip of a stylus. * * @typedef {object} StylusTip @@ -269,7 +269,7 @@ class StylusTip : public MathPick { } }; -/**jsdoc +/*@jsdoc * A parabola defined by a starting point, initial velocity, and acceleration. It is used, for example, when finding entities or * avatars that intersect a parabolic beam. * @@ -359,7 +359,7 @@ class CollisionRegion : public MathPick { } } - /**jsdoc + /*@jsdoc * A volume for checking collisions in the physics simulation. * @typedef {object} CollisionRegion * @property {Shape} shape - The collision region's shape and size. Dimensions are in world coordinates, but scale with the @@ -374,7 +374,7 @@ class CollisionRegion : public MathPick { * masks overlap with the region's collision group are considered to be colliding with the region. */ - /**jsdoc + /*@jsdoc * A physical volume. * @typedef {object} Shape * @property {ShapeType} shapeType="none" - The type of shape. @@ -538,7 +538,7 @@ namespace std { #endif } -/**jsdoc +/*@jsdoc *

The type of a collision contact event.

*
* @@ -603,7 +603,7 @@ namespace graphics { using MeshPointer = std::shared_ptr; -/**jsdoc +/*@jsdoc * A mesh, such as returned by {@link Entities.getMeshes} or {@link Model} API functions. * * @class MeshProxy @@ -623,14 +623,14 @@ class MeshProxy : public QObject { public: virtual MeshPointer getMeshPointer() const = 0; - /**jsdoc + /*@jsdoc * Gets the number of vertices in the mesh. * @function MeshProxy#getNumVertices * @returns {number} Integer number of vertices in the mesh. */ Q_INVOKABLE virtual int getNumVertices() const = 0; - /**jsdoc + /*@jsdoc * Gets the position of a vertex in the mesh. * @function MeshProxy#getPos * @param {number} index - Integer index of the vertex. diff --git a/libraries/shared/src/RenderLayer.h b/libraries/shared/src/RenderLayer.h index caa1e54f586..e0c249a001c 100644 --- a/libraries/shared/src/RenderLayer.h +++ b/libraries/shared/src/RenderLayer.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

A layer in which an entity may be rendered.

*
* diff --git a/libraries/shared/src/ResourceRequestObserver.cpp b/libraries/shared/src/ResourceRequestObserver.cpp index 21f4d561732..3d44dc6979a 100644 --- a/libraries/shared/src/ResourceRequestObserver.cpp +++ b/libraries/shared/src/ResourceRequestObserver.cpp @@ -16,7 +16,7 @@ #include #include -/**jsdoc +/*@jsdoc * Information about a resource request. * @typedef {object} ResourceRequestObserver.ResourceRequest * @property {string} url - The URL of the resource request. diff --git a/libraries/shared/src/ResourceRequestObserver.h b/libraries/shared/src/ResourceRequestObserver.h index 352f01c3a5a..808b89c8b37 100644 --- a/libraries/shared/src/ResourceRequestObserver.h +++ b/libraries/shared/src/ResourceRequestObserver.h @@ -16,7 +16,7 @@ #include "DependencyManager.h" -/**jsdoc +/*@jsdoc * The ResourceRequestObserver API provides notifications when an observable resource request is made. * * @namespace ResourceRequestObserver @@ -33,7 +33,7 @@ class ResourceRequestObserver : public QObject, public Dependency { void update(const QUrl& requestUrl, const qint64 callerId = -1, const QString& extra = ""); signals: - /**jsdoc + /*@jsdoc * Triggered when an observable resource request is made. * @function ResourceRequestObserver.resourceRequestEvent * @param {ResourceRequestObserver.ResourceRequest} request - Information about the resource request. diff --git a/libraries/shared/src/ShapeInfo.cpp b/libraries/shared/src/ShapeInfo.cpp index f9d41022d73..0f2bae11703 100644 --- a/libraries/shared/src/ShapeInfo.cpp +++ b/libraries/shared/src/ShapeInfo.cpp @@ -16,7 +16,7 @@ #include "HashKey.h" #include "NumericalConstants.h" // for MILLIMETERS_PER_METER -/**jsdoc +/*@jsdoc *

Defines the shape used for collisions or zones.

*
* diff --git a/libraries/shared/src/SpatiallyNestable.cpp b/libraries/shared/src/SpatiallyNestable.cpp index 670b03611b0..69f3539152d 100644 --- a/libraries/shared/src/SpatiallyNestable.cpp +++ b/libraries/shared/src/SpatiallyNestable.cpp @@ -1407,7 +1407,7 @@ SpatiallyNestablePointer SpatiallyNestable::findByID(QUuid id, bool& success) { return parentWP.lock(); } -/**jsdoc +/*@jsdoc *

An in-world item may be one of the following types:

*
* diff --git a/libraries/shared/src/TextAlignment.h b/libraries/shared/src/TextAlignment.h index 829b07dc368..b82d8e8c57a 100644 --- a/libraries/shared/src/TextAlignment.h +++ b/libraries/shared/src/TextAlignment.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

A {@link Entities.EntityProperties-Text|Text} entity may use one of the following alignments:

*
* diff --git a/libraries/shared/src/TextEffect.h b/libraries/shared/src/TextEffect.h index 3e205f72fe6..09affc1f4ea 100644 --- a/libraries/shared/src/TextEffect.h +++ b/libraries/shared/src/TextEffect.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

A {@link Entities.EntityProperties-Text|Text} entity may use one of the following effects:

*
* diff --git a/libraries/shared/src/WebInputMode.h b/libraries/shared/src/WebInputMode.h index 4f43691ac97..a65ae1341c1 100644 --- a/libraries/shared/src/WebInputMode.h +++ b/libraries/shared/src/WebInputMode.h @@ -11,7 +11,7 @@ #include "QString" -/**jsdoc +/*@jsdoc *

Specifies how a web surface processes events.

*
* diff --git a/libraries/shared/src/shared/Camera.cpp b/libraries/shared/src/shared/Camera.cpp index 85761e0d297..55ee69d08aa 100644 --- a/libraries/shared/src/shared/Camera.cpp +++ b/libraries/shared/src/shared/Camera.cpp @@ -10,7 +10,7 @@ #include "Camera.h" -/**jsdoc +/*@jsdoc *

Camera modes affect the position of the camera and the controls for camera movement. The camera can be in one of the * following modes:

*
@@ -215,7 +215,7 @@ void Camera::loadViewFrustum(ViewFrustum& frustum) const { frustum.calculate(); } -/**jsdoc +/*@jsdoc * A ViewFrustum has a "keyhole" shape: a regular frustum for stuff that is visible plus a central sphere for stuff that is * nearby (for physics simulation). * diff --git a/libraries/shared/src/shared/Camera.h b/libraries/shared/src/shared/Camera.h index f494318c73a..7247eb16a60 100644 --- a/libraries/shared/src/shared/Camera.h +++ b/libraries/shared/src/shared/Camera.h @@ -68,28 +68,28 @@ class Camera : public QObject { QVariantMap getViewFrustum(); public slots: - /**jsdoc + /*@jsdoc * Gets the current camera mode. You can also get the mode using the {@link Camera|Camera.mode} property. * @function Camera.getModeString * @returns {Camera.Mode} The current camera mode. */ QString getModeString() const; - /**jsdoc + /*@jsdoc * Sets the camera mode. You can also set the mode using the {@link Camera|Camera.mode} property. * @function Camera.setModeString * @param {Camera.Mode} mode - The mode to set the camera to. */ void setModeString(const QString& mode); - /**jsdoc + /*@jsdoc * Gets the current camera position. You can also get the position using the {@link Camera|Camera.position} property. * @function Camera.getPosition * @returns {Vec3} The current camera position. */ glm::vec3 getPosition() const { return _position; } - /**jsdoc + /*@jsdoc * Sets the camera position. You can also set the position using the {@link Camera|Camera.position} property. Only works if * the camera is in independent mode. * @function Camera.setPosition @@ -97,7 +97,7 @@ public slots: */ void setPosition(const glm::vec3& position); - /**jsdoc + /*@jsdoc * Gets the current camera orientation. You can also get the orientation using the {@link Camera|Camera.orientation} * property. * @function Camera.getOrientation @@ -105,7 +105,7 @@ public slots: */ glm::quat getOrientation() const { return _orientation; } - /**jsdoc + /*@jsdoc * Sets the camera orientation. You can also set the orientation using the {@link Camera|Camera.orientation} property. Only * works if the camera is in independent mode. * @function Camera.setOrientation @@ -113,7 +113,7 @@ public slots: */ void setOrientation(const glm::quat& orientation); - /**jsdoc + /*@jsdoc * Gets the current mouse capture state. * @function Camera.getCaptureMouse * @returns {boolean} true if the mouse is captured (is invisible and cannot leave the bounds of Interface, @@ -121,7 +121,7 @@ public slots: */ bool getCaptureMouse() const { return _captureMouse; } - /**jsdoc + /*@jsdoc * Sets the mouse capture state. When true, the mouse is invisible and cannot leave the bounds of * Interface, as long as Interface is the active window and no menu item is selected. When false, the mouse * behaves normally. @@ -130,21 +130,21 @@ public slots: */ void setCaptureMouse(bool captureMouse) { _captureMouse = captureMouse; emit captureMouseChanged(captureMouse); } - /**jsdoc + /*@jsdoc * Gets the current camera sensitivity. * @function Camera.getSensitivity * @returns {number} The current camera sensitivity. Must be positive. */ float getSensitivity() const { return _sensitivity; } - /**jsdoc + /*@jsdoc * Sets the camera sensitivity. Higher values mean that the camera will be more sensitive to mouse movements. * @function Camera.setSensitivity * @param {number} sensitivity - The desired camera sensitivity. Must be positive. */ void setSensitivity(float sensitivity) { _sensitivity = glm::max(0.0f, sensitivity); } - /**jsdoc + /*@jsdoc * Computes a {@link PickRay} based on the current camera configuration and the specified x, y position on the * screen. The {@link PickRay} can be used in functions such as {@link Entities.findRayIntersection} and * {@link Overlays.findRayIntersection}. @@ -165,7 +165,7 @@ public slots: */ virtual PickRay computePickRay(float x, float y) const = 0; - /**jsdoc + /*@jsdoc * Rotates the camera to look at the specified position. Only works if the camera is in independent mode. * @function Camera.lookAt * @param {Vec3} position - The position to look at. @@ -186,7 +186,7 @@ public slots: */ void lookAt(const glm::vec3& position); - /**jsdoc + /*@jsdoc * Sets the camera to continue looking at the specified position even while the camera moves. Only works if * the camera is in independent mode. * @function Camera.keepLookingAt @@ -194,14 +194,14 @@ public slots: */ void keepLookingAt(const glm::vec3& position); - /**jsdoc + /*@jsdoc * Stops the camera from continually looking at the position that was set with {@link Camera.keepLookingAt}. * @function Camera.stopLookingAt */ void stopLooking() { _isKeepLookingAt = false; } signals: - /**jsdoc + /*@jsdoc * Triggered when the camera mode changes. * @function Camera.modeUpdated * @param {Camera.Mode} newMode - The new camera mode. @@ -215,7 +215,7 @@ public slots: */ void modeUpdated(const QString& newMode); - /**jsdoc + /*@jsdoc * Triggered when the camera mouse capture state changes. * @function Camera.captureMouseChanged * @param {boolean} newCaptureMouse - The new mouse capture state. diff --git a/libraries/task/src/task/Config.h b/libraries/task/src/task/Config.h index 7e6be9b53ea..c4a7b8ebbe0 100644 --- a/libraries/task/src/task/Config.h +++ b/libraries/task/src/task/Config.h @@ -91,7 +91,7 @@ class TConfigProxy { using Config = JobConfig; }; -/**jsdoc +/*@jsdoc * @namespace Workload * * @hifi-interface @@ -132,14 +132,14 @@ class JobConfig : public QObject { virtual void setPresetList(const QJsonObject& object); - /**jsdoc + /*@jsdoc * @function Workload.toJSON * @returns {string} */ // This must be named toJSON to integrate with the global scripting JSON object Q_INVOKABLE QString toJSON() { return QJsonDocument(toJsonValue(*this).toObject()).toJson(QJsonDocument::Compact); } - /**jsdoc + /*@jsdoc * @function Workload.load * @param {object} map */ @@ -150,7 +150,7 @@ class JobConfig : public QObject { void setCPURunTime(const std::chrono::nanoseconds& runtime) { _msCPURunTime = std::chrono::duration(runtime).count(); emit newStats(); } double getCPURunTime() const { return _msCPURunTime; } - /**jsdoc + /*@jsdoc * @function Workload.getConfig * @param {string} name * @returns {object} @@ -173,19 +173,19 @@ class JobConfig : public QObject { } // Describe the node graph data connections of the associated Job/Task - /**jsdoc + /*@jsdoc * @function Workload.isTask * @returns {boolean} */ Q_INVOKABLE bool isTask() const { return _isTask; } - /**jsdoc + /*@jsdoc * @function Workload.isSwitch * @returns {boolean} */ Q_INVOKABLE bool isSwitch() const { return _isSwitch; } - /**jsdoc + /*@jsdoc * @function Workload.getSubConfigs * @returns {object[]} */ @@ -198,13 +198,13 @@ class JobConfig : public QObject { return returned; } - /**jsdoc + /*@jsdoc * @function Workload.getNumSubs * @returns {number} */ Q_INVOKABLE int getNumSubs() const { return getSubConfigs().size(); } - /**jsdoc + /*@jsdoc * @function Workload.getSubConfig * @param {number} index * @returns {object} @@ -224,32 +224,32 @@ class JobConfig : public QObject { public slots: - /**jsdoc + /*@jsdoc * @function Workload.load * @param {object} json */ void load(const QJsonObject& val) { qObjectFromJsonValue(val, *this); emit loaded(); } - /**jsdoc + /*@jsdoc * @function Workload.refresh */ void refresh(); signals: - /**jsdoc + /*@jsdoc * @function Workload.loaded * @returns {Signal} */ void loaded(); - /**jsdoc + /*@jsdoc * @function Workload.newStats * @returns {Signal} */ void newStats(); - /**jsdoc + /*@jsdoc * @function Workload.dirtyEnabled * @returns {Signal} */ diff --git a/libraries/ui/src/OffscreenUi.cpp b/libraries/ui/src/OffscreenUi.cpp index 26e77dcb5fa..d5fa6609d48 100644 --- a/libraries/ui/src/OffscreenUi.cpp +++ b/libraries/ui/src/OffscreenUi.cpp @@ -32,7 +32,7 @@ #include #include "MainWindow.h" -/**jsdoc +/*@jsdoc * The OffscreenFlags API enables gamepad joystick navigation of UI. * *

This API currently has no effect and is not used.

@@ -78,14 +78,14 @@ class OffscreenFlags : public QObject { signals: - /**jsdoc + /*@jsdoc * Triggered when the value of the navigationFocused property changes. * @function OffscreenFlags.navigationFocusedChanged * @returns {Signal} */ void navigationFocusedChanged(); - /**jsdoc + /*@jsdoc * Triggered when the value of the navigationFocusDisabled property changes. * @function OffscreenFlags.navigationFocusDisabledChanged * @returns {Signal} diff --git a/libraries/ui/src/QmlFragmentClass.h b/libraries/ui/src/QmlFragmentClass.h index 67a4ffe1ab6..35399782ea5 100644 --- a/libraries/ui/src/QmlFragmentClass.h +++ b/libraries/ui/src/QmlFragmentClass.h @@ -33,7 +33,7 @@ class QmlFragmentClass : public QmlWindowClass { QmlFragmentClass(bool restricted, QString id); - /**jsdoc + /*@jsdoc * Creates a new button, adds it to this and returns it. * @function QmlFragmentClass#addButton * @param properties {object} button properties diff --git a/libraries/ui/src/QmlWebWindowClass.h b/libraries/ui/src/QmlWebWindowClass.h index 4837f792a02..da5b73c81d9 100644 --- a/libraries/ui/src/QmlWebWindowClass.h +++ b/libraries/ui/src/QmlWebWindowClass.h @@ -18,7 +18,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * A OverlayWebWindow displays an HTML window inside Interface. * *

Create using new OverlayWebWindow(...).

@@ -70,25 +70,25 @@ using ScriptValuePointer = QSharedPointer; * @borrows OverlayWindow.qmlToScript as qmlToScript */ -/**jsdoc +/*@jsdoc * @function OverlayWebWindow.clearDebugWindow * @deprecated This method is deprecated and will be removed. */ -/**jsdoc +/*@jsdoc * @function OverlayWebWindow.sendToQML * @param {string | object} message - Message. * @deprecated This method is deprecated and will be removed. */ -/**jsdoc +/*@jsdoc * @function OverlayWebWindow.fromQML * @param {object} message - Message. * @returns {Signal} * @deprecated This signal is deprecated and will be removed. */ -/**jsdoc +/*@jsdoc * Sends a message to the HTML page. To receive the message, the HTML page's script must connect to the EventBridge * that is automatically provided for the script: *
EventBridge.scriptEventReceived.connect(function(message) {
@@ -134,7 +134,7 @@ using ScriptValuePointer = QSharedPointer;
  * 
  */
 
-/**jsdoc
+/*@jsdoc
  * Triggered when a message from the HTML page is received. The HTML page can send a message by calling:
  * 
EventBridge.emitWebEvent(message);
* @function OverlayWebWindow.webEventReceived @@ -163,21 +163,21 @@ class QmlWebWindowClass : public QmlWindowClass { public slots: - /**jsdoc + /*@jsdoc * Gets the URL of the HTML displayed. * @function OverlayWebWindow.getURL * @returns {string} - The URL of the HTML page displayed. */ QString getURL(); - /**jsdoc + /*@jsdoc * Loads HTML into the window, replacing current window content. * @function OverlayWebWindow.setURL * @param {string} url - The URL of the HTML to display. */ void setURL(const QString& url); - /**jsdoc + /*@jsdoc * Injects a script into the HTML page, replacing any currently injected script. * @function OverlayWebWindow.setScriptURL * @param {string} url - The URL of the script to inject. @@ -185,7 +185,7 @@ public slots: void setScriptURL(const QString& script); signals: - /**jsdoc + /*@jsdoc * Triggered when the window's URL changes. * @function OverlayWebWindow.urlChanged * @returns {Signal} diff --git a/libraries/ui/src/QmlWindowClass.cpp b/libraries/ui/src/QmlWindowClass.cpp index 51d8a3b5a53..c0f2e9a51e8 100644 --- a/libraries/ui/src/QmlWindowClass.cpp +++ b/libraries/ui/src/QmlWindowClass.cpp @@ -91,7 +91,7 @@ QmlWindowClass::QmlWindowClass(bool restricted) : _restricted(restricted) { } -/**jsdoc +/*@jsdoc * Properties used to initialize an {@link OverlayWindow} or {@link OverlayWebWindow}. * @typedef {object} OverlayWindow.Properties * @property {string} [title="WebWindow] - The window title. diff --git a/libraries/ui/src/QmlWindowClass.h b/libraries/ui/src/QmlWindowClass.h index 129caef9519..da44aed9fae 100644 --- a/libraries/ui/src/QmlWindowClass.h +++ b/libraries/ui/src/QmlWindowClass.h @@ -21,7 +21,7 @@ class ScriptEngine; class ScriptValue; using ScriptValuePointer = QSharedPointer; -/**jsdoc +/*@jsdoc * A OverlayWindow displays a QML window inside Interface. * *

The QML can optionally include a WebView control that embeds an HTML-based windows. (The WebView @@ -68,7 +68,7 @@ class QmlWindowClass : public QObject { QmlWindowClass(bool restricted); ~QmlWindowClass(); - /**jsdoc + /*@jsdoc * @function OverlayWindow.initQml * @param {OverlayWindow.Properties} properties - Properties. * @deprecated This method is deprecated and will be removed. @@ -82,14 +82,14 @@ class QmlWindowClass : public QObject { public slots: - /**jsdoc + /*@jsdoc * Gets whether the window is shown or hidden. * @function OverlayWindow.isVisible * @returns {boolean} code>true if the window is shown, false if it is hidden. */ bool isVisible(); - /**jsdoc + /*@jsdoc * Shows or hides the window. * @function OverlayWindow.setVisible * @param {boolean} visible - code>true to show the window, false to hide it. @@ -97,21 +97,21 @@ public slots: void setVisible(bool visible); - /**jsdoc + /*@jsdoc * Gets the position of the window. * @function OverlayWindow.getPosition * @returns {Vec2} The position of the window, in pixels. */ glm::vec2 getPosition(); - /**jsdoc + /*@jsdoc * Sets the position of the window, from a {@link Vec2}. * @function OverlayWindow.setPosition * @param {Vec2} position - The position of the window, in pixels. */ void setPosition(const glm::vec2& position); - /**jsdoc + /*@jsdoc * Sets the position of the window, from a pair of numbers. * @function OverlayWindow.setPosition * @param {number} x - The x position of the window, in pixels. @@ -120,21 +120,21 @@ public slots: void setPosition(int x, int y); - /**jsdoc + /*@jsdoc * Gets the size of the window interior. * @function OverlayWindow.getSize * @returns {Vec2} The size of the window interior, in pixels. */ glm::vec2 getSize(); - /**jsdoc + /*@jsdoc * Sets the size of the window interior, from a {@link Vec2}. * @function OverlayWindow.setSize * @param {Vec2} size - The size of the window interior, in pixels. */ void setSize(const glm::vec2& size); - /**jsdoc + /*@jsdoc * Sets the size of the window interior, from a pair of numbers. * @function OverlayWindow.setSize * @param {number} width - The width of the window interior, in pixels. @@ -142,27 +142,27 @@ public slots: */ void setSize(int width, int height); - /**jsdoc + /*@jsdoc * Sets the window title. * @function OverlayWindow.setTitle * @param {string} title - The window title. */ void setTitle(const QString& title); - /**jsdoc + /*@jsdoc * Raises the window to the top. * @function OverlayWindow.raise */ Q_INVOKABLE void raise(); - /**jsdoc + /*@jsdoc * Closes the window. *

Note: The window also closes when the script ends.

* @function OverlayWindow.close */ Q_INVOKABLE void close(); - /**jsdoc + /*@jsdoc * @function OverlayWindow.getEventBridge * @returns {object} Object. * @deprecated This method is deprecated and will be removed. @@ -171,7 +171,7 @@ public slots: Q_INVOKABLE QObject* getEventBridge() { return this; }; - /**jsdoc + /*@jsdoc * Sends a message to the QML. To receive the message, the QML must implement a function: *
function fromScript(message) {
      *   ...
@@ -221,13 +221,13 @@ public slots:
     // Scripts can use this to send a message to the QML object
     void sendToQml(const QVariant& message);
 
-    /**jsdoc
+    /*@jsdoc
      * Calls a clearWindow() function if present in the QML.
      * @function OverlayWindow.clearDebugWindow
      */
     void clearDebugWindow();
 
-    /**jsdoc
+    /*@jsdoc
      * Sends a message to an embedded HTML web page. To receive the message, the HTML page's script must connect to the
      * EventBridge that is automatically provided for the script:
      * 
EventBridge.scriptEventReceived.connect(function(message) {
@@ -239,7 +239,7 @@ public slots:
     // QmlWindow content may include WebView requiring EventBridge.
     void emitScriptEvent(const QVariant& scriptMessage);
 
-    /**jsdoc
+    /*@jsdoc
      * @function OverlayWindow.emitWebEvent
      * @param {object|string} message - The message.
      * @deprecated This function is deprecated and will be removed.
@@ -248,28 +248,28 @@ public slots:
 
 signals:
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window is hidden or shown.
      * @function OverlayWindow.visibleChanged
      * @returns {Signal}
      */
     void visibleChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window changes position.
      * @function OverlayWindow.positionChanged
      * @returns {Signal}
      */
     void positionChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window changes size.
      * @function OverlayWindow.sizeChanged
      * @returns {Signal}
      */
     void sizeChanged();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window changes position.
      * @function OverlayWindow.moved
      * @param {Vec2} position - The position of the window, in pixels.
@@ -277,7 +277,7 @@ public slots:
      */
     void moved(glm::vec2 position);
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window changes size.
      * @function OverlayWindow.resized
      * @param {Size} size - The size of the window interior, in pixels.
@@ -285,14 +285,14 @@ public slots:
      */
     void resized(QSizeF size);
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when the window is closed.
      * @function OverlayWindow.closed
      * @returns {Signal}
      */
     void closed();
 
-    /**jsdoc
+    /*@jsdoc
      * Triggered when a message from the QML page is received. The QML page can send a message (string or object) by calling:
      * 
sendToScript(message);
* @function OverlayWindow.fromQml @@ -303,7 +303,7 @@ public slots: void fromQml(const QVariant& message); - /**jsdoc + /*@jsdoc * @function OverlayWindow.scriptEventReceived * @param {object} message - The message. * @returns {Signal} @@ -312,7 +312,7 @@ public slots: // QmlWindow content may include WebView requiring EventBridge. void scriptEventReceived(const QVariant& message); - /**jsdoc + /*@jsdoc * Triggered when a message from an embedded HTML page is received. The HTML page can send a message by calling: *
EventBridge.emitWebEvent(message);
* @function OverlayWindow.webEventReceived @@ -323,7 +323,7 @@ public slots: protected slots: - /**jsdoc + /*@jsdoc * @function OverlayWindow.hasMoved * @param {Vec2} position - Position. * @deprecated This method is deprecated and will be removed. @@ -331,14 +331,14 @@ protected slots: // Shouldn't be in the API: it is just connected to in order to emit a signal. void hasMoved(QVector2D); - /**jsdoc + /*@jsdoc * @function OverlayWindow.hasClosed * @deprecated This method is deprecated and will be removed. */ // Shouldn't be in the API: it is just connected to in order to emit a signal. void hasClosed(); - /**jsdoc + /*@jsdoc * @function OverlayWindow.qmlToScript * @param {object} message - Message. * @deprecated This method is deprecated and will be removed. diff --git a/libraries/ui/src/ui/TabletScriptingInterface.cpp b/libraries/ui/src/ui/TabletScriptingInterface.cpp index e80b11915a7..82c9c43ce15 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.cpp +++ b/libraries/ui/src/ui/TabletScriptingInterface.cpp @@ -1013,7 +1013,7 @@ const QString OBJECT_NAME_KEY = "objectName"; const QString STABLE_ORDER_KEY = "stableOrder"; static int s_stableOrder = 1; -/**jsdoc +/*@jsdoc * Properties of a tablet button. * * @typedef {object} TabletButtonProxy.ButtonProperties diff --git a/libraries/ui/src/ui/TabletScriptingInterface.h b/libraries/ui/src/ui/TabletScriptingInterface.h index 9b7c0ebe703..955f7ae226f 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.h +++ b/libraries/ui/src/ui/TabletScriptingInterface.h @@ -34,7 +34,7 @@ class TabletButtonProxy; class QmlWindowClass; class OffscreenQmlSurface; -/**jsdoc +/*@jsdoc * The Tablet API provides the facilities to work with the system or other tablet. In toolbar mode (see Developer * > UI options), the tablet's menu buttons are displayed in a toolbar and other tablet content is displayed in a dialog. * @@ -46,7 +46,7 @@ class OffscreenQmlSurface; * @hifi-client-entity * @hifi-avatar */ -/**jsdoc +/*@jsdoc * The tabletInterface API provides the facilities to work with the system or other tablet. * * @namespace tabletInterface @@ -65,7 +65,7 @@ class TabletScriptingInterface : public QObject, public Dependency { Q_OBJECT public: - /**jsdoc + /*@jsdoc *

Standard tablet sounds.

*
* @@ -94,7 +94,7 @@ class TabletScriptingInterface : public QObject, public Dependency { void setToolbarScriptingInterface(ToolbarScriptingInterface* toolbarScriptingInterface) { _toolbarScriptingInterface = toolbarScriptingInterface; } - /**jsdoc + /*@jsdoc * Gets an instance of a tablet. A new tablet is created if one with the specified name doesn't already exist. * @function Tablet.getTablet * @param {string} name - A unique name that identifies the tablet. @@ -107,7 +107,7 @@ class TabletScriptingInterface : public QObject, public Dependency { void preloadSounds(); - /**jsdoc + /*@jsdoc * Plays a standard tablet sound. The sound is played locally (only the user running the script hears it) without a * position. * @function Tablet.playSound @@ -128,7 +128,7 @@ class TabletScriptingInterface : public QObject, public Dependency { QObject* getFlags(); signals: - /**jsdoc + /*@jsdoc * Triggered when a tablet message or dialog is displayed on the tablet that needs the user's attention. *

Note: Only triggered if the script is running in the same script engine as the script that created * the tablet. By default, this means in scripts included as part of the default scripts.

@@ -150,7 +150,7 @@ class TabletScriptingInterface : public QObject, public Dependency { bool _toolbarMode { false }; }; -/**jsdoc +/*@jsdoc * Information on the buttons in the tablet main menu (toolbar in toolbar mode) for use in QML. Has properties and functions * per http://doc.qt.io/qt-5/qabstractlistmodel.html. * @typedef {object} TabletProxy.TabletButtonListModel @@ -206,7 +206,7 @@ public slots: Q_DECLARE_METATYPE(TabletButtonsProxyModel*); -/**jsdoc +/*@jsdoc * An instance of a tablet. In toolbar mode (see Developer > UI options), the tablet's menu buttons are displayed in a * toolbar and other tablet content is displayed in a dialog. * @@ -247,7 +247,7 @@ class TabletProxy : public QObject { void setToolbarMode(bool toolbarMode); void unfocus(); - /**jsdoc + /*@jsdoc * Displays the tablet menu. The tablet is opened if it isn't already open. * @function TabletProxy#gotoMenuScreen * @param {string} [submenu=""] - The name of a submenu to display, if any. @@ -256,20 +256,20 @@ class TabletProxy : public QObject { */ Q_INVOKABLE void gotoMenuScreen(const QString& submenu = ""); - /**jsdoc + /*@jsdoc * @function TabletProxy#initialScreen * @param {string} url - URL. * @deprecated This function is deprecated and will be removed. */ Q_INVOKABLE void initialScreen(const QVariant& url); - /**jsdoc + /*@jsdoc * Displays the tablet home screen, if the tablet is open. * @function TabletProxy#gotoHomeScreen */ Q_INVOKABLE void gotoHomeScreen(); - /**jsdoc + /*@jsdoc * Opens a web app or page in addition to any current app. In tablet mode, the app or page is displayed over the top of the * current app; in toolbar mode, the app is opened in a new window that replaces any current window open. If in tablet * mode, the app or page can be closed using {@link TabletProxy#returnToPreviousApp}. @@ -283,7 +283,7 @@ class TabletProxy : public QObject { Q_INVOKABLE void gotoWebScreen(const QString& url); Q_INVOKABLE void gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl, bool loadOtherBase = false); - /**jsdoc + /*@jsdoc * Opens a QML app or dialog on the tablet. * @function TabletProxy#loadQMLSource * @param {string} path - The path of the QML app or dialog. @@ -292,28 +292,28 @@ class TabletProxy : public QObject { */ Q_INVOKABLE void loadQMLSource(const QVariant& path, bool resizable = false); - /**jsdoc + /*@jsdoc * @function TabletProxy#loadQMLSourceImpl * @deprecated This function is deprecated and will be removed. */ // Internal function, do not call from scripts. Q_INVOKABLE void loadQMLSourceImpl(const QVariant& path, bool resizable, bool localSafeContext); - /**jsdoc + /*@jsdoc * @function TabletProxy#loadHTMLSourceOnTopImpl * @deprecated This function is deprecated and will be removed. */ // Internal function, do not call from scripts. Q_INVOKABLE void loadHTMLSourceOnTopImpl(const QString& url, const QString& injectedJavaScriptUrl, bool loadOtherBase, bool localSafeContext); - /**jsdoc + /*@jsdoc * @function TabletProxy#returnToPreviousAppImpl * @deprecated This function is deprecated and will be removed. */ // Internal function, do not call from scripts. Q_INVOKABLE void returnToPreviousAppImpl(bool localSafeContext); - /**jsdoc + /*@jsdoc * @function TabletProxy#loadQMLOnTopImpl * @deprecated This function is deprecated and will be removed. */ @@ -323,7 +323,7 @@ class TabletProxy : public QObject { // FIXME: This currently relies on a script initializing the tablet (hence the bool denoting success); // it should be initialized internally so it cannot fail - /**jsdoc + /*@jsdoc * Displays a QML dialog over the top of the current dialog, without closing the current dialog. Use * {@link TabletProxy#popFromStack|popFromStack} to close the dialog. *

If the current dialog or its ancestors contain a QML StackView with objectName: "stack" and @@ -337,7 +337,7 @@ class TabletProxy : public QObject { // edit.js provides an example of using this outside of main menu. Q_INVOKABLE bool pushOntoStack(const QVariant& path); - /**jsdoc + /*@jsdoc * Closes a QML dialog that was displayed using {@link Tablet#pushOntoStack|pushOntoStack} with a dialog implementing a QML * StackView; otherwise, no action is taken. *

If using a QML StackView, its popSource() function is called.

@@ -345,7 +345,7 @@ class TabletProxy : public QObject { */ Q_INVOKABLE void popFromStack(); - /**jsdoc + /*@jsdoc * Opens a QML app or dialog in addition to any current app. In tablet mode, the app or dialog is displayed over the top of * the current app; in toolbar mode, the app or dialog is opened in a new window. If in tablet mode, the app can be closed * using {@link TabletProxy#returnToPreviousApp}. @@ -354,7 +354,7 @@ class TabletProxy : public QObject { */ Q_INVOKABLE void loadQMLOnTop(const QVariant& path); - /**jsdoc + /*@jsdoc * Opens a web app or page in addition to any current app. In tablet mode, the app or page is displayed over the top of the * current app; in toolbar mode, the app is opened in a new window that replaces any current window open. If in tablet * mode, the app or page can be closed using {@link TabletProxy#returnToPreviousApp}. @@ -365,28 +365,28 @@ class TabletProxy : public QObject { Q_INVOKABLE void loadWebScreenOnTop(const QVariant& url); Q_INVOKABLE void loadWebScreenOnTop(const QVariant& url, const QString& injectedJavaScriptUrl); - /**jsdoc + /*@jsdoc * Closes the current app and returns to the previous app, if in tablet mode and the current app was loaded using * {@link TabletProxy#loadQMLOnTop|loadQMLOnTop} or {@link TabletProxy#loadWebScreenOnTop|loadWebScreenOnTop}. * @function TabletProxy#returnToPreviousApp */ Q_INVOKABLE void returnToPreviousApp(); - /**jsdoc + /*@jsdoc * Checks if the tablet has a modal, non-modal, or message dialog open. * @function TabletProxy#isMessageDialogOpen * @returns {boolean} true if a modal, non-modal, or message dialog is open, false if there isn't. */ Q_INVOKABLE bool isMessageDialogOpen(); - /**jsdoc + /*@jsdoc * Closes any open modal, non-modal, or message dialog, opened by {@link Window.prompt}, {@link Window.promptAsync}, * {@link Window.openMessageBox}, or similar. * @function TabletProxy#closeDialog */ Q_INVOKABLE void closeDialog(); - /**jsdoc + /*@jsdoc * Adds a new button to the tablet menu. * @function TabletProxy#addButton * @param {TabletButtonProxy.ButtonProperties} properties - Button properties. @@ -406,14 +406,14 @@ class TabletProxy : public QObject { //FIXME: UI_TABLET_HACK: enumerate the button properties when we figure out what they should be! Q_INVOKABLE TabletButtonProxy* addButton(const QVariant& properties); - /**jsdoc + /*@jsdoc * Removes a button from the tablet menu. * @function TabletProxy#removeButton * @param {TabletButtonProxy} button - The button to remove. */ Q_INVOKABLE void removeButton(TabletButtonProxy* tabletButtonProxy); - /**jsdoc + /*@jsdoc * Sends a message to the current web page. To receive the message, the web page's script must connect to the * EventBridge that is automatically provided to the script: *
EventBridge.scriptEventReceived.connect(function(message) {
@@ -430,7 +430,7 @@ class TabletProxy : public QObject {
      */
     Q_INVOKABLE void emitScriptEvent(const QVariant& msg);
 
-    /**jsdoc
+    /*@jsdoc
      * Sends a message to the current QML page. To receive the message, the QML page must implement a function:
      * 
function fromScript(message) {
      *   ...
@@ -440,14 +440,14 @@ class TabletProxy : public QObject {
      */
     Q_INVOKABLE void sendToQml(const QVariant& msg);
 
-    /**jsdoc
+    /*@jsdoc
      * Checks if the tablet is on the home screen.
      * @function TabletProxy#onHomeScreen
      * @returns {boolean} true if the tablet is on the home screen, false if it isn't.
      */
     Q_INVOKABLE bool onHomeScreen();
 
-    /**jsdoc
+    /*@jsdoc
      * Sets whether the tablet is displayed in landscape or portrait mode.
      * 

Note: The setting isn't used in toolbar mode.

* @function TabletProxy#setLandscape @@ -456,7 +456,7 @@ class TabletProxy : public QObject { */ Q_INVOKABLE void setLandscape(bool landscape) { _landscape = landscape; } - /**jsdoc + /*@jsdoc * Gets whether the tablet is displayed in landscape or portrait mode. *

Note: The setting isn't used in toolbar mode.

* @function TabletProxy#getLandscape @@ -465,7 +465,7 @@ class TabletProxy : public QObject { */ Q_INVOKABLE bool getLandscape() { return _landscape; } - /**jsdoc + /*@jsdoc * Checks if a path is the current app or dialog displayed. * @function TabletProxy#isPathLoaded * @param {string} path - The path to test. @@ -484,7 +484,7 @@ class TabletProxy : public QObject { TabletButtonListModel* getButtons() { return &_buttons; } signals: - /**jsdoc + /*@jsdoc * Triggered when a message from the current HTML web page displayed on the tablet is received. The HTML web page can send * a message by calling: *
EventBridge.emitWebEvent(message);
@@ -494,7 +494,7 @@ class TabletProxy : public QObject { */ void webEventReceived(QVariant msg); - /**jsdoc + /*@jsdoc * Triggered when a message from the current QML page displayed on the tablet is received. The QML page can send a message * (string or object) by calling:
sendToScript(message);
* @function TabletProxy#fromQml @@ -503,7 +503,7 @@ class TabletProxy : public QObject { */ void fromQml(QVariant msg); - /**jsdoc + /*@jsdoc * Triggered when the tablet's screen changes. * @function TabletProxy#screenChanged * @param type {string} - The type of the new screen or change: "Home", "Menu", @@ -513,7 +513,7 @@ class TabletProxy : public QObject { */ void screenChanged(QVariant type, QVariant url); - /**jsdoc + /*@jsdoc * Triggered when the tablet is opened or closed. *

Note: Doesn't apply in toolbar mode.

* @function TabletProxy#tabletShownChanged @@ -521,7 +521,7 @@ class TabletProxy : public QObject { */ void tabletShownChanged(); - /**jsdoc + /*@jsdoc * Triggered when the tablet's toolbar mode changes. * @function TabletProxy#toolbarModeChanged * @returns {Signal} @@ -536,20 +536,20 @@ class TabletProxy : public QObject { protected slots: - /**jsdoc + /*@jsdoc * @function TabletProxy#desktopWindowClosed * @deprecated This function is deprecated and will be removed. */ void desktopWindowClosed(); - /**jsdoc + /*@jsdoc * @function TabletProxy#emitWebEvent * @param {object|string} message - Message * @deprecated This function is deprecated and will be removed. */ void emitWebEvent(const QVariant& msg); - /**jsdoc + /*@jsdoc * @function TabletProxy#onTabletShown * @deprecated This function is deprecated and will be removed. */ @@ -582,7 +582,7 @@ protected slots: Q_DECLARE_METATYPE(TabletProxy*); -/**jsdoc +/*@jsdoc * A tablet button. In toolbar mode (Developer > UI > Tablet Becomes Toolbar), the tablet button is displayed on the * toolbar. * @@ -609,7 +609,7 @@ class TabletButtonProxy : public QObject { QUuid getUuid() const { return _uuid; } - /**jsdoc + /*@jsdoc * Gets the current values of the button's properties. Only properties that have been set during button creation or * subsequently edited are returned. * @function TabletButtonProxy#getProperties @@ -627,7 +627,7 @@ class TabletButtonProxy : public QObject { */ Q_INVOKABLE QVariantMap getProperties(); - /**jsdoc + /*@jsdoc * Changes the values of the button's properties. * @function TabletButtonProxy#editProperties * @param {TabletButtonProxy.ButtonProperties} properties - The properties to change. @@ -650,7 +650,7 @@ class TabletButtonProxy : public QObject { Q_INVOKABLE void editProperties(const QVariantMap& properties); signals: - /**jsdoc + /*@jsdoc * Triggered when the button is clicked. * @function TabletButtonProxy#clicked * @returns {Signal} @@ -668,7 +668,7 @@ class TabletButtonProxy : public QObject { */ void clicked(); - /**jsdoc + /*@jsdoc * Triggered when a button's properties are changed. * @function TabletButtonProxy#propertiesChanged * @returns {Signal} diff --git a/libraries/ui/src/ui/ToolbarScriptingInterface.h b/libraries/ui/src/ui/ToolbarScriptingInterface.h index 39695aca2ee..513d3edbaea 100644 --- a/libraries/ui/src/ui/ToolbarScriptingInterface.h +++ b/libraries/ui/src/ui/ToolbarScriptingInterface.h @@ -37,7 +37,7 @@ class ToolbarButtonProxy : public QmlWrapper { Q_DECLARE_METATYPE(ToolbarButtonProxy*); -/**jsdoc +/*@jsdoc * An instance of a toolbar. * *

Retrieve an existing toolbar or create a new toolbar using {@link Toolbars.getToolbar}.

@@ -54,7 +54,7 @@ class ToolbarProxy : public QmlWrapper { public: ToolbarProxy(QObject* qmlObject, QObject* parent = nullptr); - /**jsdoc + /*@jsdoc * Currently doesn't work. * @function ToolbarProxy#addButton * @param {object} properties - Button properties @@ -63,7 +63,7 @@ class ToolbarProxy : public QmlWrapper { */ Q_INVOKABLE ToolbarButtonProxy* addButton(const QVariant& properties); - /**jsdoc + /*@jsdoc * Currently doesn't work. * @function ToolbarProxy#removeButton * @param {string} name - Button name. @@ -74,7 +74,7 @@ class ToolbarProxy : public QmlWrapper { // QmlWrapper methods. - /**jsdoc + /*@jsdoc * Sets the value of a toolbar property. A property is added to the toolbar if the named property doesn't already * exist. * @function ToolbarProxy#writeProperty @@ -83,7 +83,7 @@ class ToolbarProxy : public QmlWrapper { * @param {object} propertyValue - The value of the property. */ - /**jsdoc + /*@jsdoc * Sets the values of toolbar properties. A property is added to the toolbar if a named property doesn't already * exist. * @function ToolbarProxy#writeProperties @@ -91,14 +91,14 @@ class ToolbarProxy : public QmlWrapper { * implementation of the toolbar. */ - /**jsdoc + /*@jsdoc * Gets the value of a toolbar property. * @function ToolbarProxy#readProperty * @param {string} propertyName - The property name. Toolbar properties are those in the QML implementation of the toolbar. * @returns {object} The value of the property if the property name is valid, otherwise undefined. */ - /**jsdoc + /*@jsdoc * Gets the values of toolbar properties. * @function ToolbarProxy#readProperties * @param {string[]} propertyList - The names of the properties to get the values of. Toolbar properties are those in the @@ -110,7 +110,7 @@ class ToolbarProxy : public QmlWrapper { Q_DECLARE_METATYPE(ToolbarProxy*); -/**jsdoc +/*@jsdoc * The Toolbars API provides facilities to work with the system or other toolbar. * *

See also the {@link Tablet} API for use of the system tablet and toolbar in desktop and HMD modes.

@@ -125,7 +125,7 @@ class ToolbarScriptingInterface : public QObject, public Dependency { Q_OBJECT public: - /**jsdoc + /*@jsdoc * Gets an instance of a toolbar. A new toolbar is created if one with the specified name doesn't already exist. * @function Toolbars.getToolbar * @param {string} name - A unique name that identifies the toolbar. @@ -134,7 +134,7 @@ class ToolbarScriptingInterface : public QObject, public Dependency { Q_INVOKABLE ToolbarProxy* getToolbar(const QString& toolbarId); signals: - /**jsdoc + /*@jsdoc * Triggered when the visibility of a toolbar changes. * @function Toolbars.toolbarVisibleChanged * @param {boolean} isVisible - true if the toolbar is visible, false if it is hidden. diff --git a/plugins/JSAPIExample/src/JSAPIExample.cpp b/plugins/JSAPIExample/src/JSAPIExample.cpp index 05814e25817..500d2b22f90 100644 --- a/plugins/JSAPIExample/src/JSAPIExample.cpp +++ b/plugins/JSAPIExample/src/JSAPIExample.cpp @@ -80,7 +80,7 @@ namespace REPLACE_ME_WITH_UNIQUE_NAME { // (note: Qt script engines automatically look for a ".toString" method on native classes when coercing values to strings) QString toString() const { return QString("[%1 version=%2]").arg(objectName()).arg(_version); } - /**jsdoc + /*@jsdoc * Returns current microseconds (usecs) since Epoch. note: 1000usecs == 1ms * @example
* var expected = 1000; @@ -92,7 +92,7 @@ namespace REPLACE_ME_WITH_UNIQUE_NAME { */ QVariant now() const { return usecTimestampNow(); } - /**jsdoc + /*@jsdoc * Example of returning a JS Object key-value map * @example * print(JSON.stringify(JSAPIExample.zip(["a","b"], [1,2])); // { "a": 1, "b": 2 } @@ -105,7 +105,7 @@ namespace REPLACE_ME_WITH_UNIQUE_NAME { return out; } - /**jsdoc + /*@jsdoc * Example of returning a JS Array result * @example * print(JSON.stringify(JSAPIExample.values({ "a": 1, "b": 2 }))); // [1,2] @@ -115,7 +115,7 @@ namespace REPLACE_ME_WITH_UNIQUE_NAME { return values; } - /**jsdoc + /*@jsdoc * Another example of returning JS Array data * @example * print(JSON.stringify(JSAPIExample.seq(1,5)));// [1,2,3,4,5] @@ -128,7 +128,7 @@ namespace REPLACE_ME_WITH_UNIQUE_NAME { return out; } - /**jsdoc + /*@jsdoc * Example of returning arbitrary binary data from C++ (resulting in a JS ArrayBuffer) * see also: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer#Examples * @example diff --git a/plugins/oculus/src/OculusControllerManager.cpp b/plugins/oculus/src/OculusControllerManager.cpp index 4e22b7a2362..8ab31b28c27 100644 --- a/plugins/oculus/src/OculusControllerManager.cpp +++ b/plugins/oculus/src/OculusControllerManager.cpp @@ -414,7 +414,7 @@ void OculusControllerManager::TouchDevice::stopHapticPulse(bool leftHand) { }); } -/**jsdoc +/*@jsdoc *

The Controller.Hardware.OculusTouch object has properties representing the Oculus Rift. The property values * are integer IDs, uniquely identifying each output. Read-only.

*

These outputs can be mapped to actions or functions or Controller.Standard items in a {@link RouteObject} diff --git a/plugins/openvr/src/ViveControllerManager.cpp b/plugins/openvr/src/ViveControllerManager.cpp index 8a8f18e85ff..b6a117f3ac4 100644 --- a/plugins/openvr/src/ViveControllerManager.cpp +++ b/plugins/openvr/src/ViveControllerManager.cpp @@ -1816,7 +1816,7 @@ void ViveControllerManager::InputDevice::setConfigFromString(const QString& valu } } -/**jsdoc +/*@jsdoc *

The Controller.Hardware.Vive object has properties representing the Vive. The property values are integer * IDs, uniquely identifying each output. Read-only.

*

These outputs can be mapped to actions or functions or Controller.Standard items in a {@link RouteObject} diff --git a/screenshare/package-lock.json b/screenshare/package-lock.json index cf1f382ce0b..5146a5b6942 100644 --- a/screenshare/package-lock.json +++ b/screenshare/package-lock.json @@ -783,9 +783,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "http-cache-semantics": { @@ -1330,9 +1330,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" }, "yargs": { "version": "14.2.0", diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js index ed9763875de..614bd5fd597 100644 --- a/scripts/system/create/edit.js +++ b/scripts/system/create/edit.js @@ -113,6 +113,9 @@ var hmdMultiSelectMode = false; var expectingRotateAsClickedSurface = false; var keepSelectedOnNextClick = false; +var copiedPosition; +var copiedRotation; + var cameraManager = new CameraManager(); var grid = new Grid(); @@ -2613,6 +2616,46 @@ var PropertiesTool = function (opts) { Entities.reloadServerScripts(selectionManager.selections[i]); } } + } else if (data.action === "copyPosition") { + if (selectionManager.selections.length === 1) { + selectionManager.saveProperties(); + properties = selectionManager.savedProperties[selectionManager.selections[0]]; + copiedPosition = properties.position; + Window.copyToClipboard(JSON.stringify(copiedPosition)); + } + } else if (data.action === "copyRotation") { + if (selectionManager.selections.length === 1) { + selectionManager.saveProperties(); + properties = selectionManager.savedProperties[selectionManager.selections[0]]; + copiedRotation = properties.rotation; + Window.copyToClipboard(JSON.stringify(copiedRotation)); + } + } else if (data.action === "pastePosition") { + if (copiedPosition !== undefined && selectionManager.selections.length > 0 && SelectionManager.hasUnlockedSelection()) { + selectionManager.saveProperties(); + for (i = 0; i < selectionManager.selections.length; i++) { + Entities.editEntity(selectionManager.selections[i], { + position: copiedPosition + }); + } + pushCommandForSelections(); + selectionManager._update(false, this); + } else { + audioFeedback.rejection(); + } + } else if (data.action === "pasteRotation") { + if (copiedRotation !== undefined && selectionManager.selections.length > 0 && SelectionManager.hasUnlockedSelection()) { + selectionManager.saveProperties(); + for (i = 0; i < selectionManager.selections.length; i++) { + Entities.editEntity(selectionManager.selections[i], { + rotation: copiedRotation + }); + } + pushCommandForSelections(); + selectionManager._update(false, this); + } else { + audioFeedback.rejection(); + } } } else if (data.type === "propertiesPageReady") { updateSelections(true); diff --git a/scripts/system/create/entityProperties/html/js/entityProperties.js b/scripts/system/create/entityProperties/html/js/entityProperties.js index 06ffbc2f99c..5c6806653d4 100644 --- a/scripts/system/create/entityProperties/html/js/entityProperties.js +++ b/scripts/system/create/entityProperties/html/js/entityProperties.js @@ -1353,6 +1353,12 @@ const GROUPS = [ propertyID: "localPosition", spaceMode: PROPERTY_SPACE_MODE.LOCAL, }, + { + type: "buttons", + buttons: [ { id: "copyPosition", label: "Copy Position", className: "secondary", onClick: copyPositionProperty }, + { id: "pastePosition", label: "Paste Position", className: "secondary", onClick: pastePositionProperty } ], + propertyID: "copyPastePosition" + }, { label: "Rotation", type: "vec3", @@ -1375,6 +1381,12 @@ const GROUPS = [ propertyID: "localRotation", spaceMode: PROPERTY_SPACE_MODE.LOCAL, }, + { + type: "buttons", + buttons: [ { id: "copyRotation", label: "Copy Rotation", className: "secondary", onClick: copyRotationProperty }, + { id: "pasteRotation", label: "Paste Rotation", className: "secondary", onClick: pasteRotationProperty } ], + propertyID: "copyPasteRotation" + }, { label: "Dimensions", type: "vec3", @@ -1852,6 +1864,24 @@ function setPropertyVisibility(property, visible) { property.elContainer.style.display = visible ? null : "none"; } +function setCopyPastePositionAndRotationAvailability (selectionLength, islocked) { + if (selectionLength === 1) { + $('#property-copyPastePosition-button-copyPosition').attr('disabled', false); + $('#property-copyPasteRotation-button-copyRotation').attr('disabled', false); + } else { + $('#property-copyPastePosition-button-copyPosition').attr('disabled', true); + $('#property-copyPasteRotation-button-copyRotation').attr('disabled', true); + } + + if (selectionLength > 0 && !islocked) { + $('#property-copyPastePosition-button-pastePosition').attr('disabled', false); + $('#property-copyPasteRotation-button-pasteRotation').attr('disabled', false); + } else { + $('#property-copyPastePosition-button-pastePosition').attr('disabled', true); + $('#property-copyPasteRotation-button-pasteRotation').attr('disabled', true); + } +} + function resetProperties() { for (let propertyID in properties) { let property = properties[propertyID]; @@ -3217,6 +3247,33 @@ function copySkyboxURLToAmbientURL() { updateProperty("ambientLight.ambientURL", skyboxURL, false); } +function copyPositionProperty() { + EventBridge.emitWebEvent(JSON.stringify({ + type: "action", + action: "copyPosition" + })); +} + +function pastePositionProperty() { + EventBridge.emitWebEvent(JSON.stringify({ + type: "action", + action: "pastePosition" + })); +} + +function copyRotationProperty() { + EventBridge.emitWebEvent(JSON.stringify({ + type: "action", + action: "copyRotation" + })); +} + +function pasteRotationProperty() { + EventBridge.emitWebEvent(JSON.stringify({ + type: "action", + action: "pasteRotation" + })); +} /** * USER DATA FUNCTIONS @@ -3952,7 +4009,7 @@ function handleEntitySelectionUpdate(selections, isPropertiesToolUpdate) { selectedEntityIDs = new Set(selections.map(selection => selection.id)); const multipleSelections = currentSelections.length > 1; const hasSelectedEntityChanged = !areSetsEqual(selectedEntityIDs, previouslySelectedEntityIDs); - + requestZoneList(); if (selections.length === 0) { @@ -3976,6 +4033,8 @@ function handleEntitySelectionUpdate(selections, isPropertiesToolUpdate) { showSaveMaterialDataButton(); showNewJSONMaterialEditorButton(); + setCopyPastePositionAndRotationAvailability (selections.length, true); + disableProperties(); } else { if (!isPropertiesToolUpdate && !hasSelectedEntityChanged && document.hasFocus()) { @@ -4006,10 +4065,12 @@ function handleEntitySelectionUpdate(selections, isPropertiesToolUpdate) { if (lockedMultiValue.isMultiDiffValue || lockedMultiValue.value) { disableProperties(); getPropertyInputElement('locked').removeAttribute('disabled'); + setCopyPastePositionAndRotationAvailability (selections.length, true); } else { enableProperties(); disableSaveUserDataButton(); disableSaveMaterialDataButton(); + setCopyPastePositionAndRotationAvailability (selections.length, false); } const certificateIDMultiValue = getMultiplePropertyValue('certificateID'); diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css index 9b3e862210c..9f7f3290405 100644 --- a/scripts/system/html/css/edit-style.css +++ b/scripts/system/html/css/edit-style.css @@ -463,6 +463,22 @@ input[type=button].white, button.hifi-edit-button.white { background-color: #afafaf; background: linear-gradient(#fff 20%, #afafaf 100%); } +input[type=button].secondary, button.hifi-edit-button.secondary { + font-family: Raleway-Bold; + font-size: 10px; + text-transform: uppercase; + vertical-align: top; + height: 18px; + min-width: 60px; + padding: 0 14px; + margin-right: 6px; + border-radius: 4px; + border: none; + color: #fff; + background-color: #000; + background: linear-gradient(#343434 20%, #000 100%); + cursor: pointer; +} input[type=button]:enabled:hover, button.hifi-edit-button:enabled:hover { background: linear-gradient(#000, #000); diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index 9a51cc8d7c4..5a03331fc6d 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -53,7 +53,7 @@ local message_positions = { local packet_types = { [0] = "Unknown", - [1] = "StunResponse", + [1] = "DomainConnectRequestPending", [2] = "DomainList", [3] = "Ping", [4] = "PingReply", diff --git a/tools/doxygen/Doxyfile b/tools/doxygen/Doxyfile new file mode 100644 index 00000000000..ac8136a0c53 --- /dev/null +++ b/tools/doxygen/Doxyfile @@ -0,0 +1,2665 @@ +# Doxyfile 1.9.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "Vircadia C++ Documentation" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = vircadia.png + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../../build/docs + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which efficively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= NO + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ../../assignment-client \ + ../../domain-server \ + ../../ice-server \ + ../../interface \ + ../../libraries \ + ../../plugins + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), +# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, +# *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to +# YES then doxygen will add the directory of each input to the include path. +# The default value is: YES. + +CLANG_ADD_INC_PATHS = YES + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = NO + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: +# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = YES + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /

Measure current setTimeout accuracy."zip" a list of keys and corresponding values to form key-value mapemulate Object.values(keyValues)generate an integer sequence (inclusive of [from, to])return compressed/decompressed versions of the input data