2022-06-08 12:47:24 +00:00
|
|
|
// Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
|
2024-02-23 14:41:04 +00:00
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
2015-11-06 12:33:45 +00:00
|
|
|
|
|
|
|
import Qt3D.Core 2.0
|
|
|
|
import Qt3D.Render 2.0
|
2016-04-27 07:48:21 +00:00
|
|
|
import Qt3D.Extras 2.0
|
2015-11-06 12:33:45 +00:00
|
|
|
|
|
|
|
Entity {
|
|
|
|
id: root
|
|
|
|
signal pressed(var event)
|
|
|
|
signal clicked(var event)
|
|
|
|
signal released(var event)
|
|
|
|
signal entered()
|
|
|
|
signal exited()
|
|
|
|
|
2016-05-06 06:48:50 +00:00
|
|
|
property Layer layer
|
2015-11-06 12:33:45 +00:00
|
|
|
property real x: 0
|
|
|
|
property real y: 0
|
|
|
|
property real z: 0
|
|
|
|
property alias scale: transform.scale
|
|
|
|
property alias hoverEnabled: objectPicker.hoverEnabled
|
|
|
|
property alias diffuseColor: material.diffuse
|
|
|
|
property alias ambientColor: material.ambient
|
2017-01-05 20:22:12 +00:00
|
|
|
property alias pickingEnabled: objectPicker.enabled
|
2015-11-06 12:33:45 +00:00
|
|
|
readonly property bool containsMouse: objectPicker.containsMouse
|
|
|
|
readonly property bool isPressed: objectPicker.pressed
|
|
|
|
|
|
|
|
property GeometryRenderer mesh;
|
|
|
|
|
|
|
|
ObjectPicker {
|
|
|
|
id: objectPicker
|
2016-03-12 17:29:56 +00:00
|
|
|
onClicked: root.clicked(pick)
|
|
|
|
onPressed: root.pressed(pick)
|
|
|
|
onReleased: root.released(pick)
|
2015-11-06 12:33:45 +00:00
|
|
|
onEntered: root.entered()
|
|
|
|
onExited: root.exited();
|
|
|
|
}
|
|
|
|
|
|
|
|
PhongMaterial { id: material }
|
|
|
|
|
|
|
|
Transform {
|
|
|
|
id: transform
|
|
|
|
translation: Qt.vector3d(x, y, z)
|
|
|
|
}
|
|
|
|
|
2016-04-27 07:48:21 +00:00
|
|
|
components: [mesh, material, transform, objectPicker, layer]
|
2015-11-06 12:33:45 +00:00
|
|
|
}
|
|
|
|
|