From f7cc7656e2bd01851c5fb04747b0c8439ffa9dbe Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Thu, 8 Jun 2023 16:25:47 +0200 Subject: Fix qmllint errors in particles3d example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 6.6 Change-Id: I10126755f2a42fb365219f09b9c54e45ed8e4316 Reviewed-by: Christian Strømme --- examples/quick3d/particles3d/ColorfulParticles.qml | 261 +++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 examples/quick3d/particles3d/ColorfulParticles.qml (limited to 'examples/quick3d/particles3d/ColorfulParticles.qml') diff --git a/examples/quick3d/particles3d/ColorfulParticles.qml b/examples/quick3d/particles3d/ColorfulParticles.qml new file mode 100644 index 00000000..4b395c66 --- /dev/null +++ b/examples/quick3d/particles3d/ColorfulParticles.qml @@ -0,0 +1,261 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +import QtQuick +import QtQuick3D +import QtQuick3D.Particles3D + +Item { + id: mainWindow + + anchors.fill: parent + + View3D { + anchors.fill: parent + + environment: SceneEnvironment { + clearColor: "#202020" + backgroundMode: SceneEnvironment.Color + antialiasingMode: AppSettings.antialiasingMode + antialiasingQuality: AppSettings.antialiasingQuality + } + + PerspectiveCamera { + id: camera + position: Qt.vector3d(0, 100, 600) + } + + PointLight { + position: Qt.vector3d(0, 400, 100) + brightness: 10 + ambientColor: Qt.rgba(0.3, 0.3, 0.3, 1.0) + } + + // Models shared between particles + Component { + id: particleComponent + Model { + source: "#Cube" + scale: Qt.vector3d(0.1, 0.1, 0.1) + materials: DefaultMaterial { + } + } + } + + Component { + id: particleComponent2 + Model { + source: "#Cylinder" + scale: Qt.vector3d(0.1, 0.2, 0.1) + materials: PrincipledMaterial { + metalness: 0.5 + roughness: 0 + specularAmount: 1.0 + } + } + } + + ParticleSystem3D { + id: psystem + + SequentialAnimation on eulerRotation.y { + running: true + loops: Animation.Infinite + NumberAnimation { + to: 180 + duration: 5000 + easing.type: Easing.InOutCirc + } + NumberAnimation { + to: 0 + duration: 5000 + easing.type: Easing.InOutCirc + } + } + + property vector4d cVar: Qt.vector4d(sliderRedVariation.sliderValue, + sliderGreenVariation.sliderValue, + sliderBlueVariation.sliderValue, + sliderAlphaVariation.sliderValue) + // Particles + ModelParticle3D { + id: particleRed + delegate: particleComponent + maxAmount: 250 + color: "#ff0000" + colorVariation: psystem.cVar + unifiedColorVariation: checkBoxUnified.checked + } + ModelParticle3D { + id: particleGreen + delegate: particleComponent + maxAmount: 250 + color: "#00ff00" + colorVariation: psystem.cVar + unifiedColorVariation: checkBoxUnified.checked + } + ModelParticle3D { + id: particleBlue + delegate: particleComponent + maxAmount: 250 + color: "#0000ff" + colorVariation: psystem.cVar + unifiedColorVariation: checkBoxUnified.checked + } + ModelParticle3D { + id: particleWhite + delegate: particleComponent2 + maxAmount: 250 + color: "#ffffff" + colorVariation: psystem.cVar + unifiedColorVariation: checkBoxUnified.checked + } + + // Emitters, one per particle + ParticleEmitter3D { + particle: particleRed + position: Qt.vector3d(400, 50, 0) + particleScaleVariation: 0.8 + particleRotationVariation: Qt.vector3d(180, 180, 180) + particleRotationVelocityVariation: Qt.vector3d(200, 200, 200); + velocity: VectorDirection3D { + direction: Qt.vector3d(-350, 150, 0) + directionVariation: Qt.vector3d(30, 30, 30) + } + emitRate: 100 + lifeSpan: 2500 + Node { + x: 20 + Text { + anchors.verticalCenter: parent.verticalCenter + text: "RED" + font.pointSize: AppSettings.fontSizeLarge + color: "#ffffff" + } + } + } + ParticleEmitter3D { + particle: particleGreen + position: Qt.vector3d(400, 0, 0) + particleScaleVariation: 0.8 + particleRotationVariation: Qt.vector3d(180, 180, 180) + particleRotationVelocityVariation: Qt.vector3d(200, 200, 200); + velocity: VectorDirection3D { + direction: Qt.vector3d(-350, 150, 0) + directionVariation: Qt.vector3d(30, 30, 30) + } + emitRate: 100 + lifeSpan: 2500 + Node { + x: 20 + Text { + anchors.verticalCenter: parent.verticalCenter + text: "GREEN" + font.pointSize: AppSettings.fontSizeLarge + color: "#ffffff" + } + } + } + ParticleEmitter3D { + particle: particleBlue + position: Qt.vector3d(400, -50, 0) + particleScaleVariation: 0.8 + particleRotationVariation: Qt.vector3d(180, 180, 180) + particleRotationVelocityVariation: Qt.vector3d(200, 200, 200); + velocity: VectorDirection3D { + direction: Qt.vector3d(-350, 150, 0) + directionVariation: Qt.vector3d(30, 30, 30) + } + emitRate: 100 + lifeSpan: 2500 + Node { + x: 20 + Text { + anchors.verticalCenter: parent.verticalCenter + text: "BLUE" + font.pointSize: AppSettings.fontSizeLarge + color: "#ffffff" + } + } + } + ParticleEmitter3D { + particle: particleWhite + position: Qt.vector3d(400, -100, 0) + particleScaleVariation: 0.8 + particleRotationVariation: Qt.vector3d(180, 180, 180) + particleRotationVelocityVariation: Qt.vector3d(200, 200, 200); + velocity: VectorDirection3D { + direction: Qt.vector3d(-350, 150, 0) + directionVariation: Qt.vector3d(30, 30, 30) + } + emitRate: 100 + lifeSpan: 2500 + Node { + x: 20 + Text { + anchors.verticalCenter: parent.verticalCenter + text: "WHITE" + font.pointSize: AppSettings.fontSizeLarge + color: "#ffffff" + } + } + } + + Gravity3D { + // Enable to affect only some of the particles + //particles: [particleRed, particleBlue, particleGreen] + direction: Qt.vector3d(0, 1, 0) + magnitude: -100 + } + } + } + + SettingsView { + CustomCheckBox { + id: checkBoxUnified + text: "Unified Variation" + checked: false + } + CustomLabel { + text: "Red Variation" + } + CustomSlider { + id: sliderRedVariation + sliderValue: 0 + fromValue: 0.0 + toValue: 1.0 + } + CustomLabel { + text: "Green Variation" + } + CustomSlider { + id: sliderGreenVariation + sliderValue: 0 + fromValue: 0.0 + toValue: 1.0 + } + CustomLabel { + text: "Blue Variation" + } + CustomSlider { + id: sliderBlueVariation + sliderValue: 0 + fromValue: 0.0 + toValue: 1.0 + } + CustomLabel { + text: "Alpha Variation" + } + CustomSlider { + id: sliderAlphaVariation + sliderValue: 0 + fromValue: 0.0 + toValue: 1.0 + } + } + + LoggingView { + anchors.bottom: parent.bottom + particleSystems: [psystem] + } +} -- cgit v1.2.3