mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-09 11:12:40 +02:00
Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com".
This commit is contained in:
parent
78ab7a628d
commit
90aaa85089
21 changed files with 450 additions and 448 deletions
|
@ -24,7 +24,7 @@
|
|||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span class='step-description'>
|
||||
<a target='_blank' href='https://docs.vircadia.dev/create-and-explore/start-working-in-your-sandbox/place-names'>Place names</a> are similar to web addresses. Users who want to visit your domain can
|
||||
<a target='_blank' href='https://docs.vircadia.com/create-and-explore/start-working-in-your-sandbox/place-names'>Place names</a> are similar to web addresses. Users who want to visit your domain can
|
||||
enter its Place Name in Vircadia's Interface. You can choose a Place Name for your domain.</br>
|
||||
Your domain may also be reachable by <b>IP address</b>.
|
||||
</span>
|
||||
|
@ -196,8 +196,8 @@
|
|||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span class='step-description'>
|
||||
Would you like use automatic threading for your server's avatars and audio?
|
||||
If you are hosting this server on your local computer and it is not very powerful, then consider leaving this off because the server will use more resources if it is being utilized extensively, thereby slowing down your computer.
|
||||
Would you like use automatic threading for your server's avatars and audio?
|
||||
If you are hosting this server on your local computer and it is not very powerful, then consider leaving this off because the server will use more resources if it is being utilized extensively, thereby slowing down your computer.
|
||||
If you are running this server on a powerful system and intend to have a large audience, then turn this setting on.
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
position: absolute;
|
||||
top: 0; left: 0; bottom: 0; right: 0;
|
||||
}
|
||||
|
||||
|
||||
#image_button {
|
||||
position: absolute;
|
||||
width: 463;
|
||||
|
@ -77,13 +77,13 @@
|
|||
var handControllerImageURL = null;
|
||||
var index = 0;
|
||||
var count = 3;
|
||||
var handControllerRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#vr-controls";
|
||||
var keyboardRefURL = "https://docs.vircadia.dev/explore/get-started/desktop.html#movement-controls";
|
||||
var gamepadRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#gamepad";
|
||||
var handControllerRefURL = "https://docs.vircadia.com/explore/get-started/vr-controls.html#vr-controls";
|
||||
var keyboardRefURL = "https://docs.vircadia.com/explore/get-started/desktop.html#movement-controls";
|
||||
var gamepadRefURL = "https://docs.vircadia.com/explore/get-started/vr-controls.html#gamepad";
|
||||
|
||||
function showKbm() {
|
||||
document.getElementById("main_image").setAttribute("src", "img/tablet-help-keyboard.jpg");
|
||||
document.getElementById("image_button").setAttribute("href", keyboardRefURL);
|
||||
document.getElementById("image_button").setAttribute("href", keyboardRefURL);
|
||||
}
|
||||
|
||||
function showHandControllers() {
|
||||
|
@ -107,7 +107,7 @@
|
|||
}
|
||||
|
||||
function chooseIcon() {
|
||||
switch (index)
|
||||
switch (index)
|
||||
{
|
||||
case 0:
|
||||
showGamepad();
|
||||
|
|
|
@ -229,7 +229,7 @@ Item {
|
|||
}
|
||||
|
||||
function openDocs() {
|
||||
Qt.openUrlExternally("https://docs.vircadia.dev/create/avatars/package-avatar.html");
|
||||
Qt.openUrlExternally("https://docs.vircadia.com/create/avatars/package-avatar.html");
|
||||
}
|
||||
|
||||
function openVideo() {
|
||||
|
|
|
@ -150,7 +150,7 @@ Item {
|
|||
id: uploadingItemFooter
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.topMargin: 1
|
||||
anchors.topMargin: 1
|
||||
visible: !!root.uploader && !root.finished && root.uploader.state === 4
|
||||
|
||||
color: "#00B4EF"
|
||||
|
@ -205,7 +205,7 @@ Item {
|
|||
|
||||
function showConfirmUploadPopup() {
|
||||
popup.titleText = 'Overwrite Avatar';
|
||||
popup.bodyText = 'You have previously uploaded the avatar file from this project.' +
|
||||
popup.bodyText = 'You have previously uploaded the avatar file from this project.' +
|
||||
' This will overwrite that avatar and you won’t be able to access the older version.';
|
||||
|
||||
popup.button1text = 'CREATE NEW';
|
||||
|
@ -318,7 +318,7 @@ Item {
|
|||
text: "This item is not for sale yet, <a href='#'>learn more</a>."
|
||||
|
||||
onLinkActivated: {
|
||||
Qt.openUrlExternally("https://docs.vircadia.dev/sell/add-item/upload-avatar.html");
|
||||
Qt.openUrlExternally("https://docs.vircadia.com/sell/add-item/upload-avatar.html");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ MessageBox {
|
|||
popup.onButton2Clicked = callback;
|
||||
popup.titleText = 'Specify Avatar URL'
|
||||
popup.bodyText = 'This will not overwrite your existing favorite if you are wearing one.<br>' +
|
||||
'<a href="https://docs.vircadia.dev/create/avatars/create-avatars.html">' +
|
||||
'<a href="https://docs.vircadia.com/create/avatars/create-avatars.html">' +
|
||||
'Learn to make a custom avatar by opening this link on your desktop.' +
|
||||
'</a>'
|
||||
popup.inputText.visible = true;
|
||||
|
|
|
@ -196,7 +196,7 @@ Rectangle {
|
|||
root.availableUpdatesReceived = false;
|
||||
root.currentUpdatesPage = 1;
|
||||
Commerce.getAvailableUpdates(root.itemId);
|
||||
|
||||
|
||||
var MARKETPLACE_API_URL = Account.metaverseServerURL + "/api/v1/marketplace/items/";
|
||||
http.request({uri: MARKETPLACE_API_URL + root.itemId}, updateCheckoutQMLFromHTTP);
|
||||
}
|
||||
|
@ -327,7 +327,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HifiCommerceCommon.FirstUseTutorial {
|
||||
id: firstUseTutorial;
|
||||
|
@ -374,7 +374,7 @@ Rectangle {
|
|||
hoverEnabled: true;
|
||||
propagateComposedEvents: false;
|
||||
}
|
||||
|
||||
|
||||
AnimatedImage {
|
||||
id: loadingImage;
|
||||
source: "../common/images/loader-blue.gif"
|
||||
|
@ -397,7 +397,7 @@ Rectangle {
|
|||
color: hifi.colors.black;
|
||||
size: 28;
|
||||
}
|
||||
|
||||
|
||||
HifiControlsUit.Separator {
|
||||
id: separator;
|
||||
colorScheme: 1;
|
||||
|
@ -475,7 +475,7 @@ Rectangle {
|
|||
}
|
||||
FiraSansSemiBold {
|
||||
id: itemPriceText;
|
||||
text: isTradingIn ? "FREE\nUPDATE" :
|
||||
text: isTradingIn ? "FREE\nUPDATE" :
|
||||
(isStocking ? "Free for creator" :
|
||||
((root.itemPrice === -1) ? "--" : ((root.itemPrice > 0) ? root.itemPrice : "FREE")));
|
||||
// Text size
|
||||
|
@ -491,7 +491,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
HifiControlsUit.Separator {
|
||||
id: separator2;
|
||||
colorScheme: 1;
|
||||
|
@ -728,7 +728,7 @@ Rectangle {
|
|||
sendToScript({method: 'checkout_itemLinkClicked', itemId: itemId});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Rectangle {
|
||||
id: rezzedNotifContainer;
|
||||
z: 997;
|
||||
|
@ -778,7 +778,7 @@ Rectangle {
|
|||
lightboxPopup.bodyText = "Rezzing this content set will replace the existing environment and all of the items in this domain. " +
|
||||
"If you want to save the state of the content in this domain, create a backup before proceeding.<br><br>" +
|
||||
"For more information about backing up and restoring content, " +
|
||||
"<a href='https://docs.vircadia.dev/host/maintain-domain/backup-domain.html'>" +
|
||||
"<a href='https://docs.vircadia.com/host/maintain-domain/backup-domain.html'>" +
|
||||
"click here to open info on your desktop browser.";
|
||||
lightboxPopup.button1text = "CANCEL";
|
||||
lightboxPopup.button1method = function() {
|
||||
|
@ -1069,7 +1069,7 @@ Rectangle {
|
|||
buyButton.color = hifi.buttons.red;
|
||||
root.shouldBuyWithControlledFailure = true;
|
||||
} else {
|
||||
buyButton.text = (root.isCertified ?
|
||||
buyButton.text = (root.isCertified ?
|
||||
(dataReady ?
|
||||
(root.alreadyOwned ? "Buy Another" : "Buy") :
|
||||
"--") :
|
||||
|
@ -1079,7 +1079,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
HifiCommon.RootHttpRequest {
|
||||
id: http;
|
||||
|
@ -1211,7 +1211,7 @@ Rectangle {
|
|||
// Else if the user HAS NOT selected a specific edition to update...
|
||||
} else {
|
||||
handleBuyAgainLogic();
|
||||
}
|
||||
}
|
||||
// If the user IS NOT on the checkout page for the updated verison of an owned item...
|
||||
// (i.e. they are checking out an item "normally")
|
||||
} else {
|
||||
|
|
|
@ -115,7 +115,7 @@ Rectangle {
|
|||
Component.onCompleted: {
|
||||
isStandalone = PlatformInfo.isStandalone();
|
||||
}
|
||||
|
||||
|
||||
HifiCommerceCommon.CommerceLightbox {
|
||||
id: lightboxPopup;
|
||||
z: 999;
|
||||
|
@ -174,7 +174,7 @@ Rectangle {
|
|||
Commerce.getWalletStatus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Item {
|
||||
id: installedAppsContainer;
|
||||
z: 998;
|
||||
|
@ -210,7 +210,7 @@ Rectangle {
|
|||
delegate: Item {
|
||||
width: parent.width;
|
||||
height: 40;
|
||||
|
||||
|
||||
RalewayRegular {
|
||||
text: model.appUrl;
|
||||
// Text size
|
||||
|
@ -251,7 +251,7 @@ Rectangle {
|
|||
Commerce.openApp(model.appUrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
HiFiGlyphs {
|
||||
id: uninstallGlyph;
|
||||
text: hifi.glyphs.close;
|
||||
|
@ -292,7 +292,7 @@ Rectangle {
|
|||
height: 40;
|
||||
text: "SIDELOAD APP FROM LOCAL DISK";
|
||||
onClicked: {
|
||||
Window.browseChanged.connect(onFileOpenChanged);
|
||||
Window.browseChanged.connect(onFileOpenChanged);
|
||||
Window.browseAsync("Locate your app's .app.json file", "", "*.app.json");
|
||||
}
|
||||
}
|
||||
|
@ -602,7 +602,7 @@ Rectangle {
|
|||
lightboxPopup.bodyText = "Rezzing this content set will replace the existing environment and all of the items in this domain. " +
|
||||
"If you want to save the state of the content in this domain, create a backup before proceeding.<br><br>" +
|
||||
"For more information about backing up and restoring content, " +
|
||||
"<a href='https://docs.vircadia.dev/host/maintain-domain/backup-domain.html'>" +
|
||||
"<a href='https://docs.vircadia.com/host/maintain-domain/backup-domain.html'>" +
|
||||
"click here to open info on your desktop browser.";
|
||||
lightboxPopup.button1text = "CANCEL";
|
||||
lightboxPopup.button1method = function() {
|
||||
|
@ -823,7 +823,7 @@ Rectangle {
|
|||
anchors.right: parent.right;
|
||||
height: 75;
|
||||
color: "#B5EAFF";
|
||||
|
||||
|
||||
Rectangle {
|
||||
id: updatesAvailableGlyph;
|
||||
anchors.verticalCenter: parent.verticalCenter;
|
||||
|
@ -991,7 +991,7 @@ Rectangle {
|
|||
//
|
||||
// FUNCTION DEFINITIONS START
|
||||
//
|
||||
|
||||
|
||||
function updateCurrentlyWornWearables(wearables) {
|
||||
for (var i = 0; i < purchasesModel.count; i++) {
|
||||
for (var j = 0; j < wearables.length; j++) {
|
||||
|
|
|
@ -207,7 +207,7 @@ At the moment, there is currently no way to convert HFC to other currencies. Sta
|
|||
if (link === "#privateKeyPath") {
|
||||
Qt.openUrlExternally("file:///" + root.keyFilePath.substring(0, root.keyFilePath.lastIndexOf('/')));
|
||||
} else if (link === "#blockchain") {
|
||||
Qt.openUrlExternally("https://docs.vircadia.dev/explore/shop.html");
|
||||
Qt.openUrlExternally("https://docs.vircadia.com/explore/shop.html");
|
||||
} else if (link === "#bank") {
|
||||
if ((Account.metaverseServerURL).toString().indexOf("staging") >= 0) {
|
||||
Qt.openUrlExternally("hifi://hifiqa-master-metaverse-staging"); // So that we can test in staging.
|
||||
|
|
|
@ -1972,7 +1972,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
|||
loadSettings();
|
||||
|
||||
updateVerboseLogging();
|
||||
|
||||
|
||||
setCachebustRequire();
|
||||
|
||||
// Make sure we don't time out during slow operations at startup
|
||||
|
@ -2624,7 +2624,7 @@ void Application::setCachebustRequire() {
|
|||
return;
|
||||
}
|
||||
bool enable = menu->isOptionChecked(MenuOption::CachebustRequire);
|
||||
|
||||
|
||||
Setting::Handle<bool>{ CACHEBUST_SCRIPT_REQUIRE_SETTING_NAME, false }.set(enable);
|
||||
}
|
||||
|
||||
|
@ -3246,7 +3246,7 @@ void Application::initializeUi() {
|
|||
safeURLS += settingsSafeURLS;
|
||||
|
||||
// END PULL SAFEURLS FROM INTERFACE.JSON Settings
|
||||
|
||||
|
||||
if (AUTHORIZED_EXTERNAL_QML_SOURCE.isParentOf(url)) {
|
||||
return true;
|
||||
} else {
|
||||
|
@ -4022,7 +4022,7 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
|
|||
DependencyManager::get<LocationBookmarks>()->setHomeLocationToAddress(NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS);
|
||||
Menu::getInstance()->triggerOption(MenuOption::HomeLocation);
|
||||
}
|
||||
|
||||
|
||||
if (!_overrideEntry) {
|
||||
DependencyManager::get<AddressManager>()->goToEntry();
|
||||
sentTo = SENT_TO_ENTRY;
|
||||
|
@ -7198,7 +7198,7 @@ void Application::updateWindowTitle() const {
|
|||
QString buildVersion = " - Vircadia - "
|
||||
+ (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build"))
|
||||
+ " " + applicationVersion();
|
||||
|
||||
|
||||
if (BuildInfo::RELEASE_NAME != "") {
|
||||
buildVersion += " - " + BuildInfo::RELEASE_NAME;
|
||||
}
|
||||
|
@ -7901,7 +7901,7 @@ bool Application::askToReplaceDomainContent(const QString& url) {
|
|||
static const QString infoText = simpleWordWrap("Your domain's content will be replaced with a new content set. "
|
||||
"If you want to save what you have now, create a backup before proceeding. For more information about backing up "
|
||||
"and restoring content, visit the documentation page at: ", MAX_CHARACTERS_PER_LINE) +
|
||||
"\nhttps://docs.vircadia.dev/host/maintain-domain/backup-domain.html";
|
||||
"\nhttps://docs.vircadia.com/host/maintain-domain/backup-domain.html";
|
||||
|
||||
ModalDialogListener* dig = OffscreenUi::asyncQuestion("Are you sure you want to replace this domain's content set?",
|
||||
infoText, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
|
||||
|
|
|
@ -55,7 +55,7 @@ static QStringList HAND_MAPPING_SUFFIXES = {
|
|||
"HandThumb1",
|
||||
};
|
||||
|
||||
const QUrl PACKAGE_AVATAR_DOCS_BASE_URL = QUrl("https://docs.vircadia.dev/create/avatars/package-avatar.html");
|
||||
const QUrl PACKAGE_AVATAR_DOCS_BASE_URL = QUrl("https://docs.vircadia.com/create/avatars/package-avatar.html");
|
||||
|
||||
AvatarDoctor::AvatarDoctor(const QUrl& avatarFSTFileUrl) :
|
||||
_avatarFSTFileUrl(avatarFSTFileUrl) {
|
||||
|
@ -71,7 +71,7 @@ void AvatarDoctor::startDiagnosing() {
|
|||
return;
|
||||
}
|
||||
_isDiagnosing = true;
|
||||
|
||||
|
||||
_errors.clear();
|
||||
|
||||
_externalTextureCount = 0;
|
||||
|
@ -107,7 +107,7 @@ void AvatarDoctor::startDiagnosing() {
|
|||
if (avatarModel.joints.length() > NETWORKED_JOINTS_LIMIT) {
|
||||
addError(tr( "Avatar has over %n bones.", "", NETWORKED_JOINTS_LIMIT), "maximum-bone-limit");
|
||||
}
|
||||
// Avatar does not have Hips bone mapped
|
||||
// Avatar does not have Hips bone mapped
|
||||
if (!jointNames.contains("Hips")) {
|
||||
addError("Hips are not mapped.", "hips-not-mapped");
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ void AvatarDoctor::startDiagnosing() {
|
|||
for (const auto& jointVariant: jointNameMappings.values()) {
|
||||
jointValues << jointVariant.toString();
|
||||
}
|
||||
|
||||
|
||||
const auto& uniqueJointValues = jointValues.toSet();
|
||||
for (const auto& jointName: uniqueJointValues) {
|
||||
if (jointValues.count(jointName) > 1) {
|
||||
|
@ -279,7 +279,7 @@ void AvatarDoctor::startDiagnosing() {
|
|||
} else {
|
||||
connect(materialMappingResource.data(), &NetworkTexture::finished, this,
|
||||
[materialMappingHandled](bool success) mutable {
|
||||
|
||||
|
||||
materialMappingHandled();
|
||||
});
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ void AvatarDoctor::startDiagnosing() {
|
|||
} else {
|
||||
addError("Model file cannot be opened", "missing-file");
|
||||
emit complete(getErrors());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AvatarDoctor::diagnoseTextures() {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -207,7 +207,7 @@ public:
|
|||
/*@jsdoc
|
||||
* Gets the default rotation of a joint (in the current avatar) relative to its parent.
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function MyAvatar.getDefaultJointRotation
|
||||
* @param {number} index - The joint index.
|
||||
* @returns {Quat} The default rotation of the joint if the joint index is valid, otherwise {@link Quat(0)|Quat.IDENTITY}.
|
||||
|
@ -218,10 +218,10 @@ public:
|
|||
* Gets the default translation of a joint (in the current avatar) relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function MyAvatar.getDefaultJointTranslation
|
||||
* @param {number} index - The joint index.
|
||||
* @returns {Vec3} The default translation of the joint (in model coordinates) if the joint index is valid, otherwise
|
||||
* @returns {Vec3} The default translation of the joint (in model coordinates) if the joint index is valid, otherwise
|
||||
* {@link Vec3(0)|Vec3.ZERO}.
|
||||
*/
|
||||
Q_INVOKABLE virtual glm::vec3 getDefaultJointTranslation(int index) const;
|
||||
|
@ -283,7 +283,7 @@ public:
|
|||
|
||||
// world-space to avatar-space rigconversion functions
|
||||
/*@jsdoc
|
||||
* Transforms a position in world coordinates to a position in a joint's coordinates, or avatar coordinates if no joint is
|
||||
* 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
|
||||
* @param {Vec3} position - The position in world coordinates.
|
||||
|
@ -293,7 +293,7 @@ public:
|
|||
Q_INVOKABLE glm::vec3 worldToJointPoint(const glm::vec3& position, const int jointIndex = -1) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Transforms a direction in world coordinates to a direction in a joint's coordinates, or avatar coordinates if no joint
|
||||
* 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
|
||||
* @param {Vec3} direction - The direction in world coordinates.
|
||||
|
@ -303,7 +303,7 @@ public:
|
|||
Q_INVOKABLE glm::vec3 worldToJointDirection(const glm::vec3& direction, const int jointIndex = -1) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Transforms a rotation in world coordinates to a rotation in a joint's coordinates, or avatar coordinates if no joint is
|
||||
* 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
|
||||
* @param {Quat} rotation - The rotation in world coordinates.
|
||||
|
@ -313,7 +313,7 @@ public:
|
|||
Q_INVOKABLE glm::quat worldToJointRotation(const glm::quat& rotation, const int jointIndex = -1) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Transforms a position in a joint's coordinates, or avatar coordinates if no joint is specified, to a position in world
|
||||
* 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
|
||||
* @param {Vec3} position - The position in joint coordinates, or avatar coordinates if no joint is specified.
|
||||
|
@ -323,7 +323,7 @@ public:
|
|||
Q_INVOKABLE glm::vec3 jointToWorldPoint(const glm::vec3& position, const int jointIndex = -1) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Transforms a direction in a joint's coordinates, or avatar coordinates if no joint is specified, to a direction in world
|
||||
* 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
|
||||
* @param {Vec3} direction - The direction in joint coordinates, or avatar coordinates if no joint is specified.
|
||||
|
@ -333,7 +333,7 @@ public:
|
|||
Q_INVOKABLE glm::vec3 jointToWorldDirection(const glm::vec3& direction, const int jointIndex = -1) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Transforms a rotation in a joint's coordinates, or avatar coordinates if no joint is specified, to a rotation in world
|
||||
* 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
|
||||
* @param {Quat} rotation - The rotation in joint coordinates, or avatar coordinates if no joint is specified.
|
||||
|
@ -351,7 +351,7 @@ public:
|
|||
virtual int parseDataFromBuffer(const QByteArray& buffer) override;
|
||||
|
||||
/*@jsdoc
|
||||
* Sets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
|
||||
* Sets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
|
||||
* with an offset of <code>{ x: 0, y: 0.1, z: 0 }</code>, your avatar will appear to be raised off the ground slightly.
|
||||
* @function MyAvatar.setSkeletonOffset
|
||||
* @param {Vec3} offset - The skeleton offset to set.
|
||||
|
@ -367,7 +367,7 @@ public:
|
|||
Q_INVOKABLE void setSkeletonOffset(const glm::vec3& offset);
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
|
||||
* Gets the offset applied to the current avatar. The offset adjusts the position that the avatar is rendered. For example,
|
||||
* with an offset of <code>{ x: 0, y: 0.1, z: 0 }</code>, your avatar will appear to be raised off the ground slightly.
|
||||
* @function MyAvatar.getSkeletonOffset
|
||||
* @returns {Vec3} The current skeleton offset.
|
||||
|
@ -452,7 +452,7 @@ public:
|
|||
/*@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
|
||||
* @param {Uuid} parentID - The ID of the entity or avatar that the avatar should be parented to. Set to
|
||||
* {@link Uuid(0)|Uuid.NULL} to unparent.
|
||||
*/
|
||||
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
|
||||
|
@ -461,17 +461,17 @@ public:
|
|||
/*@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. <code>65535</code> or
|
||||
* @returns {number} The joint of the entity or avatar that the avatar is parented to. <code>65535</code> or
|
||||
* <code>-1</code> if parented to the entity or avatar's position and orientation rather than a joint.
|
||||
*/
|
||||
// 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
|
||||
* Sets the joint of the entity or avatar that the avatar is parented to.
|
||||
* Sets the joint of the entity or avatar that the avatar is parented to.
|
||||
* @function MyAvatar.setParentJointIndex
|
||||
* @param {number} parentJointIndex - The joint of the entity or avatar that the avatar should be parented to. Use
|
||||
* <code>65535</code> or <code>-1</code> to parent to the entity or avatar's position and orientation rather than a
|
||||
* <code>65535</code> or <code>-1</code> to parent to the entity or avatar's position and orientation rather than a
|
||||
* joint.
|
||||
*/
|
||||
// This calls through to the SpatiallyNestable versions, but is here to expose these to JavaScript.
|
||||
|
@ -557,7 +557,7 @@ public:
|
|||
|
||||
signals:
|
||||
/*@jsdoc
|
||||
* Triggered when the avatar's target scale is changed. The target scale is the desired scale of the avatar without any
|
||||
* 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
|
||||
* @param {number} targetScale - The avatar's target scale.
|
||||
|
@ -758,7 +758,7 @@ protected:
|
|||
|
||||
static void metaBlendshapeOperator(render::ItemID renderItemID, int blendshapeNumber, const QVector<BlendshapeOffset>& blendshapeOffsets,
|
||||
const QVector<int>& blendedMeshSizes, const render::ItemIDs& subItemIDs);
|
||||
|
||||
|
||||
std::vector<MultiSphereShape> _multiSphereShapes;
|
||||
AABox _fitBoundingBox;
|
||||
void clearAvatarGrabData(const QUuid& grabID) override;
|
||||
|
|
|
@ -87,10 +87,10 @@ public slots:
|
|||
/*@jsdoc
|
||||
* Gets the default rotation of a joint in the avatar relative to its parent.
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function ScriptAvatar.getDefaultJointRotation
|
||||
* @param {number} index - The joint index.
|
||||
* @returns {Quat} The default rotation of the joint if avatar data are available and the joint index is valid, otherwise
|
||||
* @returns {Quat} The default rotation of the joint if avatar data are available and the joint index is valid, otherwise
|
||||
* {@link Quat(0)|Quat.IDENTITY}.
|
||||
*/
|
||||
glm::quat getDefaultJointRotation(int index) const;
|
||||
|
@ -99,7 +99,7 @@ public slots:
|
|||
* Gets the default translation of a joint in the avatar relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function ScriptAvatar.getDefaultJointTranslation
|
||||
* @param {number} index - The joint index.
|
||||
* @returns {Vec3} The default translation of the joint (in model coordinates) if avatar data are available and the joint
|
||||
|
@ -120,7 +120,7 @@ public slots:
|
|||
* Gets the position of a joint in the avatar.
|
||||
* @function ScriptAvatar.getJointPosition
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Vec3} The position of the joint in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
|
||||
* @returns {Vec3} The position of the joint in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
|
||||
* available.
|
||||
*/
|
||||
glm::vec3 getJointPosition(int index) const;
|
||||
|
@ -154,7 +154,7 @@ public slots:
|
|||
/*@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
|
||||
* @returns {Uuid} The ID of the entity or avatar that the avatar is parented to. {@link Uuid(0)|Uuid.NULL} if not parented
|
||||
* or avatar data aren't available.
|
||||
*/
|
||||
QUuid getParentID() const;
|
||||
|
@ -163,7 +163,7 @@ public slots:
|
|||
* 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. <code>65535</code> or
|
||||
* <code>-1</code> if parented to the entity or avatar's position and orientation rather than a joint, or avatar data
|
||||
* <code>-1</code> if parented to the entity or avatar's position and orientation rather than a joint, or avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
quint16 getParentJointIndex() const;
|
||||
|
@ -189,7 +189,7 @@ public slots:
|
|||
/*@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
|
||||
* @returns {Vec3} The position of the left palm in world coordinates, or {@link Vec3(0)|Vec3.ZERO} if avatar data aren't
|
||||
* available.
|
||||
*/
|
||||
glm::vec3 getLeftPalmPosition() const;
|
||||
|
@ -197,7 +197,7 @@ public slots:
|
|||
/*@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
|
||||
* @returns {Quat} The rotation of the left palm in world coordinates, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
glm::quat getLeftPalmRotation() const;
|
||||
|
|
|
@ -530,23 +530,23 @@ class AvatarData : public QObject, public SpatiallyNestable {
|
|||
* avatar. <em>Read-only.</em>
|
||||
* @property {number} sensorToWorldScale - The scale that transforms dimensions in the user's real world to the avatar's
|
||||
* size in the virtual world. <em>Read-only.</em>
|
||||
* @property {boolean} hasPriority - <code>true</code> if the avatar is in a "hero" zone, <code>false</code> if it isn't.
|
||||
* @property {boolean} hasPriority - <code>true</code> if the avatar is in a "hero" zone, <code>false</code> if it isn't.
|
||||
* <em>Read-only.</em>
|
||||
* @property {boolean} hasScriptedBlendshapes=false - <code>true</code> if blend shapes are controlled by scripted actions,
|
||||
* otherwise <code>false</code>. Set this to <code>true</code> before using the {@link Avatar.setBlendshape} method,
|
||||
* @property {boolean} hasScriptedBlendshapes=false - <code>true</code> if blend shapes are controlled by scripted actions,
|
||||
* otherwise <code>false</code>. Set this to <code>true</code> before using the {@link Avatar.setBlendshape} method,
|
||||
* and set back to <code>false</code> after you no longer want scripted control over the blend shapes.
|
||||
* <p><strong>Note:</strong> This property will automatically be set to <code>true</code> if the controller system has
|
||||
* <p><strong>Note:</strong> This property will automatically be set to <code>true</code> if the controller system has
|
||||
* valid facial blend shape actions.</p>
|
||||
* @property {boolean} hasProceduralBlinkFaceMovement=true - <code>true</code> if avatars blink automatically by animating
|
||||
* facial blend shapes, <code>false</code> if automatic blinking is disabled. Set to <code>false</code> to fully control
|
||||
* @property {boolean} hasProceduralBlinkFaceMovement=true - <code>true</code> if avatars blink automatically by animating
|
||||
* facial blend shapes, <code>false</code> if automatic blinking is disabled. Set to <code>false</code> to fully control
|
||||
* the blink facial blend shapes via the {@link Avatar.setBlendshape} method.
|
||||
* @property {boolean} hasProceduralEyeFaceMovement=true - <code>true</code> if the facial blend shapes for an avatar's eyes
|
||||
* adjust automatically as the eyes move, <code>false</code> if this automatic movement is disabled. Set this property
|
||||
* @property {boolean} hasProceduralEyeFaceMovement=true - <code>true</code> if the facial blend shapes for an avatar's eyes
|
||||
* adjust automatically as the eyes move, <code>false</code> if this automatic movement is disabled. Set this property
|
||||
* to <code>true</code> to prevent the iris from being obscured by the upper or lower lids. Set to <code>false</code> to
|
||||
* fully control the eye blend shapes via the {@link Avatar.setBlendshape} method.
|
||||
* @property {boolean} hasAudioEnabledFaceMovement=true - <code>true</code> if the avatar's mouth blend shapes animate
|
||||
* automatically based on detected microphone input, <code>false</code> if this automatic movement is disabled. Set
|
||||
* this property to <code>false</code> to fully control the mouth facial blend shapes via the
|
||||
* @property {boolean} hasAudioEnabledFaceMovement=true - <code>true</code> if the avatar's mouth blend shapes animate
|
||||
* automatically based on detected microphone input, <code>false</code> if this automatic movement is disabled. Set
|
||||
* this property to <code>false</code> to fully control the mouth facial blend shapes via the
|
||||
* {@link Avatar.setBlendshape} method.
|
||||
*/
|
||||
Q_PROPERTY(glm::vec3 position READ getWorldPosition WRITE setPositionViaScript)
|
||||
|
@ -758,7 +758,7 @@ public:
|
|||
void setDomainMaximumHeight(float domainMaximumHeight);
|
||||
|
||||
/*@jsdoc
|
||||
* Sets the pointing state of the hands to control where the laser emanates from. If the right index finger is pointing, the
|
||||
* 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
|
||||
* @param {HandState} state - The pointing state of the hand.
|
||||
|
@ -787,9 +787,9 @@ public:
|
|||
* Sets a specific joint's rotation and position relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointData
|
||||
* @param {number} index - The index of the joint.
|
||||
|
@ -816,10 +816,10 @@ public:
|
|||
|
||||
/*@jsdoc
|
||||
* Sets a specific joint's rotation relative to its parent.
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointRotation
|
||||
* @param {number} index - The index of the joint.
|
||||
|
@ -831,9 +831,9 @@ public:
|
|||
* Sets a specific joint's translation relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointTranslation
|
||||
* @param {number} index - The index of the joint.
|
||||
|
@ -842,7 +842,7 @@ public:
|
|||
Q_INVOKABLE virtual void setJointTranslation(int index, const glm::vec3& translation);
|
||||
|
||||
/*@jsdoc
|
||||
* Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default
|
||||
* 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.
|
||||
* <p>Note: This is slightly faster than the function variation that specifies the joint name.</p>
|
||||
* @function Avatar.clearJointData
|
||||
|
@ -859,8 +859,8 @@ public:
|
|||
Q_INVOKABLE bool isJointDataValid(int index) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* @function Avatar.getJointRotation
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Quat} The rotation of the joint relative to its parent.
|
||||
|
@ -870,8 +870,8 @@ public:
|
|||
/*@jsdoc
|
||||
* Gets the translation of a joint relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function Avatar.getJointTranslation
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates.
|
||||
|
@ -882,9 +882,9 @@ public:
|
|||
* Sets a specific joint's rotation and position relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointData
|
||||
* @param {string} name - The name of the joint.
|
||||
|
@ -895,10 +895,10 @@ public:
|
|||
|
||||
/*@jsdoc
|
||||
* Sets a specific joint's rotation relative to its parent.
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointRotation
|
||||
* @param {string} name - The name of the joint.
|
||||
|
@ -930,19 +930,19 @@ public:
|
|||
* Sets a specific joint's translation relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>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,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* kinematics, but just for the specified joint. So for example, if you were to procedurally manipulate the finger joints,
|
||||
* the avatar's hand and head would still do inverse kinematics properly. However, as soon as you start to manipulate
|
||||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointTranslation
|
||||
* @param {string} name - The name of the joint.
|
||||
* @param {Vec3} translation - The translation of the joint relative to its parent, in model coordinates.
|
||||
* @example <caption>Stretch your avatar's neck. Depending on the avatar you are using, you will either see a gap between
|
||||
* @example <caption>Stretch your avatar's neck. Depending on the avatar you are using, you will either see a gap between
|
||||
* the head and body or you will see the neck stretched.<br />
|
||||
* <img alt="Avatar with neck stretched" src="https://apidocs.vircadia.dev/images/stretched-neck.png" /></caption>
|
||||
* // Stretch your avatar's neck.
|
||||
* MyAvatar.setJointTranslation("Neck", Vec3.multiply(2, MyAvatar.getJointTranslation("Neck")));
|
||||
*
|
||||
*
|
||||
* // Restore your avatar's neck after 5s.
|
||||
* Script.setTimeout(function () {
|
||||
* MyAvatar.clearJointData("Neck");
|
||||
|
@ -953,7 +953,7 @@ public:
|
|||
Q_INVOKABLE virtual void setJointTranslation(const QString& name, const glm::vec3& translation);
|
||||
|
||||
/*@jsdoc
|
||||
* Clears joint translations and rotations set by script for a specific joint. This restores all motion from the default
|
||||
* 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.
|
||||
* <p>Note: This is slightly slower than the function variation that specifies the joint index.</p>
|
||||
* @function Avatar.clearJointData
|
||||
|
@ -980,8 +980,8 @@ public:
|
|||
Q_INVOKABLE virtual bool isJointDataValid(const QString& name) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* @function Avatar.getJointRotation
|
||||
* @param {string} name - The name of the joint.
|
||||
* @returns {Quat} The rotation of the joint relative to its parent.
|
||||
|
@ -996,7 +996,7 @@ public:
|
|||
* Gets the translation of a joint relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function Avatar.getJointTranslation
|
||||
* @param {number} name - The name of the joint.
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates.
|
||||
|
@ -1010,7 +1010,7 @@ public:
|
|||
/*@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
|
||||
* @returns {Quat[]} The rotations of all joints relative to each's parent. The values are in the same order as the array
|
||||
* returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the <code>Avatar</code> API.
|
||||
* @example <caption>Report the rotations of all your avatar's joints.</caption>
|
||||
* print(JSON.stringify(MyAvatar.getJointRotations()));
|
||||
|
@ -1024,8 +1024,8 @@ public:
|
|||
* model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* @function Avatar.getJointTranslations
|
||||
* @returns {Vec3[]} The translations of all joints relative to each's parent, in model coordinates. The values are in the
|
||||
* same order as the array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the
|
||||
* @returns {Vec3[]} The translations of all joints relative to each's parent, in model coordinates. The values are in the
|
||||
* same order as the array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the
|
||||
* <code>Avatar</code> API.
|
||||
*/
|
||||
Q_INVOKABLE virtual QVector<glm::vec3> getJointTranslations() const;
|
||||
|
@ -1038,7 +1038,7 @@ public:
|
|||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointRotations
|
||||
* @param {Quat[]} jointRotations - The rotations for all joints in the avatar. The values are in the same order as the
|
||||
* @param {Quat[]} jointRotations - The rotations for all joints in the avatar. The values are in the same order as the
|
||||
* array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the <code>Avatar</code> API.
|
||||
* @example <caption>Set your avatar to its default T-pose then rotate its right arm.<br />
|
||||
* <img alt="Avatar in T-pose" src="https://apidocs.vircadia.dev/images/armpose.png" /></caption>
|
||||
|
@ -1051,7 +1051,7 @@ public:
|
|||
* }
|
||||
*
|
||||
* // Get all join rotations.
|
||||
* var jointRotations = MyAvatar.getJointRotations();
|
||||
* var jointRotations = MyAvatar.getJointRotations();
|
||||
*
|
||||
* // Update the rotation of the right arm in the array.
|
||||
* jointRotations[MyAvatar.getJointIndex("RightArm")] = { x: 0.47, y: 0.22, z: -0.02, w: 0.87 };
|
||||
|
@ -1067,9 +1067,9 @@ public:
|
|||
* // Note: If using from the Avatar API, replace all occurrences of "MyAvatar" with "Avatar".
|
||||
*/
|
||||
Q_INVOKABLE virtual void setJointRotations(const QVector<glm::quat>& jointRotations);
|
||||
|
||||
|
||||
/*@jsdoc
|
||||
* Sets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in
|
||||
* Sets the translations of all joints in the current avatar. Each joint's translation is relative to its parent joint, in
|
||||
* model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>Setting joint data completely overrides/replaces all motion from the default animation system including inverse
|
||||
|
@ -1078,14 +1078,14 @@ public:
|
|||
* joints in the inverse kinematics chain, the inverse kinematics might not function as you expect. For example, if you set
|
||||
* the rotation of the elbow, the hand inverse kinematics position won't end up in the right place.</p>
|
||||
* @function Avatar.setJointTranslations
|
||||
* @param {Vec3[]} translations - The translations for all joints in the avatar, in model coordinates. The values are in
|
||||
* the same order as the array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the
|
||||
* @param {Vec3[]} translations - The translations for all joints in the avatar, in model coordinates. The values are in
|
||||
* the same order as the array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the
|
||||
* <code>Avatar</code> API.
|
||||
*/
|
||||
Q_INVOKABLE virtual void setJointTranslations(const QVector<glm::vec3>& jointTranslations);
|
||||
|
||||
/*@jsdoc
|
||||
* Clears all joint translations and rotations that have been set by script. This restores all motion from the default
|
||||
* 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
|
||||
* @example <caption>Set your avatar to it's default T-pose for a while.</caption>
|
||||
|
@ -1107,7 +1107,7 @@ public:
|
|||
Q_INVOKABLE virtual void clearJointsData();
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the joint index for a named joint. The joint index value is the position of the joint in the array returned by
|
||||
* 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 <code>Avatar</code> API.
|
||||
* @function Avatar.getJointIndex
|
||||
* @param {string} name - The name of the joint.
|
||||
|
@ -1133,12 +1133,12 @@ public:
|
|||
|
||||
|
||||
/*@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 <code>hasScriptedBlendshapes</code> to <code>true</code>. When you are done using this API,
|
||||
* set <code>hasScriptedBlendshapes</code> back to <code>false</code> when the animation is complete.
|
||||
* 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 <code>hasScriptedBlendshapes</code> to <code>true</code>. When you are done using this API,
|
||||
* set <code>hasScriptedBlendshapes</code> back to <code>false</code> when the animation is complete.
|
||||
* @function Avatar.setBlendshape
|
||||
* @param {string} name - The name of the blendshape, per the
|
||||
* {@link https://docs.vircadia.dev/create/avatars/avatar-standards.html#blendshapes Avatar Standards}.
|
||||
* @param {string} name - The name of the blendshape, per the
|
||||
* {@link https://docs.vircadia.com/create/avatars/avatar-standards.html#blendshapes Avatar Standards}.
|
||||
* @param {number} value - A value between <code>0.0</code> and <code>1.0</code>.
|
||||
* @example <caption>Open your avatar's mouth wide.</caption>
|
||||
* MyAvatar.hasScriptedBlendshapes = true;
|
||||
|
@ -1160,7 +1160,7 @@ public:
|
|||
|
||||
/*@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
|
||||
* {@link MyAvatar.getAttachmentsVariant} or {@link Avatar.getAttachmentsVariant}, make changes to it, and then want to
|
||||
* update your avatar's attachments per the changed data.
|
||||
* @function Avatar.setAttachmentsVariant
|
||||
* @param {AttachmentData[]} variant - The attachment data defining the models to have attached to your avatar.
|
||||
|
@ -1186,7 +1186,7 @@ public:
|
|||
* @deprecated This function is deprecated and will be removed.
|
||||
*/
|
||||
Q_INVOKABLE virtual void clearAvatarEntity(const QUuid& entityID, bool requiresRemovalFromTree = true);
|
||||
|
||||
|
||||
// FIXME: Rename to clearAvatarEntity() once the API call is removed.
|
||||
virtual void clearAvatarEntityInternal(const QUuid& entityID);
|
||||
|
||||
|
@ -1195,12 +1195,12 @@ public:
|
|||
QList<QUuid> getAvatarEntityIDs() const;
|
||||
|
||||
/*@jsdoc
|
||||
* Enables blend shapes set using {@link Avatar.setBlendshape} or {@link MyAvatar.setBlendshape} to be transmitted to other
|
||||
* 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.
|
||||
* <p class="important">Deprecated: This method is deprecated and will be removed. Use the
|
||||
* <p class="important">Deprecated: This method is deprecated and will be removed. Use the
|
||||
* <code>Avatar.hasScriptedBlendshapes</code> or <code>MyAvatar.hasScriptedBlendshapes</code> property instead.</p>
|
||||
* @function Avatar.setForceFaceTrackerConnected
|
||||
* @param {boolean} connected - <code>true</code> to enable blend shape changes to be transmitted to other users,
|
||||
* @param {boolean} connected - <code>true</code> to enable blend shape changes to be transmitted to other users,
|
||||
* <code>false</code> to disable.
|
||||
*/
|
||||
Q_INVOKABLE void setForceFaceTrackerConnected(bool connected) { setHasScriptedBlendshapes(connected); }
|
||||
|
@ -1274,7 +1274,7 @@ public:
|
|||
|
||||
/*@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
|
||||
* {@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 <code>attachmentData</code> to <code>null</code>.
|
||||
* @function Avatar.setAttachmentData
|
||||
* @param {AttachmentData[]} attachmentData - The attachment data defining the models to have attached to your avatar. Use
|
||||
|
@ -1300,19 +1300,19 @@ public:
|
|||
* 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
|
||||
* @param {string} modelURL - The URL of the glTF, FBX, or OBJ model to attach. glTF models may be in JSON or binary format
|
||||
* @param {string} modelURL - The URL of the glTF, FBX, or OBJ model to attach. glTF models may be in JSON or binary format
|
||||
* (".gltf" or ".glb" URLs respectively).
|
||||
* @param {string} [jointName=""] - The name of the avatar joint (see {@link MyAvatar.getJointNames} or
|
||||
* @param {string} [jointName=""] - The name of the avatar joint (see {@link MyAvatar.getJointNames} or
|
||||
* {@link Avatar.getJointNames}) to attach the model to.
|
||||
* @param {Vec3} [translation=Vec3.ZERO] - The offset to apply to the model relative to the joint position.
|
||||
* @param {Quat} [rotation=Quat.IDENTITY] - The rotation to apply to the model relative to the joint orientation.
|
||||
* @param {number} [scale=1.0] - The scale to apply to the model.
|
||||
* @param {boolean} [isSoft=false] - If the model has a skeleton, set this to <code>true</code> so that the bones of the
|
||||
* attached model's skeleton are rotated to fit the avatar's current pose. <code>isSoft</code> is used, for example,
|
||||
* @param {boolean} [isSoft=false] - If the model has a skeleton, set this to <code>true</code> so that the bones of the
|
||||
* attached model's skeleton are rotated to fit the avatar's current pose. <code>isSoft</code> is used, for example,
|
||||
* to have clothing that moves with the avatar.
|
||||
* <p>If <code>true</code>, the <code>translation</code>, <code>rotation</code>, and <code>scale</code> parameters are
|
||||
* <p>If <code>true</code>, the <code>translation</code>, <code>rotation</code>, and <code>scale</code> parameters are
|
||||
* ignored.</p>
|
||||
* @param {boolean} [allowDuplicates=false] - If <code>true</code> then more than one copy of any particular model may be
|
||||
* @param {boolean} [allowDuplicates=false] - If <code>true</code> then more than one copy of any particular model may be
|
||||
* attached to the same joint; if <code>false</code> then the same model cannot be attached to the same joint.
|
||||
* @param {boolean} [useSaved=true] - <em>Not used.</em>
|
||||
* @deprecated This function is deprecated and will be removed. Use avatar entities instead.
|
||||
|
@ -1344,7 +1344,7 @@ public:
|
|||
* 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.
|
||||
* @param {string} [jointName=""] - The name of the joint to detach the model from. If <code>""</code>, then the most
|
||||
* @param {string} [jointName=""] - The name of the joint to detach the model from. If <code>""</code>, then the most
|
||||
* recently attached model is removed from which ever joint it was attached to.
|
||||
* @deprecated This function is deprecated and will be removed. Use avatar entities instead.
|
||||
*/
|
||||
|
@ -1354,7 +1354,7 @@ public:
|
|||
* 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.
|
||||
* @param {string} [jointName=""] - The name of the joint to detach the model from. If <code>""</code>, then the model is
|
||||
* @param {string} [jointName=""] - The name of the joint to detach the model from. If <code>""</code>, then the model is
|
||||
* detached from all joints.
|
||||
* @deprecated This function is deprecated and will be removed. Use avatar entities instead.
|
||||
*/
|
||||
|
@ -1414,7 +1414,7 @@ public:
|
|||
/*@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,
|
||||
* @returns {Mat4} The scale, rotation, and translation transform from the user's real world to the avatar's size,
|
||||
* orientation, and position in the virtual world.
|
||||
* @example <caption>Report the sensor to world matrix.</caption>
|
||||
* var sensorToWorldMatrix = MyAvatar.getSensorToWorldMatrix();
|
||||
|
@ -1431,7 +1431,7 @@ public:
|
|||
/*@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
|
||||
* @returns {number} The scale that transforms dimensions in the user's real world to the avatar's size in the virtual
|
||||
* world.
|
||||
*/
|
||||
// thread safe
|
||||
|
@ -1661,7 +1661,7 @@ public slots:
|
|||
virtual bool setAbsoluteJointTranslationInObjectFrame(int index, const glm::vec3& translation) override { return false; }
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the target scale of the avatar without any restrictions on permissible values imposed by the domain. In contrast, the
|
||||
* Gets the target scale of the avatar without any restrictions on permissible values imposed by the domain. In contrast, the
|
||||
* <code>scale</code> property's value may be limited by the domain's settings.
|
||||
* @function Avatar.getTargetScale
|
||||
* @returns {number} The target scale of the avatar.
|
||||
|
@ -1703,7 +1703,7 @@ protected:
|
|||
|
||||
void unpackSkeletonModelURL(const QByteArray& data);
|
||||
void unpackSkeletonData(const QByteArray& data);
|
||||
|
||||
|
||||
// isReplicated will be true on downstream Avatar Mixers and their clients, but false on the upstream "master"
|
||||
// Audio Mixer that the replicated avatar is connected to.
|
||||
bool _isReplicated{ false };
|
||||
|
|
|
@ -117,10 +117,10 @@ public:
|
|||
|
||||
/*@jsdoc
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* @function ScriptAvatar.getJointRotation
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Quat} The rotation of the joint relative to its parent, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* @returns {Quat} The rotation of the joint relative to its parent, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
Q_INVOKABLE glm::quat getJointRotation(int index) const;
|
||||
|
@ -129,20 +129,20 @@ public:
|
|||
* Gets the translation of a joint relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function ScriptAvatar.getJointTranslation
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates, or {@link Vec3(0)|Vec3.ZERO}
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates, or {@link Vec3(0)|Vec3.ZERO}
|
||||
* if the avatar data aren't available.
|
||||
*/
|
||||
Q_INVOKABLE glm::vec3 getJointTranslation(int index) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.
|
||||
* @function ScriptAvatar.getJointRotation
|
||||
* @param {string} name - The name of the joint.
|
||||
* @returns {Quat} The rotation of the joint relative to its parent, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* @returns {Quat} The rotation of the joint relative to its parent, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
Q_INVOKABLE glm::quat getJointRotation(const QString& name) const;
|
||||
|
@ -151,10 +151,10 @@ public:
|
|||
* Gets the translation of a joint relative to its parent, in model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* <p>For information on the joint hierarchy used, see
|
||||
* <a href="https://docs.vircadia.dev/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* <a href="https://docs.vircadia.com/create/avatars/avatar-standards.html">Avatar Standards</a>.</p>
|
||||
* @function ScriptAvatar.getJointTranslation
|
||||
* @param {number} name - The name of the joint.
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates, or {@link Vec3(0)|Vec3.ZERO}
|
||||
* @returns {Vec3} The translation of the joint relative to its parent, in model coordinates, or {@link Vec3(0)|Vec3.ZERO}
|
||||
* if the avatar data aren't available.
|
||||
*/
|
||||
Q_INVOKABLE glm::vec3 getJointTranslation(const QString& name) const;
|
||||
|
@ -162,7 +162,7 @@ public:
|
|||
/*@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 <code>[]</code> if the avatar data aren't
|
||||
* @returns {Quat[]} The rotations of all joints relative to each's parent, or <code>[]</code> if the avatar data aren't
|
||||
* available. The values are in the same order as the array returned by {@link ScriptAvatar.getJointNames}.
|
||||
*/
|
||||
Q_INVOKABLE QVector<glm::quat> getJointRotations() const;
|
||||
|
@ -172,8 +172,8 @@ public:
|
|||
* model coordinates.
|
||||
* <p><strong>Warning:</strong> These coordinates are not necessarily in meters.</p>
|
||||
* @function ScriptAvatar.getJointTranslations
|
||||
* @returns {Vec3[]} The translations of all joints relative to each's parent, in model coordinates, or <code>[]</code> if
|
||||
* the avatar data aren't available. The values are in the same order as the array returned by
|
||||
* @returns {Vec3[]} The translations of all joints relative to each's parent, in model coordinates, or <code>[]</code> if
|
||||
* the avatar data aren't available. The values are in the same order as the array returned by
|
||||
* {@link ScriptAvatar.getJointNames}.
|
||||
*/
|
||||
Q_INVOKABLE QVector<glm::vec3> getJointTranslations() const;
|
||||
|
@ -182,7 +182,7 @@ public:
|
|||
* Checks that the data for a joint are valid.
|
||||
* @function ScriptAvatar.isJointDataValid
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {boolean} <code>true</code> if the joint data are valid, <code>false</code> if not or the avatar data aren't
|
||||
* @returns {boolean} <code>true</code> if the joint data are valid, <code>false</code> if not or the avatar data aren't
|
||||
* available.
|
||||
*/
|
||||
Q_INVOKABLE bool isJointDataValid(const QString& name) const;
|
||||
|
@ -206,7 +206,7 @@ public:
|
|||
/*@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 <code>[]</code> if the avatar data
|
||||
* @returns {AttachmentData[]} Information about all models attached to the avatar, or <code>[]</code> if the avatar data
|
||||
* aren't available.
|
||||
* @deprecated This function is deprecated and will be removed. Use avatar entities instead.
|
||||
*/
|
||||
|
@ -228,7 +228,7 @@ public:
|
|||
glm::mat4 getSensorToWorldMatrix() const;
|
||||
glm::mat4 getControllerLeftHandMatrix() const;
|
||||
glm::mat4 getControllerRightHandMatrix() const;
|
||||
|
||||
|
||||
bool getHasPriority() const;
|
||||
|
||||
signals:
|
||||
|
@ -268,7 +268,7 @@ public slots:
|
|||
* Gets the rotation of a joint relative to the avatar.
|
||||
* @function ScriptAvatar.getAbsoluteJointRotationInObjectFrame
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Quat} The rotation of the joint relative to the avatar, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* @returns {Quat} The rotation of the joint relative to the avatar, or {@link Quat(0)|Quat.IDENTITY} if the avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
glm::quat getAbsoluteJointRotationInObjectFrame(int index) const;
|
||||
|
@ -277,7 +277,7 @@ public slots:
|
|||
* Gets the translation of a joint relative to the avatar.
|
||||
* @function ScriptAvatar.getAbsoluteJointTranslationInObjectFrame
|
||||
* @param {number} index - The index of the joint.
|
||||
* @returns {Vec3} The translation of the joint relative to the avatar, or {@link Vec3(0)|Vec3.ZERO} if the avatar data
|
||||
* @returns {Vec3} The translation of the joint relative to the avatar, or {@link Vec3(0)|Vec3.ZERO} if the avatar data
|
||||
* aren't available.
|
||||
*/
|
||||
glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const;
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace image {
|
|||
|
||||
std::function<gpu::uint32(const glm::vec3&)> getHDRPackingFunction();
|
||||
std::function<glm::vec3(gpu::uint32)> getHDRUnpackingFunction();
|
||||
void convertToFloatFromPacked(const unsigned char* source, int width, int height, size_t srcLineByteStride, gpu::Element sourceFormat,
|
||||
void convertToFloatFromPacked(const unsigned char* source, int width, int height, size_t srcLineByteStride, gpu::Element sourceFormat,
|
||||
glm::vec4* output, size_t outputLinePixelStride);
|
||||
void convertToPackedFromFloat(unsigned char* output, int width, int height, size_t outputLineByteStride, gpu::Element outputFormat,
|
||||
const glm::vec4* source, size_t srcLinePixelStride);
|
||||
|
@ -32,8 +32,8 @@ namespace TextureUsage {
|
|||
|
||||
/*@jsdoc
|
||||
* <p>Describes the type of texture.</p>
|
||||
* <p>See also: {@link Material} and
|
||||
* {@link https://docs.vircadia.dev/create/3d-models/pbr-materials-guide.html|PBR Materials Guide}.</p>
|
||||
* <p>See also: {@link Material} and
|
||||
* {@link https://docs.vircadia.com/create/3d-models/pbr-materials-guide.html|PBR Materials Guide}.</p>
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>Value</th><th>Name</th><th>Description</th></tr>
|
||||
|
@ -102,7 +102,7 @@ gpu::TexturePointer createCubeTextureFromImage(Image&& image, const std::string&
|
|||
gpu::TexturePointer createAmbientCubeTextureAndIrradianceFromImage(Image&& image, const std::string& srcImageName,
|
||||
bool compress, gpu::BackendTarget target, const std::atomic<bool>& abortProcessing);
|
||||
gpu::TexturePointer createLightmapTextureFromImage(Image&& image, const std::string& srcImageName,
|
||||
bool compress, gpu::BackendTarget target, const std::atomic<bool>& abortProcessing);
|
||||
bool compress, gpu::BackendTarget target, const std::atomic<bool>& abortProcessing);
|
||||
gpu::TexturePointer process2DTextureColorFromImage(Image&& srcImage, const std::string& srcImageName, bool compress,
|
||||
gpu::BackendTarget target, bool isStrict, const std::atomic<bool>& abortProcessing);
|
||||
gpu::TexturePointer process2DTextureNormalMapFromImage(Image&& srcImage, const std::string& srcImageName, bool compress,
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#include <string>
|
||||
|
||||
/*@jsdoc
|
||||
* The <code>Midi</code> API provides the ability to connect Interface with musical instruments and other external or virtual
|
||||
* devices via the MIDI protocol. For further information and examples, see the tutorial:
|
||||
* <a href="https://docs.vircadia.dev/script/midi-tutorial.html">Use MIDI to Control Your Environment</a>.
|
||||
* The <code>Midi</code> API provides the ability to connect Interface with musical instruments and other external or virtual
|
||||
* devices via the MIDI protocol. For further information and examples, see the tutorial:
|
||||
* <a href="https://docs.vircadia.com/script/midi-tutorial.html">Use MIDI to Control Your Environment</a>.
|
||||
*
|
||||
* <p><strong>Note:</strong> Only works on Windows.</p>
|
||||
*
|
||||
|
@ -43,7 +43,7 @@ public:
|
|||
void midiHardwareChange(); // relay hardware change to Javascript
|
||||
void sendRawMessage(int device, int raw); // relay midi message to MIDI outputs
|
||||
void sendNote(int status, int note, int velocity); // relay a note to MIDI outputs
|
||||
void sendMessage(int device, int channel, int type, int note, int velocity); // relay a message to MIDI outputs
|
||||
void sendMessage(int device, int channel, int type, int note, int velocity); // relay a message to MIDI outputs
|
||||
static void USBchanged();
|
||||
|
||||
private:
|
||||
|
@ -150,7 +150,7 @@ public slots:
|
|||
/*@jsdoc
|
||||
* Enables or disables repeating all incoming notes to all outputs. (Default is disabled.)
|
||||
* @function Midi.thruModeEnable
|
||||
* @param {boolean} enable - <code>true</code> to enable repeating all incoming notes to all output, <code>false</code> to
|
||||
* @param {boolean} enable - <code>true</code> to enable repeating all incoming notes to all output, <code>false</code> to
|
||||
* disable.
|
||||
*/
|
||||
Q_INVOKABLE void thruModeEnable(bool enable);
|
||||
|
@ -159,11 +159,11 @@ public slots:
|
|||
/*@jsdoc
|
||||
* Enables or disables broadcasts to all unblocked devices.
|
||||
* @function Midi.broadcastEnable
|
||||
* @param {boolean} enable - <code>true</code> to have "send" functions broadcast to all devices, <code>false</code> to
|
||||
* @param {boolean} enable - <code>true</code> to have "send" functions broadcast to all devices, <code>false</code> to
|
||||
* have them send to specific output devices.
|
||||
*/
|
||||
Q_INVOKABLE void broadcastEnable(bool enable);
|
||||
|
||||
|
||||
|
||||
/// filter by event types
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ public:
|
|||
* Script.setInterval(function () {
|
||||
* print("Hello");
|
||||
* }, 1000);
|
||||
*
|
||||
*
|
||||
* Script.setTimeout(function () {
|
||||
* Script.stop(true);
|
||||
* }, 5000);
|
||||
|
@ -303,7 +303,7 @@ public:
|
|||
/*@jsdoc
|
||||
* Checks whether the script is running as an Interface or avatar script.
|
||||
* @function Script.isClientScript
|
||||
* @returns {boolean} <code>true</code> if the script is running as an Interface or avatar script, <code>false</code> if it
|
||||
* @returns {boolean} <code>true</code> if the script is running as an Interface or avatar script, <code>false</code> if it
|
||||
* isn't.
|
||||
*/
|
||||
Q_INVOKABLE bool isClientScript() const { return _context == CLIENT_SCRIPT; }
|
||||
|
@ -311,7 +311,7 @@ public:
|
|||
/*@jsdoc
|
||||
* Checks whether the application was compiled as a debug build.
|
||||
* @function Script.isDebugMode
|
||||
* @returns {boolean} <code>true</code> if the application was compiled as a debug build, <code>false</code> if it was
|
||||
* @returns {boolean} <code>true</code> if the application was compiled as a debug build, <code>false</code> if it was
|
||||
* compiled as a release build.
|
||||
*/
|
||||
Q_INVOKABLE bool isDebugMode() const;
|
||||
|
@ -333,7 +333,7 @@ public:
|
|||
/*@jsdoc
|
||||
* Checks whether the script is running as an assignment client script.
|
||||
* @function Script.isAgentScript
|
||||
* @returns {boolean} <code>true</code> if the script is running as an assignment client script, <code>false</code> if it
|
||||
* @returns {boolean} <code>true</code> if the script is running as an assignment client script, <code>false</code> if it
|
||||
* isn't.
|
||||
*/
|
||||
Q_INVOKABLE bool isAgentScript() const { return _context == AGENT_SCRIPT; }
|
||||
|
@ -347,7 +347,7 @@ public:
|
|||
* @function Script.addEventHandler
|
||||
* @param {Uuid} entityID - The ID of the entity.
|
||||
* @param {Script.EntityEvent} eventName - The name of the event.
|
||||
* @param {Script~entityEventCallback|Script~pointerEventCallback|Script~collisionEventCallback} handler - The function to
|
||||
* @param {Script~entityEventCallback|Script~pointerEventCallback|Script~collisionEventCallback} handler - The function to
|
||||
* call when the event occurs on the entity. It can be either the name of a function or an in-line definition.
|
||||
* @example <caption>Report when a mouse press occurs on a particular entity.</caption>
|
||||
* var entityID = Entities.addEntity({
|
||||
|
@ -356,11 +356,11 @@ public:
|
|||
* dimensions: { x: 0.5, y: 0.5, z: 0.5 },
|
||||
* lifetime: 300 // Delete after 5 minutes.
|
||||
* });
|
||||
*
|
||||
*
|
||||
* function reportMousePress(entityID, event) {
|
||||
* print("Mouse pressed on entity: " + JSON.stringify(event));
|
||||
* }
|
||||
*
|
||||
*
|
||||
* Script.addEventHandler(entityID, "mousePressOnEntity", reportMousePress);
|
||||
*/
|
||||
Q_INVOKABLE void addEventHandler(const EntityItemID& entityID, const QString& eventName, QScriptValue handler);
|
||||
|
@ -376,7 +376,7 @@ public:
|
|||
Q_INVOKABLE void removeEventHandler(const EntityItemID& entityID, const QString& eventName, QScriptValue handler);
|
||||
|
||||
/*@jsdoc
|
||||
* Starts running another script in Interface, if it isn't already running. The script is not automatically loaded next
|
||||
* Starts running another script in Interface, if it isn't already running. The script is not automatically loaded next
|
||||
* time Interface starts.
|
||||
* <p class="availableIn"><strong>Supported Script Types:</strong> Interface Scripts • Avatar Scripts</p>
|
||||
* <p>See also, {@link ScriptDiscoveryService.loadScript}.</p>
|
||||
|
@ -398,13 +398,13 @@ public:
|
|||
Q_INVOKABLE void load(const QString& loadfile);
|
||||
|
||||
/*@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
|
||||
* 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).
|
||||
* @function Script.include
|
||||
* @variation 0
|
||||
* @param {string[]} filenames - The URLs of the scripts to include. Each can be relative to the current script.
|
||||
* @param {function} [callback=null] - The function to call back when the scripts have been included. It can be either the
|
||||
* @param {function} [callback=null] - The function to call back when the scripts have been included. It can be either the
|
||||
* name of a function or an in-line definition.
|
||||
*/
|
||||
Q_INVOKABLE void include(const QStringList& includeFiles, QScriptValue callback = QScriptValue());
|
||||
|
@ -414,7 +414,7 @@ public:
|
|||
* asynchronously, otherwise it is included synchronously (i.e., script execution blocks while the file is included).
|
||||
* @function Script.include
|
||||
* @param {string} filename - The URL of the script to include. It can be relative to the current script.
|
||||
* @param {function} [callback=null] - The function to call back when the script has been included. It can be either the
|
||||
* @param {function} [callback=null] - The function to call back when the script has been included. It can be either the
|
||||
* name of a function or an in-line definition.
|
||||
* @example <caption>Include a script file asynchronously.</caption>
|
||||
* // First file: scriptA.js
|
||||
|
@ -438,12 +438,12 @@ public:
|
|||
// MODULE related methods
|
||||
|
||||
/*@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.
|
||||
* Provides access to methods or objects provided in an external JavaScript or JSON file.
|
||||
* See {@link https://docs.vircadia.com/script/js-tips.html} for further details.
|
||||
* @function Script.require
|
||||
* @param {string} module - The module to use. May be a JavaScript file, a JSON file, or the name of a system module such
|
||||
* @param {string} module - The module to use. May be a JavaScript file, a JSON file, or the name of a system module such
|
||||
* as <code>"appUi"</code> (i.e., the "appUi.js" system module JavaScript file).
|
||||
* @returns {object|array} The value assigned to <code>module.exports</code> in the JavaScript file, or the value defined
|
||||
* @returns {object|array} The value assigned to <code>module.exports</code> in the JavaScript file, or the value defined
|
||||
* in the JSON file.
|
||||
*/
|
||||
Q_INVOKABLE QScriptValue require(const QString& moduleId);
|
||||
|
@ -550,7 +550,7 @@ public:
|
|||
Q_INVOKABLE QUrl resourcesPath() const;
|
||||
|
||||
/*@jsdoc
|
||||
* Starts timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of the
|
||||
* 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
|
||||
* @param {string} label - A name that identifies the section of code.
|
||||
|
@ -558,7 +558,7 @@ public:
|
|||
Q_INVOKABLE void beginProfileRange(const QString& label) const;
|
||||
|
||||
/*@jsdoc
|
||||
* Finishes timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of
|
||||
* 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
|
||||
* @param {string} label - A name that identifies the section of code.
|
||||
|
@ -640,7 +640,7 @@ public:
|
|||
Q_INVOKABLE void callEntityScriptMethod(const EntityItemID& entityID, const QString& methodName, const EntityItemID& otherID, const Collision& collision);
|
||||
|
||||
/*@jsdoc
|
||||
* Manually runs the JavaScript garbage collector which reclaims memory by disposing of objects that are no longer
|
||||
* Manually runs the JavaScript garbage collector which reclaims memory by disposing of objects that are no longer
|
||||
* reachable.
|
||||
* @function Script.requestGarbageCollection
|
||||
*/
|
||||
|
@ -695,9 +695,9 @@ public:
|
|||
* but this method will return the asset's current URL.)
|
||||
* @function Script.getExternalPath
|
||||
* @param {Script.ResourceBucket} bucket - The external resource bucket that the asset is in.
|
||||
* @param {string} path - The path within the external resource bucket where the asset is located.
|
||||
* @param {string} path - The path within the external resource bucket where the asset is located.
|
||||
* <p>Normally, this should start with a path or filename to be appended to the bucket URL.
|
||||
* Alternatively, it can be a relative path starting with <code>./</code> or <code>../</code>, to navigate within the
|
||||
* Alternatively, it can be a relative path starting with <code>./</code> or <code>../</code>, to navigate within the
|
||||
* resource bucket's URL.</p>
|
||||
* @Returns {string} The URL of an external asset.
|
||||
* @example <caption>Report the URL of a default particle.</caption>
|
||||
|
@ -793,8 +793,8 @@ signals:
|
|||
void cleanupMenuItem(const QString& menuItemString);
|
||||
|
||||
/*@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
|
||||
* 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}.
|
||||
* @function Script.printedMessage
|
||||
* @param {string} message - The message.
|
||||
|
@ -804,7 +804,7 @@ signals:
|
|||
void printedMessage(const QString& message, const QString& scriptName);
|
||||
|
||||
/*@jsdoc
|
||||
* Triggered when the script generates an error, {@link console.error} or {@link console.exception} is called, or
|
||||
* 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
|
||||
* @param {string} message - The error message.
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Vircadia Sandbox</title>
|
||||
<title>Vircadia Server</title>
|
||||
<script src="content-update.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="content-update.css"></link>
|
||||
</head>
|
||||
<body onload="ready()">
|
||||
<div class="colmask" id="content">
|
||||
<h3>We backed up your old Sandbox content, just in case.</h3>
|
||||
<h3>We backed up your old Server content, just in case.</h3>
|
||||
<p><b>To restore it, follow these steps:</b>
|
||||
|
||||
<div class="colmid">
|
||||
|
@ -25,7 +25,7 @@
|
|||
|
||||
<div class="col2">
|
||||
<img src="images/step1.jpg" alt="Step 1">
|
||||
<p><b>1.</b> Stop your Sandbox server.
|
||||
<p><b>1.</b> Stop your Vircadia server.
|
||||
</div>
|
||||
|
||||
<div class="col3">
|
||||
|
@ -35,7 +35,7 @@
|
|||
|
||||
<div class="col4">
|
||||
<img src="images/step4.jpg" alt="Step 4">
|
||||
<p><b>4.</b> Restart your Sandbox server.
|
||||
<p><b>4.</b> Restart your Vircadia server.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
|||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>For more information about managing your Vircadia Sandbox Server, check out our docs: <a href="https://docs.vircadia.dev/host.html" target="_blank">docs.vircadia.com</a>
|
||||
<p>For more information about managing your Vircadia Server, check out our docs: <a href="https://docs.vircadia.com/host.html" target="_blank">docs.vircadia.com</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -28,7 +28,7 @@ You can make your home yours by uploading your own models and scripts.
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<em>To get started exploring and creating,</em> <a target="_blank" href="https://docs.vircadia.dev/explore.html">check out our Quick-start Guide</a>
|
||||
<em>To get started exploring and creating,</em> <a target="_blank" href="https://docs.vircadia.com/explore.html">check out our Quick-start Guide</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="column center">
|
||||
|
@ -51,7 +51,7 @@ You can make your home yours by uploading your own models and scripts.
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<em>For more information on managing your server,</em> <a target="_blank" href="https://docs.vircadia.dev/host.html">visit our documentation</a>
|
||||
<em>For more information on managing your server,</em> <a target="_blank" href="https://docs.vircadia.com/host.html">visit our documentation</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="column right">
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
The Vircadia JavaScript API lets content creators and developers create new experiences and transform virtual worlds within the Vircadia metaverse. With it, you can build great content, customize avatars, play audio and so much more.
|
||||
The Vircadia JavaScript API lets content creators and developers create new experiences and transform virtual worlds within the Vircadia metaverse. With it, you can build great content, customize avatars, play audio and so much more.
|
||||
|
||||
You are most likely to interact with these APIs:
|
||||
|
||||
* The **[Entities](Entities.html)** namespace lets you add, remove, and edit entities around you to build an interactive environment. In addition, you can use this namespace to find entities in range, direction, collision, or raytrace.
|
||||
* The **[AvatarList](AvatarList.html)**, **[MyAvatar](MyAvatar.html)**, and **[Avatar](Avatar.html)** namespaces affect your personal avatars, and lets you get information on other people's avatars.
|
||||
* The **[AvatarList](AvatarList.html)**, **[MyAvatar](MyAvatar.html)**, and **[Avatar](Avatar.html)** namespaces affect your personal avatars, and lets you get information on other people's avatars.
|
||||
* The **[Script](Script.html)** namespace lets you to connect callbacks from your client to script, such as functionality that is dependent on time (`Script.update`, `Script.setTimeout`, `Script.setInterval`, etc), connect paths relatively to assets (`Script.resolvePath`), refer to other scripts (`Script.require`, `Script.include`), or connect functions to events which occur when the script is turned off (`Script.scriptEnding`).
|
||||
|
||||
To learn more about using Vircadia and exploring the metaverse, visit the [Vircadia Documentation](https://docs.vircadia.dev).
|
||||
To learn more about using Vircadia and exploring the metaverse, visit the [Vircadia User Documentation](https://docs.vircadia.com).
|
||||
|
||||
For source developer oriented documentation, visit the [Vircadia Developer Documentation](https://docs.vircadia.dev).
|
||||
|
|
Loading…
Reference in a new issue