mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
Merge branch 'master' into rand_settles_and_by_momentum
This commit is contained in:
commit
8e11d91c03
14 changed files with 15 additions and 58 deletions
|
@ -399,6 +399,7 @@ void Agent::executeScript() {
|
|||
}
|
||||
|
||||
// these procedural movements are included in the recordings
|
||||
scriptedAvatar->setHasScriptedBlendshapes(true);
|
||||
scriptedAvatar->setHasProceduralEyeFaceMovement(false);
|
||||
scriptedAvatar->setHasProceduralBlinkFaceMovement(false);
|
||||
scriptedAvatar->setHasAudioEnabledFaceMovement(false);
|
||||
|
@ -406,6 +407,7 @@ void Agent::executeScript() {
|
|||
scriptedAvatar->clearRecordingBasis();
|
||||
|
||||
// restore procedural blendshape movement
|
||||
scriptedAvatar->setHasScriptedBlendshapes(false);
|
||||
scriptedAvatar->setHasProceduralEyeFaceMovement(true);
|
||||
scriptedAvatar->setHasProceduralBlinkFaceMovement(true);
|
||||
scriptedAvatar->setHasAudioEnabledFaceMovement(true);
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -106,33 +106,6 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: homeButton
|
||||
source: "images/homeIcon.svg"
|
||||
opacity: homeButtonMouseArea.containsMouse ? 1.0 : 0.7
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 15
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 24
|
||||
width: 14
|
||||
height: 13
|
||||
|
||||
MouseArea {
|
||||
id: homeButtonMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: {
|
||||
Tablet.playSound(TabletEnums.ButtonHover);
|
||||
}
|
||||
onClicked: {
|
||||
Tablet.playSound(TabletEnums.ButtonClick);
|
||||
// Can't use `Window.location` in QML, so just use what setting `Window.location` actually calls under the hood:
|
||||
// AddressManager.handleLookupString().
|
||||
AddressManager.handleLookupString(LocationBookmarks.getAddress("hqhome"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AvatarAppComponents.DisplayNameHeader {
|
||||
id: displayNameHeader
|
||||
previewUrl: root.avatarPreviewUrl
|
||||
|
|
|
@ -96,7 +96,9 @@ const AnimPoseVec& AnimBlendDirectional::evaluate(const AnimVariantMap& animVars
|
|||
}
|
||||
}
|
||||
_poses.resize(minSize);
|
||||
blend4(minSize, &poseVecs[0][0], &poseVecs[1][0], &poseVecs[2][0], &poseVecs[3][0], &alphas[0], &_poses[0]);
|
||||
if (minSize > 0) {
|
||||
blend4(minSize, &poseVecs[0][0], &poseVecs[1][0], &poseVecs[2][0], &poseVecs[3][0], &alphas[0], &_poses[0]);
|
||||
}
|
||||
|
||||
// animation stack debug stats
|
||||
for (int i = 0; i < 9; i++) {
|
||||
|
|
|
@ -257,7 +257,9 @@ void RenderShadowMap::run(const render::RenderContextPointer& renderContext, con
|
|||
ShapeKey::Builder(), ShapeKey::Builder().withFade(),
|
||||
ShapeKey::Builder().withDeformed(), ShapeKey::Builder().withDeformed().withFade(),
|
||||
ShapeKey::Builder().withDeformed().withDualQuatSkinned(), ShapeKey::Builder().withDeformed().withDualQuatSkinned().withFade(),
|
||||
ShapeKey::Builder().withOwnPipeline(), ShapeKey::Builder().withOwnPipeline().withFade()
|
||||
ShapeKey::Builder().withOwnPipeline(), ShapeKey::Builder().withOwnPipeline().withFade(),
|
||||
ShapeKey::Builder().withDeformed().withOwnPipeline(), ShapeKey::Builder().withDeformed().withOwnPipeline().withFade(),
|
||||
ShapeKey::Builder().withDeformed().withDualQuatSkinned().withOwnPipeline(), ShapeKey::Builder().withDeformed().withDualQuatSkinned().withOwnPipeline().withFade(),
|
||||
};
|
||||
std::vector<std::vector<ShapeKey>> sortedShapeKeys(keys.size());
|
||||
|
||||
|
|
|
@ -275,23 +275,6 @@ EntityListTool = function(shouldUseEditTabletApp) {
|
|||
Window.saveFileChanged.connect(onFileSaveChanged);
|
||||
Window.saveAsync("Select Where to Save", "", "*.json");
|
||||
}
|
||||
} else if (data.type === "pal") {
|
||||
var sessionIds = {}; // Collect the sessionsIds of all selected entities, w/o duplicates.
|
||||
selectionManager.selections.forEach(function (id) {
|
||||
var lastEditedBy = Entities.getEntityProperties(id, 'lastEditedBy').lastEditedBy;
|
||||
if (lastEditedBy) {
|
||||
sessionIds[lastEditedBy] = true;
|
||||
}
|
||||
});
|
||||
var dedupped = Object.keys(sessionIds);
|
||||
if (!selectionManager.selections.length) {
|
||||
Window.alert('No objects selected.');
|
||||
} else if (!dedupped.length) {
|
||||
Window.alert('There were no recent users of the ' + selectionManager.selections.length + ' selected objects.');
|
||||
} else {
|
||||
// No need to subscribe if we're just sending.
|
||||
Messages.sendMessage('com.highfidelity.pal', JSON.stringify({method: 'select', params: [dedupped, true, false]}), 'local');
|
||||
}
|
||||
} else if (data.type === "delete") {
|
||||
deleteSelectedEntities();
|
||||
} else if (data.type === "toggleLocked") {
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
<input type="button" id="locked" class="glyph" value="" />
|
||||
<input type="button" id="visible" class="glyph" value="" />
|
||||
</div>
|
||||
<input type="button" id="pal" class="glyph" value="" />
|
||||
<button id="toggle-space-mode" class="hifi-edit-button space-mode-local">Local</button>
|
||||
<input type="button" class="red glyph" id="delete" value="{" />
|
||||
</div>
|
||||
|
|
|
@ -209,7 +209,6 @@ let elEntityTable,
|
|||
elFilterInView,
|
||||
elFilterRadius,
|
||||
elExport,
|
||||
elPal,
|
||||
elSelectedEntitiesCount,
|
||||
elVisibleEntitiesCount,
|
||||
elNoEntitiesMessage,
|
||||
|
@ -254,7 +253,6 @@ function loaded() {
|
|||
elFilterInView = document.getElementById("filter-in-view");
|
||||
elFilterRadius = document.getElementById("filter-radius");
|
||||
elExport = document.getElementById("export");
|
||||
elPal = document.getElementById("pal");
|
||||
elSelectedEntitiesCount = document.getElementById("selected-entities-count");
|
||||
elVisibleEntitiesCount = document.getElementById("visible-entities-count");
|
||||
elNoEntitiesMessage = document.getElementById("no-entities");
|
||||
|
@ -272,9 +270,6 @@ function loaded() {
|
|||
elExport.onclick = function() {
|
||||
EventBridge.emitWebEvent(JSON.stringify({ type: 'export'}));
|
||||
};
|
||||
elPal.onclick = function() {
|
||||
EventBridge.emitWebEvent(JSON.stringify({ type: 'pal' }));
|
||||
};
|
||||
elDelete.onclick = function() {
|
||||
EventBridge.emitWebEvent(JSON.stringify({ type: 'delete' }));
|
||||
};
|
||||
|
@ -541,8 +536,9 @@ function loaded() {
|
|||
function onRowClicked(clickEvent) {
|
||||
let entityID = this.dataset.entityID;
|
||||
let selection = [entityID];
|
||||
let controlKey = window.navigator.platform.startsWith("Mac") ? clickEvent.metaKey : clickEvent.ctrlKey;
|
||||
|
||||
if (clickEvent.ctrlKey) {
|
||||
if (controlKey) {
|
||||
let selectedIndex = selectedEntities.indexOf(entityID);
|
||||
if (selectedIndex >= 0) {
|
||||
selection = [];
|
||||
|
@ -573,7 +569,7 @@ function loaded() {
|
|||
selection.reverse();
|
||||
}
|
||||
}
|
||||
} else if (!clickEvent.ctrlKey && !clickEvent.shiftKey && selectedEntities.length === 1) {
|
||||
} else if (!controlKey && !clickEvent.shiftKey && selectedEntities.length === 1) {
|
||||
// if reselecting the same entity then start renaming it
|
||||
if (selectedEntities[0] === entityID) {
|
||||
if (renameLastBlur && renameLastEntityID === entityID && (Date.now() - renameLastBlur) < RENAME_COOLDOWN) {
|
||||
|
|
|
@ -398,8 +398,8 @@ const GROUPS = [
|
|||
{
|
||||
label: "Base",
|
||||
type: "number-draggable",
|
||||
min: -1000,
|
||||
max: 1000,
|
||||
min: -16000,
|
||||
max: 16000,
|
||||
step: 1,
|
||||
decimals: 0,
|
||||
unit: "m",
|
||||
|
@ -409,8 +409,8 @@ const GROUPS = [
|
|||
{
|
||||
label: "Ceiling",
|
||||
type: "number-draggable",
|
||||
min: -1000,
|
||||
max: 5000,
|
||||
min: -16000,
|
||||
max: 16000,
|
||||
step: 1,
|
||||
decimals: 0,
|
||||
unit: "m",
|
||||
|
|
Loading…
Reference in a new issue