4 * Copyright (C) 1997-2012 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #ifndef __FINDOBJWINDOW_H__
24 #define __FINDOBJWINDOW_H__
26 #include "dragcheckbox.h"
27 #include "findobj.inc"
33 class FindObjScanFloat;
34 class FindObjScanFloatText;
35 class FindObjDrawSceneBorder;
36 class FindObjDrawObjectBorder;
37 class FindObjDrawReplaceBorder;
38 class FindObjDrawKeypoints;
40 class FindObjDragScene;
41 class FindObjDragObject;
42 class FindObjDragReplace;
43 class FindObjAlgorithm;
44 class FindObjUseFlann;
45 class FindObjDrawMatch;
49 class FindObjTranslate;
54 class FindObjReset : public BC_GenericButton
57 FindObjReset(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
63 class FindObjLayer : public BC_TumbleTextBox
66 FindObjLayer(FindObjMain *plugin, FindObjWindow *gui,
67 int x, int y, int *value);
69 static int calculate_w(FindObjWindow *gui);
75 class FindObjScanFloat : public BC_FPot
78 FindObjScanFloat(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
79 float *value, float min=0., float max=100.);
84 FindObjScanFloatText *center_text;
88 class FindObjScanFloatText : public BC_TextBox
91 FindObjScanFloatText(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value);
95 FindObjScanFloat *center;
100 class FindObjDrawSceneBorder : public BC_CheckBox
103 FindObjDrawSceneBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
109 class FindObjDrawObjectBorder : public BC_CheckBox
112 FindObjDrawObjectBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
118 class FindObjDrawReplaceBorder : public BC_CheckBox
121 FindObjDrawReplaceBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
127 class FindObjDrawKeypoints : public BC_CheckBox
130 FindObjDrawKeypoints(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
136 class FindObjReplace : public BC_CheckBox
139 FindObjReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
145 class FindObjDragScene : public DragCheckBox
148 FindObjDragScene(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
149 float drag_x, float drag_y, float drag_w, float drag_h);
152 Track *get_drag_track();
153 int64_t get_drag_position();
161 class FindObjDragObject : public DragCheckBox
164 FindObjDragObject(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
165 float drag_x, float drag_y, float drag_w, float drag_h);
166 ~FindObjDragObject();
169 Track *get_drag_track();
170 int64_t get_drag_position();
177 class FindObjDragReplace : public DragCheckBox
180 FindObjDragReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
181 float drag_x, float drag_y, float drag_w, float drag_h);
182 ~FindObjDragReplace();
185 Track *get_drag_track();
186 int64_t get_drag_position();
193 class FindObjAlgorithm : public BC_PopupMenu
196 FindObjAlgorithm(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
198 void create_objects();
199 void update(int mode);
200 static int calculate_w(FindObjWindow *gui);
201 static int from_text(char *text);
202 static char* to_text(int mode);
207 class FindObjUseFlann : public BC_CheckBox
210 FindObjUseFlann(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
216 class FindObjDrawMatch : public BC_CheckBox
219 FindObjDrawMatch(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
225 class FindObjAspect : public BC_CheckBox
228 FindObjAspect(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
234 class FindObjScale : public BC_CheckBox
237 FindObjScale(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
243 class FindObjRotate : public BC_CheckBox
246 FindObjRotate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
252 class FindObjTranslate : public BC_CheckBox
255 FindObjTranslate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
261 class FindObjMode : public BC_PopupMenu
264 FindObjMode(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
266 void create_objects();
267 void update(int mode);
268 static int calculate_w(FindObjWindow *gui);
269 static int from_text(char *text);
270 static char *to_text(int mode);
275 class FindObjBlend : public BC_IPot
278 FindObjBlend(FindObjMain *plugin, int x, int y, int *value);
284 class FindObjWindow : public PluginClientWindow
287 FindObjWindow(FindObjMain *plugin);
289 void create_objects();
294 FindObjAlgorithm *algorithm;
295 FindObjUseFlann *use_flann;
296 FindObjDrawMatch *draw_match;
298 FindObjAspect *aspect;
300 FindObjRotate *rotate;
301 FindObjTranslate *translate;
302 FindObjScanFloat *object_x, *object_y, *object_w, *object_h;
303 FindObjScanFloatText *object_x_text, *object_y_text, *object_w_text, *object_h_text;
304 FindObjScanFloat *scene_x, *scene_y, *scene_w, *scene_h;
305 FindObjScanFloatText *scene_x_text, *scene_y_text, *scene_w_text, *scene_h_text;
306 FindObjScanFloat *replace_x, *replace_y, *replace_w, *replace_h;
307 FindObjScanFloatText *replace_x_text, *replace_y_text, *replace_w_text, *replace_h_text;
308 FindObjScanFloat *replace_dx, *replace_dy;
309 FindObjScanFloatText *replace_dx_text, *replace_dy_text;
310 FindObjDrawKeypoints *draw_keypoints;
311 FindObjDrawSceneBorder *draw_scene_border;
312 FindObjReplace *replace_object;
313 FindObjDrawObjectBorder *draw_object_border;
314 FindObjDrawReplaceBorder *draw_replace_border;
315 FindObjDragObject *drag_object;
316 FindObjDragScene *drag_scene;
317 FindObjDragReplace *drag_replace;
318 FindObjLayer *object_layer;
319 FindObjLayer *scene_layer;
320 FindObjLayer *replace_layer;