aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick3d/particles3d/TrailEmitterBurst.qml
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2023-06-08 16:25:47 +0200
committerAndy Nichols <nezticle@gmail.com>2023-06-12 16:05:36 +0200
commitf7cc7656e2bd01851c5fb04747b0c8439ffa9dbe (patch)
tree3999f4a6efc61e1841e21941fd6bf8a51025d121 /examples/quick3d/particles3d/TrailEmitterBurst.qml
parent16c734c0a26b5fed0542f3ef2fee07be74a45da8 (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.qml218
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]
+ }
+}