INFO607
particules.h
Go to the documentation of this file.
1#ifndef _PARTICULES_H_
2#define _PARTICULES_H_
3
4#include "points.h"
5
6/// Représente un point / une particule en mouvement, avec position,
7/// mais aussi vitesse, force, et masse.
8typedef struct SParticule {
9 double x[DIM]; //< position x et y
10 double v[DIM]; //< vitesse x et y
11 double f[DIM]; //< somme des forces x et y
12 double m; //< masse
14
15/**
16 Initialise le point \a p avec la position (x,y), la vitesse
17 (vx,vy), une masse \a m et des forces nulles.x
18*/
19void initParticule( Particule* p, double x, double y, double vx, double vy, double m );
20
21
22/// Représente un tableau dynamique de particules.
28
29/**
30 Initialise le tableau de particules \a tab. Il contient 0 particules initialement, mais
31 peut accueillir jusqu'à 10 particules sans être agrandi.
32
33 @param tab un pointeur vers une structure TabParticule.
34*/
36
37/**
38 Ajoute si possible le particule \a p à la fin du tableau de particules \a tab.
39
40 @param tab un pointeur vers une structure TabParticule valide.
41 @param p une particule.
42*/
44
45/**
46 Modifie le \a i-ème point du tableau de points \a tab. Il devient
47 le point \a p.
48
49 @param tab un pointeur vers une structure TabParticule valide.
50 @param i un index valide (entre 0 et TabParticules_nb( tab ) )
51 @param p une particule.
52*/
53void TabParticules_set( TabParticules* tab, int i, Particule p );
54
55/**
56 @param tab un pointeur vers une structure TabParticule valide.
57 @param i un index valide (entre 0 et TabParticules_nb( tab ) )
58 @return le \a i-ème point du tableau de points \a tab.
59*/
61
62/**
63 @param tab un pointeur vers une structure TabParticule valide.
64 @param i un index valide (entre 0 et TabParticules_nb( tab ) )
65 @return un pointeur vers le \a i-ème point du tableau de points \a tab.
66*/
68
69/**
70 @param tab un pointeur vers une structure TabParticule valide.
71 @return le nombre de points utiles stockés dans le tableau de points \a tab.
72*/
74
75/**
76 Indique que le tableau de points \a tab n'est plus utilisé et
77 libère la mémoire associée. Il passe à une taille 0.
78
79 @param tab un pointeur vers une structure TabParticule valide.
80 */
82
83/**
84 Utilisé en interne. Agrandit automatiquement le tableau si nécessaire.
85*/
87
88/**
89 Supprime le dernier élément du tableau.
90*/
92
93/**
94 Supprime un élément en position \a i du tableau. Met le dernier
95 élément du tableau à la place.
96 */
97void TabParticules_supprime( TabParticules* tab, int i );
98
99#endif
#define DIM
Definition points.h:5
struct SParticule Particule
int TabParticules_nb(TabParticules *tab)
Definition particules.c:50
void TabParticules_agrandir(TabParticules *tab)
Definition particules.c:63
struct STabParticule TabParticules
Représente un tableau dynamique de particules.
void TabParticules_set(TabParticules *tab, int i, Particule p)
Definition particules.c:32
void TabParticules_supprime_dernier(TabParticules *tab)
Definition particules.c:74
void TabParticules_termine(TabParticules *tab)
Definition particules.c:55
Particule * TabParticules_ref(TabParticules *tab, int i)
Definition particules.c:44
void TabParticules_init(TabParticules *tab)
Definition particules.c:18
void TabParticules_supprime(TabParticules *tab, int i)
Definition particules.c:80
void TabParticules_ajoute(TabParticules *tab, Particule p)
Definition particules.c:25
void initParticule(Particule *p, double x, double y, double vx, double vy, double m)
Definition particules.c:6
Particule TabParticules_get(TabParticules *tab, int i)
Definition particules.c:38
double x[DIM]
Definition particules.h:9
double f[DIM]
Definition particules.h:11
double v[DIM]
Definition particules.h:10
double m
Definition particules.h:12
Représente un tableau dynamique de particules.
Definition particules.h:23
Particule * particules
Definition particules.h:26