diff options
author | Andy Nichols <andy.nichols@qt.io> | 2023-06-08 16:25:47 +0200 |
---|---|---|
committer | Andy Nichols <nezticle@gmail.com> | 2023-06-12 16:05:36 +0200 |
commit | f7cc7656e2bd01851c5fb04747b0c8439ffa9dbe (patch) | |
tree | 3999f4a6efc61e1841e21941fd6bf8a51025d121 /examples/quick3d/particles3d/TrailEmitterBurst.qml | |
parent | 16c734c0a26b5fed0542f3ef2fee07be74a45da8 (diff) |
Fix qmllint errors in particles3d example
Pick-to: 6.6
Change-Id: I10126755f2a42fb365219f09b9c54e45ed8e4316
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'examples/quick3d/particles3d/TrailEmitterBurst.qml')
-rw-r--r-- | examples/quick3d/particles3d/TrailEmitterBurst.qml | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/examples/quick3d/particles3d/TrailEmitterBurst.qml b/examples/quick3d/particles3d/TrailEmitterBurst.qml new file mode 100644 index 00000000..c6cf8d5f --- /dev/null +++ b/examples/quick3d/particles3d/TrailEmitterBurst.qml @@ -0,0 +1,218 @@ +// Copyright (C) 2021 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 { + id: view3D + anchors.fill: parent + camera: camera + + environment: SceneEnvironment { + clearColor: "#202020" + backgroundMode: SceneEnvironment.Color + antialiasingMode: AppSettings.antialiasingMode + antialiasingQuality: AppSettings.antialiasingQuality + } + + PerspectiveCamera { + id: camera + position: Qt.vector3d(0, 0, 600) + } + + PointLight { + position: Qt.vector3d(400, 600, 400) + brightness: 80 + ambientColor: Qt.rgba(0.3, 0.3, 0.3, 1.0) + } + + Component { + id: particleComponent + Model { + source: "#Cube" + scale: Qt.vector3d(0.5, 0.5, 0.5) + materials: DefaultMaterial { + } + } + } + + Component { + id: particleComponentStar + Model { + source: "#Rectangle" + scale: Qt.vector3d(0.1, 0.1, 0.0) + materials: DefaultMaterial { + diffuseMap: Texture { + source: "images/star2.png" + } + } + } + } + + ParticleSystem3D { + id: psystem + + // Particles + ModelParticle3D { + id: particleCube + delegate: particleComponent + maxAmount: 4 + color: "#ffffff" + colorVariation: Qt.vector4d(0.4, 0.4, 0.4, 0.0) + unifiedColorVariation: true + } + ModelParticle3D { + id: particleSpark + delegate: particleComponentStar + maxAmount: 600 + fadeInDuration: 200 + fadeOutDuration: 500 + color: "#ffffff" + colorVariation: Qt.vector4d(0.4, 0.4, 0.4, 0.8) + unifiedColorVariation: true + + } + ModelParticle3D { + id: particleSpark2 + delegate: particleComponentStar + maxAmount: 1000 + fadeInDuration: 200 + fadeOutDuration: 500 + color: "#ff6060" + colorVariation: Qt.vector4d(0.5, 0.2, 0.2, 0.5) + unifiedColorVariation: true + } + ModelParticle3D { + id: particleStar + delegate: particleComponentStar + maxAmount: 1000 + color: "#ffee60" + colorVariation: Qt.vector4d(0.6, 0.6, 0.2, 0.5) + unifiedColorVariation: true + } + + ParticleEmitter3D { + particle: particleCube + position: Qt.vector3d(-550, -300, 0) + particleScaleVariation: 0.4 + particleRotationVariation: Qt.vector3d(180, 180, 180) + particleRotationVelocityVariation: Qt.vector3d(200, 200, 200); + velocity: VectorDirection3D { + direction: Qt.vector3d(250, 400, 0) + directionVariation: Qt.vector3d(50, 50, 50) + } + emitRate: 1 + lifeSpan: 4000 + } + + TrailEmitter3D { + id: trailEmitter + particle: particleSpark + follow: particleCube + particleScale: 1.5 + particleScaleVariation: 0.5 + particleRotationVariation: Qt.vector3d(20, 20, 180) + particleRotationVelocityVariation: Qt.vector3d(100, 100, 100); + velocity: VectorDirection3D { + directionVariation: Qt.vector3d(20, 20, 20) + } + emitRate: sliderEmitRate.sliderValue + lifeSpan: 1000 + } + + TrailEmitter3D { + id: trailEmitter2 + particle: particleSpark2 + follow: particleCube + particleScale: 2.5 + particleScaleVariation: 0.5 + particleRotationVariation: Qt.vector3d(20, 20, 180) + particleRotationVelocityVariation: Qt.vector3d(100, 100, 100); + velocity: VectorDirection3D { + directionVariation: Qt.vector3d(100, 100, 100) + } + lifeSpan: 1000 + } + + ParticleEmitter3D { + id: starEmitter + particle: particleStar + particleScale: 5.0 + particleScaleVariation: 3.0 + particleRotationVariation: Qt.vector3d(0, 0, 180) + particleRotationVelocityVariation: Qt.vector3d(100, 100, 100); + velocity: VectorDirection3D { + direction: Qt.vector3d(0, 500, 0) + directionVariation: Qt.vector3d(80, 80, 80) + } + lifeSpan: 1000 + } + + Gravity3D { + direction: Qt.vector3d(0, 1, 0) + magnitude: -200 + } + } + } + + MouseArea { + anchors.fill: parent + onClicked: { + trailEmitter2.burst(50); + var pos = view3D.mapTo3DScene(Qt.vector3d(mouseX, mouseY, camera.z)); + starEmitter.burst(sliderBurstAmount.sliderValue, + sliderBurstDuration.sliderValue, + pos); + + } + } + + Text { + anchors.centerIn: parent + font.pointSize: AppSettings.fontSizeLarge + color: "#ffffff" + text: qsTr("Click to burst!") + } + + SettingsView { + CustomLabel { + text: "Burst amount" + } + CustomSlider { + id: sliderBurstAmount + sliderValue: 100 + fromValue: 10 + toValue: 200 + } + CustomLabel { + text: "Burst duration" + } + CustomSlider { + id: sliderBurstDuration + sliderValue: 100 + fromValue: 0 + toValue: 1000 + } + CustomLabel { + text: "Trail emitRate" + } + CustomSlider { + id: sliderEmitRate + sliderValue: 100 + fromValue: 0 + toValue: 150 + } + } + + LoggingView { + anchors.bottom: parent.bottom + particleSystems: [psystem] + } +} |