5.1.2.1.1 : Implementation table_particle.h
Implementation of
table_particle.h file :
First, we have to avoid multiple include :
1
2
|
#ifndef __TABLE_PARTICLE_H__
#define __TABLE_PARTICLE_H__
|
And use some basic include :
Then, we define a struct which will contain all the particles we want to simulate but we will split the different caracteristics of the particles in different tables (position, velocity, acceleration) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
///@brief Table of particles
struct TableParticle{
///Number of particles
size_t nbParticle;
///Table of the x position of the particles
float * tabPosX;
///Table of the y position of the particles
float * tabPosY;
///Table of the z position of the particles
float * tabPosZ;
///Table of the x velocity of the particles
float * tabVitX;
///Table of the y velocity of the particles
float * tabVitY;
///Table of the z velocity of the particles
float * tabVitZ;
///Table of the x acceleration of the particles
float * tabAccX;
///Table of the y acceleration of the particles
float * tabAccY;
///Table of the z acceleration of the particles
float * tabAccZ;
};
|
Then we need to define a function to allocate the table of particles :
1
|
void allocTableParticle(TableParticle & tp, size_t nbParticle);
|
We need also to define a function to intialise the table of particles :
1
|
void initTableParticle(TableParticle & tp);
|
A function to free the table of particles :
1
|
void freeTableParticle(TableParticle & tp);
|
And finaly a function to move the particles :
1
|
void moveParticle(TableParticle & tp, float dt);
|
So we can close the ifndef :