Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
ParticleColourGenerator.cpp
Go to the documentation of this file.
1
2
4
6
7namespace Divide {
8
9void ParticleColourGenerator::generate(Task& packagedTasksParent,
10 TaskPool& parentPool,
11 [[maybe_unused]] const U64 deltaTimeUS,
12 ParticleData& p,
13 const U32 startIndex,
14 const U32 endIndex) {
15
16 using iter_t_start = decltype(std::begin(p._startColour));
17 for_each_interval<iter_t_start>(std::begin(p._startColour) + startIndex,
18 std::begin(p._startColour) + endIndex,
20 [&](iter_t_start from, iter_t_start to)
21 {
22 Start(*CreateTask(
23 &packagedTasksParent,
24 [this, from, to](const Task&) {
25 std::for_each(from, to, [&](FColour4& colour)
26 {
27 colour.set(Random(_minStartCol, _maxStartCol));
28 });
29 }),
30 parentPool);
31 });
32
33 using iter_t_end = decltype(std::begin(p._endColour));
34 for_each_interval<iter_t_end>(std::begin(p._endColour) + startIndex,
35 std::begin(p._endColour) + endIndex,
37 [&](iter_t_end from, iter_t_end to)
38 {
39 Start(*CreateTask(
40 &packagedTasksParent,
41 [this, from, to](const Task&) {
42 std::for_each(from, to, [&](FColour4& colour)
43 {
44 colour.set(Random(_minEndCol, _maxEndCol));
45 });
46 }),
47 parentPool);
48 });
49}
50}
Container to store data for a given set of particles.
Definition: ParticleData.h:59
static constexpr U32 g_threadPartitionSize
Definition: ParticleData.h:61
vector< FColour4 > _startColour
r,g,b,a = colour and transparency
Definition: ParticleData.h:78
Handle console commands that start with a forward slash.
Definition: AIProcessor.cpp:7
uint32_t U32
uint64_t U64
void generate(Task &packagedTasksParent, TaskPool &parentPool, U64 deltaTimeUS, ParticleData &p, U32 startIndex, U32 endIndex) override