Revision control
++ // Copyright (C) 2025 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ import QtQuick
++ import QtQuick3D
++
++ Node {
++ id: pointer
++
++ property real beamThickness: 0.3
++ property color beamColor: "#eeeeee"
++ property color beamHitColor: "#bbddcc"
++ property color beamPressedHitColor: "#bbccdd"
++ property color beamPressedMissColor: "#ddbbbb"
++ property bool pressed: false
++ property bool hit: false
++
++ property real length: 150
++
++ Model {
++ readonly property real thickness: pointer.beamThickness / 100
++ eulerRotation.x: -90
++ scale: Qt.vector3d(thickness, pickRay.length/100, thickness)
++ source: "#Cone"
++ materials: PrincipledMaterial {
++ baseColor: pointer.hit ?
++ (pointer.pressed ? pointer.beamPressedHitColor : pointer.beamHitColor) :
++ (pointer.pressed ? pointer.beamPressedMissColor : pointer.beamColor)
++ lighting: PrincipledMaterial.NoLighting
++ }
++ opacity: 0.8
++ }
++ }