mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 20:33:09 +02:00
Object picking / edition for transitions are activate / deactivated when transition editor window is shown / hidden
This commit is contained in:
parent
e4416db06f
commit
6639a245df
2 changed files with 73 additions and 70 deletions
|
@ -40,6 +40,71 @@
|
||||||
|
|
||||||
var hasEventBridge = false;
|
var hasEventBridge = false;
|
||||||
|
|
||||||
|
function enableSphereVisualization() {
|
||||||
|
if (gradientSphere==undefined) {
|
||||||
|
gradientSphere = Overlays.addOverlay("sphere", {
|
||||||
|
position: MyAvatar.position,
|
||||||
|
rotation: Quat.fromPitchYawRollDegrees(0.0, 0.0, 0.0),
|
||||||
|
dimensions: { x: 1.0, y: 1.0, z: 1.0 },
|
||||||
|
color: { red: 100, green: 150, blue: 255},
|
||||||
|
alpha: 0.2,
|
||||||
|
solid: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (noiseSphere==undefined) {
|
||||||
|
noiseSphere = Overlays.addOverlay("sphere", {
|
||||||
|
position: MyAvatar.position,
|
||||||
|
rotation: Quat.fromPitchYawRollDegrees(0.0, 0.0, 0.0),
|
||||||
|
dimensions: { x: 1.0, y: 1.0, z: 1.0 },
|
||||||
|
color: { red: 255, green: 150, blue: 100},
|
||||||
|
alpha: 0.2,
|
||||||
|
solid: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function disableSphereVisualization() {
|
||||||
|
Overlays.deleteOverlay(noiseSphere);
|
||||||
|
Overlays.deleteOverlay(gradientSphere);
|
||||||
|
noiseSphere = undefined
|
||||||
|
gradientSphere = undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a Laser pointer used to pick and add objects to selections
|
||||||
|
var END_DIMENSIONS = { x: 0.05, y: 0.05, z: 0.05 };
|
||||||
|
var COLOR1 = {red: 255, green: 0, blue: 0};
|
||||||
|
var COLOR2 = {red: 0, green: 255, blue: 0};
|
||||||
|
var end1 = {
|
||||||
|
type: "sphere",
|
||||||
|
dimensions: END_DIMENSIONS,
|
||||||
|
color: COLOR1,
|
||||||
|
ignoreRayIntersection: true
|
||||||
|
}
|
||||||
|
var end2 = {
|
||||||
|
type: "sphere",
|
||||||
|
dimensions: END_DIMENSIONS,
|
||||||
|
color: COLOR2,
|
||||||
|
ignoreRayIntersection: true
|
||||||
|
}
|
||||||
|
var laser
|
||||||
|
|
||||||
|
function enablePointer() {
|
||||||
|
laser = Pointers.createPointer(PickType.Ray, {
|
||||||
|
joint: "Mouse",
|
||||||
|
filter: Picks.PICK_ENTITIES,
|
||||||
|
renderStates: [{name: "one", end: end1}],
|
||||||
|
defaultRenderStates: [{name: "one", end: end2, distance: 2.0}],
|
||||||
|
enabled: true
|
||||||
|
});
|
||||||
|
Pointers.setRenderState(laser, "one");
|
||||||
|
Pointers.enablePointer(laser)
|
||||||
|
}
|
||||||
|
|
||||||
|
function disablePointer() {
|
||||||
|
Pointers.disablePointer(laser)
|
||||||
|
Pointers.removePointer(laser);
|
||||||
|
}
|
||||||
|
|
||||||
function wireEventBridge(on) {
|
function wireEventBridge(on) {
|
||||||
if (!tablet) {
|
if (!tablet) {
|
||||||
print("Warning in wireEventBridge(): 'tablet' undefined!");
|
print("Warning in wireEventBridge(): 'tablet' undefined!");
|
||||||
|
@ -49,11 +114,15 @@
|
||||||
if (!hasEventBridge) {
|
if (!hasEventBridge) {
|
||||||
tablet.fromQml.connect(fromQml);
|
tablet.fromQml.connect(fromQml);
|
||||||
hasEventBridge = true;
|
hasEventBridge = true;
|
||||||
|
enablePointer();
|
||||||
|
Render.getConfig("RenderMainView.FadeEdit")["editFade"] = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (hasEventBridge) {
|
if (hasEventBridge) {
|
||||||
tablet.fromQml.disconnect(fromQml);
|
tablet.fromQml.disconnect(fromQml);
|
||||||
hasEventBridge = false;
|
hasEventBridge = false;
|
||||||
|
disablePointer();
|
||||||
|
Render.getConfig("RenderMainView.FadeEdit")["editFade"] = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,38 +190,9 @@
|
||||||
|
|
||||||
function fromQml(message) {
|
function fromQml(message) {
|
||||||
tokens = message.split('*')
|
tokens = message.split('*')
|
||||||
print("Received '"+message+"' from transition.qml")
|
//print("Received '"+message+"' from transition.qml")
|
||||||
command = tokens[0].toLowerCase()
|
command = tokens[0].toLowerCase()
|
||||||
if (command=="edit") {
|
if (command=="category") {
|
||||||
isEditEnabled = (tokens[1]=="true")
|
|
||||||
if (isEditEnabled) {
|
|
||||||
if (gradientSphere==undefined) {
|
|
||||||
gradientSphere = Overlays.addOverlay("sphere", {
|
|
||||||
position: MyAvatar.position,
|
|
||||||
rotation: Quat.fromPitchYawRollDegrees(0.0, 0.0, 0.0),
|
|
||||||
dimensions: { x: 1.0, y: 1.0, z: 1.0 },
|
|
||||||
color: { red: 100, green: 150, blue: 255},
|
|
||||||
alpha: 0.2,
|
|
||||||
solid: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (noiseSphere==undefined) {
|
|
||||||
noiseSphere = Overlays.addOverlay("sphere", {
|
|
||||||
position: MyAvatar.position,
|
|
||||||
rotation: Quat.fromPitchYawRollDegrees(0.0, 0.0, 0.0),
|
|
||||||
dimensions: { x: 1.0, y: 1.0, z: 1.0 },
|
|
||||||
color: { red: 255, green: 150, blue: 100},
|
|
||||||
alpha: 0.2,
|
|
||||||
solid: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else if (!isEditEnabled) {
|
|
||||||
Overlays.deleteOverlay(noiseSphere);
|
|
||||||
Overlays.deleteOverlay(gradientSphere);
|
|
||||||
noiseSphere = undefined
|
|
||||||
gradientSphere = undefined
|
|
||||||
}
|
|
||||||
} else if (command=="category") {
|
|
||||||
editedCategory = parseInt(tokens[1])
|
editedCategory = parseInt(tokens[1])
|
||||||
} else if (command=="save") {
|
} else if (command=="save") {
|
||||||
var filePath = tokens[1]
|
var filePath = tokens[1]
|
||||||
|
@ -189,35 +229,9 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Create a Laser pointer used to pick and add objects to selections
|
|
||||||
var END_DIMENSIONS = { x: 0.05, y: 0.05, z: 0.05 };
|
|
||||||
var COLOR1 = {red: 255, green: 0, blue: 0};
|
|
||||||
var COLOR2 = {red: 0, green: 255, blue: 0};
|
|
||||||
var end1 = {
|
|
||||||
type: "sphere",
|
|
||||||
dimensions: END_DIMENSIONS,
|
|
||||||
color: COLOR1,
|
|
||||||
ignoreRayIntersection: true
|
|
||||||
}
|
|
||||||
var end2 = {
|
|
||||||
type: "sphere",
|
|
||||||
dimensions: END_DIMENSIONS,
|
|
||||||
color: COLOR2,
|
|
||||||
ignoreRayIntersection: true
|
|
||||||
}
|
|
||||||
|
|
||||||
var laser = Pointers.createPointer(PickType.Ray, {
|
|
||||||
joint: "Mouse",
|
|
||||||
filter: Picks.PICK_ENTITIES,
|
|
||||||
renderStates: [{name: "one", end: end1}],
|
|
||||||
defaultRenderStates: [{name: "one", end: end2, distance: 2.0}],
|
|
||||||
enabled: true
|
|
||||||
});
|
|
||||||
Pointers.setRenderState(laser, "one");
|
|
||||||
|
|
||||||
var currentSelectionName = ""
|
var currentSelectionName = ""
|
||||||
var SelectionList = "TransitionEdit"
|
var SelectionList = "TransitionEdit"
|
||||||
Pointers.enablePointer(laser)
|
|
||||||
Selection.enableListToScene(SelectionList)
|
Selection.enableListToScene(SelectionList)
|
||||||
Selection.clearSelectedItemsList(SelectionList)
|
Selection.clearSelectedItemsList(SelectionList)
|
||||||
|
|
||||||
|
@ -231,8 +245,7 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
Pointers.disablePointer(laser)
|
disablePointer();
|
||||||
Pointers.removePointer(ray);
|
|
||||||
Selection.removeListFromMap(SelectionList)
|
Selection.removeListFromMap(SelectionList)
|
||||||
Selection.disableListToScene(SelectionList);
|
Selection.disableListToScene(SelectionList);
|
||||||
Overlays.deleteOverlay(noiseSphere);
|
Overlays.deleteOverlay(noiseSphere);
|
||||||
|
|
|
@ -62,16 +62,6 @@ Rectangle {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
id: root_col
|
id: root_col
|
||||||
|
|
||||||
HifiControls.CheckBox {
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
boxSize: 20
|
|
||||||
text: "Edit"
|
|
||||||
checked: root.configEdit["editFade"]
|
|
||||||
onCheckedChanged: {
|
|
||||||
root.configEdit["editFade"] = checked;
|
|
||||||
root.sendToScript("edit*"+checked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
HifiControls.ComboBox {
|
HifiControls.ComboBox {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
Loading…
Reference in a new issue