tychoBCGEN  0.5
 All Data Structures Namespaces Files Functions Variables
wind_emitter.cpp
Go to the documentation of this file.
1 
5 #include "myscene.h"
6 #include "mainwindow.h"
7 #include "ui_mainwindow.h"
8 #include "global.h"
9 #include "image_stack.h"
10 #include <QPixmap>
11 #include <QString>
12 #include <QGraphicsScene>
13 #include <QRgb>
14 #include <QColor>
15 
17 
18  ui->xdir->setEnabled(true);
19  ui->ydir->setEnabled(true);
20  ui->mxdir->setEnabled(true);
21  ui->mydir->setEnabled(true);
22 
23  ui->resetwindemitter->setEnabled(true);
24 
25  ui->xdir->setChecked(true);
26 
27 }
28 
30 
31  ui->xdir->setChecked(true);
32  ui->mxdir->setChecked(false);
33  ui->ydir->setChecked(false);
34  ui->mydir->setChecked(false);
35 
36  ui->xdir->setDisabled(true);
37  ui->ydir->setDisabled(true);
38  ui->mxdir->setDisabled(true);
39  ui->mydir->setDisabled(true);
40 
41  ui->resetwindemitter->setDisabled(true);
42 
43 }
44 
45 
46 
48 
49 
50  if (no_image == false){
51 
52  int i;
53  int j;
54 
55  i = 0;
56  j = 0;
57 
59 
60  if (counter_wind_emitter == 1) point1 = point;
61  if (counter_wind_emitter == 2){
62  point2 = point;
63 
64  if (point1.y() < point2.y()){
65 
66  if (ui->xdir->isChecked() == true){
67 
68 
69  for (j = point1.toPoint().y(); j < point2.toPoint().y(); j++){
70  i = point1.toPoint().x();
71  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
72  (wind_emitter.pixel(i+1,j) !=final_mark_color.rgba())&&
73  (wind_emitter.pixel(i-1,j) !=final_mark_color.rgba())){
74  wind_emitter.setPixel(i,j, emitter_color_x.rgba());
75  wind_emitter_save.setPixel(i,j, emitter_color_x.rgba());
76  }
77  }
78  }
79 
80  if (ui->mxdir->isChecked() == true){
81 
82 
83  for (j = point1.toPoint().y(); j < point2.toPoint().y(); j++){
84  i = point1.toPoint().x();
85  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
86  (wind_emitter.pixel(i+1,j) !=final_mark_color.rgba())&&
87  (wind_emitter.pixel(i-1,j) !=final_mark_color.rgba())){
88  wind_emitter.setPixel(i,j, emitter_color_mx.rgba());
89  wind_emitter_save.setPixel(i,j, emitter_color_mx.rgba());
90  }
91  }
92  }
93  }
94  else{
95  if (ui->xdir->isChecked() == true){
96 
97 
98  for (j = point2.toPoint().y(); j < point1.toPoint().y(); j++){
99  i = point2.toPoint().x();
100  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
101  (wind_emitter.pixel(i+1,j) !=final_mark_color.rgba())&&
102  (wind_emitter.pixel(i-1,j) !=final_mark_color.rgba())) {
103  wind_emitter.setPixel(i,j, emitter_color_x.rgba());
104  wind_emitter_save.setPixel(i,j, emitter_color_x.rgba());
105  }
106  }
107  }
108 
109  if (ui->mxdir->isChecked() == true){
110 
111 
112  for (j = point2.toPoint().y(); j < point1.toPoint().y(); j++){
113  i = point2.toPoint().x();
114  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
115  (wind_emitter.pixel(i+1,j) !=final_mark_color.rgba())&&
116  (wind_emitter.pixel(i-1,j) !=final_mark_color.rgba())){
117  wind_emitter.setPixel(i,j, emitter_color_mx.rgba());
118  wind_emitter_save.setPixel(i,j, emitter_color_mx.rgba());
119  }
120  }
121  }
122 
123 
124  }
125 
126  if (point1.x() < point2.x()){
127  if (ui->ydir->isChecked() == true){
128 
129 
130  for (i = point1.toPoint().x(); i < point2.toPoint().x(); i++){
131  j = point1.toPoint().y();
132  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
133  (wind_emitter.pixel(i,j+1) !=final_mark_color.rgba())&&
134  (wind_emitter.pixel(i,j-1) !=final_mark_color.rgba())) {
135  wind_emitter.setPixel(i,j, emitter_color_y.rgba());
136  wind_emitter_save.setPixel(i,j, emitter_color_y.rgba());
137  }
138  }
139  }
140 
141  if (ui->mydir->isChecked() == true){
142 
143 
144  for (i = point1.toPoint().x(); i < point2.toPoint().x(); i++){
145  j = point1.toPoint().y();
146  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
147  (wind_emitter.pixel(i,j+1) !=final_mark_color.rgba())&&
148  (wind_emitter.pixel(i,j-1) !=final_mark_color.rgba())){
149  wind_emitter.setPixel(i,j, emitter_color_my.rgba());
150  wind_emitter_save.setPixel(i,j, emitter_color_my.rgba());
151  }
152  }
153  }
154  }
155  else{
156  if (ui->ydir->isChecked() == true){
157 
158  for (i = point2.toPoint().x(); i < point1.toPoint().x(); i++){
159  j = point2.toPoint().y();
160  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
161  (wind_emitter.pixel(i,j+1) !=final_mark_color.rgba())&&
162  (wind_emitter.pixel(i,j-1) !=final_mark_color.rgba())) {
163  wind_emitter.setPixel(i,j, emitter_color_y.rgba());
164  wind_emitter_save.setPixel(i,j, emitter_color_y.rgba());
165  }
166  }
167  }
168 
169  if (ui->mydir->isChecked() == true){
170 
171  for (i = point2.toPoint().x(); i < point1.toPoint().x(); i++){
172  j = point2.toPoint().y();
173  if ((wind_emitter.pixel(i,j) !=final_mark_color.rgba())&&
174  (wind_emitter.pixel(i,j+1) !=final_mark_color.rgba())&&
175  (wind_emitter.pixel(i,j-1) !=final_mark_color.rgba())) {
176  wind_emitter.setPixel(i,j, emitter_color_my.rgba());
177  wind_emitter_save.setPixel(i,j, emitter_color_my.rgba());
178  }
179  }
180  }
181 
182  }
183 
184 
186 
187  }
188 
189 
190  scene->clear();
191  pixmap = QPixmap::fromImage(wind_emitter);
192  scene->addPixmap(pixmap);
193  ui->graphicsView->setScene(scene);
194  ui->graphicsView->setDragMode(ui->graphicsView->ScrollHandDrag);
195  ui->graphicsView->setFocus();
196  }
197 }
198 
199 
200 
201 
203 
204 
205  if (no_image == false){
208 
209  scene->clear();
210  pixmap = QPixmap::fromImage(wind_emitter);
211  scene->addPixmap(pixmap);
212  ui->graphicsView->setScene(scene);
213  ui->graphicsView->setDragMode(ui->graphicsView->ScrollHandDrag);
214  ui->graphicsView->setFocus();
215 
216  }
217 }
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237