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"
32 class FindObjScanFloat;
33 class FindObjScanFloatText;
34 class FindObjDrawSceneBorder;
35 class FindObjDrawKeypoints;
37 class FindObjDrawObjectBorder;
38 class FindObjDrawReplaceBorder;
39 class FindObjDragObject;
40 class FindObjDragScene;
41 class FindObjDragReplace;
42 class FindObjAlgorithm;
46 class FindObjTranslate;
50 class FindObjReset : public BC_GenericButton
53 FindObjReset(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
59 class FindObjLayer : public BC_TumbleTextBox
62 FindObjLayer(FindObjMain *plugin, FindObjWindow *gui,
63 int x, int y, int *value);
65 static int calculate_w(FindObjWindow *gui);
71 class FindObjScanFloat : public BC_FPot
74 FindObjScanFloat(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
75 float *value, float min=0., float max=100.);
80 FindObjScanFloatText *center_text;
84 class FindObjScanFloatText : public BC_TextBox
87 FindObjScanFloatText(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value);
91 FindObjScanFloat *center;
96 class FindObjDrawSceneBorder : public BC_CheckBox
99 FindObjDrawSceneBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
105 class FindObjDrawObjectBorder : public BC_CheckBox
108 FindObjDrawObjectBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
114 class FindObjDrawReplaceBorder : public BC_CheckBox
117 FindObjDrawReplaceBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
123 class FindObjDrawKeypoints : public BC_CheckBox
126 FindObjDrawKeypoints(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
132 class FindObjReplace : public BC_CheckBox
135 FindObjReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
141 class FindObjDragScene : public DragCheckBox
144 FindObjDragScene(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
145 float drag_x, float drag_y, float drag_w, float drag_h);
148 Track *get_drag_track();
149 int64_t get_drag_position();
157 class FindObjDragObject : public DragCheckBox
160 FindObjDragObject(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
161 float drag_x, float drag_y, float drag_w, float drag_h);
162 ~FindObjDragObject();
165 Track *get_drag_track();
166 int64_t get_drag_position();
173 class FindObjDragReplace : public DragCheckBox
176 FindObjDragReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
177 float drag_x, float drag_y, float drag_w, float drag_h);
178 ~FindObjDragReplace();
181 Track *get_drag_track();
182 int64_t get_drag_position();
189 class FindObjAlgorithm : public BC_PopupMenu
192 FindObjAlgorithm(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
194 void create_objects();
195 void update(int mode);
196 static int calculate_w(FindObjWindow *gui);
197 static int from_text(char *text);
198 static char* to_text(int mode);
203 class FindObjUseFlann : public BC_CheckBox
206 FindObjUseFlann(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
212 class FindObjScale : public BC_CheckBox
215 FindObjScale(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
221 class FindObjRotate : public BC_CheckBox
224 FindObjRotate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
230 class FindObjTranslate : public BC_CheckBox
233 FindObjTranslate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
239 class FindObjMode : public BC_PopupMenu
242 FindObjMode(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
244 void create_objects();
245 void update(int mode);
246 static int calculate_w(FindObjWindow *gui);
247 static int from_text(char *text);
248 static char *to_text(int mode);
253 class FindObjBlend : public BC_IPot
256 FindObjBlend(FindObjMain *plugin, int x, int y, int *value);
262 class FindObjWindow : public PluginClientWindow
265 FindObjWindow(FindObjMain *plugin);
267 void create_objects();
272 FindObjAlgorithm *algorithm;
273 FindObjUseFlann *use_flann;
276 FindObjRotate *rotate;
277 FindObjTranslate *translate;
278 FindObjScanFloat *object_x, *object_y, *object_w, *object_h;
279 FindObjScanFloatText *object_x_text, *object_y_text, *object_w_text, *object_h_text;
280 FindObjScanFloat *scene_x, *scene_y, *scene_w, *scene_h;
281 FindObjScanFloatText *scene_x_text, *scene_y_text, *scene_w_text, *scene_h_text;
282 FindObjScanFloat *replace_x, *replace_y, *replace_w, *replace_h;
283 FindObjScanFloatText *replace_x_text, *replace_y_text, *replace_w_text, *replace_h_text;
284 FindObjScanFloat *replace_dx, *replace_dy;
285 FindObjScanFloatText *replace_dx_text, *replace_dy_text;
286 FindObjDrawKeypoints *draw_keypoints;
287 FindObjDrawSceneBorder *draw_scene_border;
288 FindObjReplace *replace_object;
289 FindObjDrawObjectBorder *draw_object_border;
290 FindObjDrawReplaceBorder *draw_replace_border;
291 FindObjDragObject *drag_object;
292 FindObjDragScene *drag_scene;
293 FindObjDragReplace *drag_replace;
294 FindObjLayer *object_layer;
295 FindObjLayer *scene_layer;
296 FindObjLayer *replace_layer;