Files
RedBear-OS/recipes/wip/qt/qtquick3d/source/examples/quick3d/particles3d/FadingInOut.qml
T
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00

203 lines
6.7 KiB
QML

// 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)
}
// Model shared between particles
Component {
id: particleComponent
Model {
source: "#Cube"
scale: Qt.vector3d(0.4, 0.4, 0.4)
materials: PrincipledMaterial {
}
}
}
ParticleSystem3D {
id: psystem
// Particles
ModelParticle3D {
id: particleNone
delegate: particleComponent
maxAmount: 40
color: "#ffffff"
fadeInEffect: ModelParticle3D.FadeNone
fadeOutEffect: ModelParticle3D.FadeNone
hasTransparency: false
}
ModelParticle3D {
id: particleOpacity
delegate: particleComponent
maxAmount: 40
color: "#ffffff"
fadeInEffect: ModelParticle3D.FadeOpacity
fadeOutEffect: ModelParticle3D.FadeOpacity
fadeInDuration: sliderFadeInDuration.sliderValue
fadeOutDuration: sliderFadeOutDuration.sliderValue
}
ModelParticle3D {
id: particleScale
delegate: particleComponent
maxAmount: 40
color: "#ffffff"
fadeInEffect: ModelParticle3D.FadeScale
fadeOutEffect: ModelParticle3D.FadeScale
fadeInDuration: sliderFadeInDuration.sliderValue
fadeOutDuration: sliderFadeOutDuration.sliderValue
}
ModelParticle3D {
id: particleScaleOpacity
delegate: particleComponent
maxAmount: 40
color: "#ffffff"
fadeInEffect: ModelParticle3D.FadeScale
fadeOutEffect: ModelParticle3D.FadeOpacity
fadeInDuration: sliderFadeInDuration.sliderValue
fadeOutDuration: sliderFadeOutDuration.sliderValue
}
// Emitters, one per particle
ParticleEmitter3D {
particle: particleNone
position: Qt.vector3d(300, 200, 0)
particleScaleVariation: 0.5
particleRotationVariation: Qt.vector3d(180, 180, 180)
particleRotationVelocityVariation: Qt.vector3d(200, 200, 200);
velocity: VectorDirection3D {
direction: Qt.vector3d(-200, 0, 0)
}
emitRate: 10
lifeSpan: 4000
Node {
x: 80
Text {
anchors.verticalCenter: parent.verticalCenter
text: "NONE"
font.pointSize: AppSettings.fontSizeLarge
color: "#ffffff"
}
}
}
ParticleEmitter3D {
particle: particleOpacity
position: Qt.vector3d(300, 100, 0)
particleScaleVariation: 0.5
particleRotationVariation: Qt.vector3d(180, 180, 180)
particleRotationVelocityVariation: Qt.vector3d(200, 200, 200);
velocity: VectorDirection3D {
direction: Qt.vector3d(-200, 0, 0)
}
emitRate: 10
lifeSpan: 4000
Node {
x: 80
Text {
anchors.verticalCenter: parent.verticalCenter
text: "OPACITY"
font.pointSize: AppSettings.fontSizeLarge
color: "#ffffff"
}
}
}
ParticleEmitter3D {
particle: particleScale
position: Qt.vector3d(300, 0, 0)
particleScaleVariation: 0.5
particleRotationVariation: Qt.vector3d(180, 180, 180)
particleRotationVelocityVariation: Qt.vector3d(200, 200, 200);
velocity: VectorDirection3D {
direction: Qt.vector3d(-200, 0, 0)
}
emitRate: 10
lifeSpan: 4000
Node {
x: 80
Text {
anchors.verticalCenter: parent.verticalCenter
text: "SCALE"
font.pointSize: AppSettings.fontSizeLarge
color: "#ffffff"
}
}
}
ParticleEmitter3D {
particle: particleScaleOpacity
position: Qt.vector3d(300, -100, 0)
particleScaleVariation: 0.5
particleRotationVariation: Qt.vector3d(180, 180, 180)
particleRotationVelocityVariation: Qt.vector3d(200, 200, 200);
velocity: VectorDirection3D {
direction: Qt.vector3d(-200, 0, 0)
}
emitRate: 10
lifeSpan: 4000
Node {
x: 80
Text {
anchors.verticalCenter: parent.verticalCenter
text: "SCALE -> OPACITY"
font.pointSize: AppSettings.fontSizeLarge
color: "#ffffff"
}
}
}
}
}
SettingsView {
CustomLabel {
text: "Fade In Duration (ms)"
}
CustomSlider {
id: sliderFadeInDuration
sliderValue: 1500
fromValue: 0
toValue: 4000
}
CustomLabel {
text: "Fade Out Duration (ms)"
}
CustomSlider {
id: sliderFadeOutDuration
sliderValue: 1500
fromValue: 0
toValue: 4000
}
}
LoggingView {
anchors.bottom: parent.bottom
particleSystems: [psystem]
}
}