source: flair-src/trunk/lib/FlairCore/src/Vector2D.h@ 161

Last change on this file since 161 was 161, checked in by Sanahuja Guillaume, 7 years ago

modifs

File size: 3.0 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file Vector2D.h
7 * \brief Class defining a 2D vector
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2013/05/02
10 * \version 4.0
11 */
12
13#ifndef VECTOR2D_H
14#define VECTOR2D_H
15
16namespace flair {
17namespace core {
18
19/*! \class Vector2D
20*
21* \brief Class defining a 2D vector
22*/
23class Vector2D {
24public:
25 /*!
26 * \brief Constructor
27 *
28 * Construct a Vector2D using specified values.
29 *
30 * \param x
31 * \param y
32 */
33 Vector2D(float x = 0, float y = 0);
34
35 /*!
36 * \brief Destructor
37 *
38 */
39 ~Vector2D();
40
41 /*!
42 * \brief Rotation
43 *
44 * \param value rotation value in radians
45 */
46 void Rotate(float value);
47
48 /*!
49 * \brief Rotation
50 *
51 * \param value rotation value in degrees
52 */
53 void RotateDeg(float value);
54
55 /*!
56 * \brief Norm
57 *
58 * \return value
59 */
60 float GetNorm(void) const;
61
62 /*!
63 * \brief Normalize
64 */
65 void Normalize(void);
66
67 /*!
68 * \brief Saturate
69 *
70 * Saturate between min and max
71 *
72 * \param min minimum Vector2D value
73 * \param max maximum Vector2D value
74 */
75 void Saturate(Vector2D min, Vector2D max);
76
77 /*!
78 * \brief Saturate
79 *
80 * Saturate between min and max
81 *
82 * \param min minimum Vector2D(min,min) value
83 * \param max maximum Vector2D(max,max) value
84 */
85 void Saturate(float min, float max);
86
87 /*!
88 * \brief Saturate
89 *
90 * Saturate between -abs(value) and abs(value)
91 *
92 * \param value saturation Vector2D value
93 */
94 void Saturate(const Vector2D &value);
95
96 /*!
97 * \brief Saturate
98 *
99 * Saturate between -abs(Vector2D(value,value)) and abs(Vector2D(value,value))
100 *
101 * \param value saturation Vector2D(value,value)
102 */
103 void Saturate(float value);
104
105 /*!
106 * \brief x
107 */
108 float x;
109
110 /*!
111 * \brief y
112 */
113 float y;
114
115 Vector2D &operator=(const Vector2D &vector);
116 Vector2D &operator+=(const Vector2D &vector);
117 Vector2D &operator-=(const Vector2D &vector);
118};
119
120/*! Add
121*
122* \brief Add
123*
124* \param vectorA vector
125* \param vectorB vector
126*/
127Vector2D operator+(const Vector2D &vectorA, const Vector2D &vectorB);
128
129/*! Substract
130*
131* \brief Substract
132*
133* \param vectorA vector
134* \param vectorB vector
135*/
136Vector2D operator-(const Vector2D &vectorA, const Vector2D &vectorB);
137
138/*! Opposite
139*
140* \brief Opposite
141*
142* \param vectorA vector
143*
144* \return -vectorA
145*/
146Vector2D operator-(const Vector2D &vectorA);
147
148/*! Divid
149*
150* \brief Divid
151*
152* \param vector vector
153* \param coeff coefficent
154* \return vector/coefficient
155*/
156Vector2D operator/(const Vector2D &vector, float coeff);
157
158/*! Multiply
159*
160* \brief Multiplyf
161*
162* \param vector vector
163* \param coeff coefficent
164* \return coefficient*vector
165*/
166Vector2D operator*(const Vector2D &vector, float coeff);
167
168/*! Multiply
169*
170* \brief Multiply
171*
172* \param coeff coefficent
173* \param vector vector
174* \return coefficient*vector
175*/
176Vector2D operator*(float coeff, const Vector2D &vector);
177
178} // end namespace core
179} // end namespace flair
180
181#endif // VECTOR2D_H
Note: See TracBrowser for help on using the repository browser.