QmlDesigner: Implement spotlight drag handles

Inner cone visualization for spotlight was added, as well as drag
handles to adjust inner and outer cone angles and fade.

Fade handle adjusts fades in order: quadratic, linear, constant.
If a specific fade value is zero, the next one in list is chosen
for adjustment.

Change-Id: I921936d9782de511558bc6c24cfa0953cce494f0
Fixes: QDS-2038
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Miikka Heikkinen
2020-05-11 17:25:31 +03:00
parent 387657b83a
commit e4b2e45ea6
7 changed files with 286 additions and 52 deletions

View File

@@ -31,15 +31,14 @@ Node {
id: overlayNode
property View3D view3D
property Node target: parent
property bool autoScale: true
property Camera camera: view3D.camera
property bool active: true
// Read-only
property real relativeScale: 1
onActiveChanged: updateScale()
onSceneTransformChanged: updateScale()
onAutoScaleChanged: updateScale()
// Trigger delayed update on camera change to ensure camera values are correct
onCameraChanged: _generalHelper.requestOverlayUpdate();
@@ -61,11 +60,10 @@ Node {
function updateScale()
{
if (!autoScale) {
target.scale = Qt.vector3d(1, 1, 1);
} else {
if (active)
relativeScale = helper.getRelativeScale(overlayNode);
}
else
relativeScale = 1;
}
MouseArea3D {