-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvector.h
More file actions
58 lines (47 loc) · 1.62 KB
/
vector.h
File metadata and controls
58 lines (47 loc) · 1.62 KB
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef _VECTOR_H_
#define _VECTOR_H_
/// @file vector.h
/// @defgroup Vector
/// @{
/// @brief Structure représentant un vecteur 2D dont les composantes sont de type float.
typedef struct Vec2_s
{
/// @brief Abscisse du vecteur.
float x;
/// @brief Ordonnée du vecteur.
float y;
} Vec2;
/// @brief Construit un vecteur à partir de ses composantes.
/// @param[in] x la composante x.
/// @param[in] y la composante y.
/// @return Le vecteur ayant les composantes données.
Vec2 Vec2_set(float x, float y);
/// @brief Aditionne deux vecteurs.
/// @param[in] v1 le premier vecteur.
/// @param[in] v2 le second vecteur.
/// @return La somme de v1 et v2.
Vec2 Vec2_add(Vec2 v1, Vec2 v2);
/// @brief Soustrait deux vecteurs.
/// @param[in] v1 le premier vecteur.
/// @param[in] v2 le second vecteur.
/// @return La différence de v1 par v2.
Vec2 Vec2_sub(Vec2 v1, Vec2 v2);
/// @brief Multiplie un vecteur par un scalaire.
/// @param[in] v le vecteur.
/// @param[in] s le scalaire.
/// @return Le produit de s et v.
Vec2 Vec2_scale(Vec2 v, float s);
/// @brief Calcule la norme d'un vecteur.
/// @param[in] v le vecteur.
/// @return La norme euclidienne de v.
float Vec2_norm(Vec2 v);
/// @brief Normalise un vecteur.
/// @param[in] v le vecteur.
/// @return Le vecteur unitaire de même direction.
Vec2 Vec2_normalize(Vec2 v);
/// @brief Renvoie la distance entre deux points.
/// @param[in] v1 les coordonnées du premier point.
/// @param[in] v2 les coordonnées du second point.
/// @return La distance séparant les deux points.
float Vec2_distance(Vec2 v1, Vec2 v2);
#endif