Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Image_GL / INC / cpu / DomaineMath_CPU.h
1 #ifndef DOMAINE_MATH_CPU_H
2 #define DOMAINE_MATH_CPU_H
3
4 #include "envGLImage.h"
5 #include "DomaineEcran_CPU.h"
6 #include <string>
7
8 using std::string;
9 using std::ostream;
10
11 /*----------------------------------------------------------------------*\
12 |* Declaration *|
13 \*---------------------------------------------------------------------*/
14
15 /*--------------------------------------*\
16 |* Public *|
17 \*-------------------------------------*/
18
19 namespace cpu
20 {
21 /**
22 * (x0,y0) upper left corner of a dx x dy square.
23 * x[x0,x1] y[y0,y1]
24 */
25 class CBI_GLIMAGE DomaineMath
26 {
27 /*--------------------------------------*\
28 |* Constructor *|
29 \*-------------------------------------*/
30
31 public:
32
33 DomaineMath();
34
35 DomaineMath(double x0, double y0, double x1, double y1);
36
37 /*--------------------------------------*\
38 |* Methodes *|
39 \*--------------------------------------*/
40
41 public:
42
43 cpu::DomaineMath extractDomaineFromSelection(const cpu::DomaineEcran &domaineSelection, int dxFrame, int dyFrame) const;
44
45 string toString() const;
46
47 inline double dx() const
48 {
49 return x1 - x0;
50 }
51
52 inline double dy() const
53 {
54 return y1 - y0;
55 }
56
57
58 /**
59 * toXY est uniquement utilisable lorsque le domaine a été associé a une ImageFonctionelle!
60 */
61 void toXY(int i, int j, double* ptrX, double* ptrY) const;
62
63 static cpu::DomaineMath create(double x0, double y0, double dx, double dy);
64
65 private:
66
67 void computeDxDy(int w, int h);
68
69 public:
70
71
72 /*--------------------------------------*\
73 |* Attributs *|
74 \*-------------------------------------*/
75
76 public:
77
78 //Input
79 double x0;
80 double y0;
81 double x1;
82 double y1;
83
84 private:
85
86 // Tools
87 double dxDw; //old dx
88 double dyDh; //old dy
89
90 friend class ImageFonctionelMOOs_A;
91 // Toutes les méthode de la classe ImageFonctionelMOOs_A sont amie
92 };
93
94 CBI_GLIMAGE ostream& operator<<(ostream& stream, const cpu::DomaineMath& domaine);
95
96
97 }
98 #endif
99
100 /*----------------------------------------------------------------------*\
101 |* End *|
102 \*---------------------------------------------------------------------*/
103