Blender V5.0
particles.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
7#include "util/array.h"
8#include "util/types.h"
9
10#include "graph/node.h"
11
13
14class Device;
15class DeviceScene;
16class Progress;
17class Scene;
18
19/* Particle System */
20
21struct Particle {
22 int index;
23 float age;
24 float lifetime;
27 float size;
30};
31
32class ParticleSystem : public Node {
33 public:
35
37 ~ParticleSystem() override;
38
39 void tag_update(Scene *scene);
40
42};
43
44/* ParticleSystem Manager */
45
47 bool need_update_;
48
49 public:
52
54 DeviceScene *dscene,
55 Scene *scene,
56 Progress &progress);
57 void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress);
58 void device_free(Device *device, DeviceScene *dscene);
59
60 void tag_update(Scene *scene);
61
62 bool need_update() const;
63};
64
void device_free(Device *device, DeviceScene *dscene)
void tag_update(Scene *scene)
void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
void device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
#define CCL_NAMESPACE_END
#define NODE_DECLARE
Definition node_type.h:145
ParticleData * particles
NODE_DECLARE ParticleSystem()
~ParticleSystem() override
void tag_update(Scene *scene)
float age
Definition particles.h:23
float3 location
Definition particles.h:25
float size
Definition particles.h:27
float4 rotation
Definition particles.h:26
float3 velocity
Definition particles.h:28
float3 angular_velocity
Definition particles.h:29
int index
Definition particles.h:22