nuclear@2: #include nuclear@5: #include nuclear@2: nuclear@2: #ifndef __APPLE__ nuclear@2: #include nuclear@2: #else nuclear@2: #include nuclear@2: #endif nuclear@2: nuclear@4: #include nuclear@2: #include "gui.h" nuclear@2: #include "sdr.h" nuclear@3: #include "vmath.h" nuclear@3: nuclear@4: static int show_gui = 1; nuclear@5: static float fiter = 10; nuclear@2: nuclear@2: extern unsigned int sdr; nuclear@2: extern Vector4 seed; nuclear@2: extern int iter; nuclear@2: extern float err_thres; nuclear@2: extern float reflectivity; nuclear@5: extern Vector3 color; nuclear@2: nuclear@2: int gui_init(int width, int height) nuclear@2: { nuclear@4: imtk_set_viewport(width, height); nuclear@5: imtk_set_alpha(0.5); nuclear@2: return 0; nuclear@2: } nuclear@2: nuclear@2: void gui_draw() nuclear@2: { nuclear@5: nuclear@4: if(!show_gui) { nuclear@4: return; nuclear@4: } nuclear@2: nuclear@4: imtk_begin(); nuclear@6: imtk_layout_start(10, 10); nuclear@6: imtk_layout_spacing(10); nuclear@6: imtk_layout_dir(IMTK_HORIZONTAL); nuclear@2: nuclear@5: imtk_label("seed x", IMTK_AUTO, IMTK_AUTO); nuclear@5: seed.x = imtk_slider(IMUID, seed.x, -1.0, 1.0, IMTK_AUTO, IMTK_AUTO); nuclear@5: imtk_layout_newline(); nuclear@2: nuclear@5: imtk_label("seed y", IMTK_AUTO, IMTK_AUTO); nuclear@5: seed.y = imtk_slider(IMUID, seed.y, -1.0, 1.0, IMTK_AUTO, IMTK_AUTO); nuclear@5: imtk_layout_newline(); nuclear@2: nuclear@5: imtk_label("seed z", IMTK_AUTO, IMTK_AUTO); nuclear@5: seed.z = imtk_slider(IMUID, seed.z, -1.0, 1.0, IMTK_AUTO, IMTK_AUTO); nuclear@5: imtk_layout_newline(); nuclear@2: nuclear@5: imtk_label("seed w", IMTK_AUTO, IMTK_AUTO); nuclear@5: seed.w = imtk_slider(IMUID, seed.w, -2.0, 2.0, IMTK_AUTO, IMTK_AUTO); nuclear@5: imtk_layout_newline(); nuclear@4: nuclear@5: imtk_label("iterations", IMTK_AUTO, IMTK_AUTO); nuclear@6: fiter = (float)iter; nuclear@5: fiter = imtk_slider(IMUID, fiter, 0, 32, IMTK_AUTO, IMTK_AUTO); nuclear@5: iter = round(fiter); nuclear@5: imtk_layout_newline(); nuclear@4: nuclear@5: imtk_label("max error", IMTK_AUTO, IMTK_AUTO); nuclear@5: err_thres = imtk_slider(IMUID, err_thres, 0, 0.075, IMTK_AUTO, IMTK_AUTO); nuclear@4: nuclear@6: imtk_layout_start(280, 10); nuclear@5: imtk_label("reflectivity", IMTK_AUTO, IMTK_AUTO); nuclear@5: reflectivity = imtk_slider(IMUID, reflectivity, 0, 1.0, IMTK_AUTO, IMTK_AUTO); nuclear@5: imtk_layout_newline(); nuclear@5: nuclear@5: imtk_label("diffuse", IMTK_AUTO, IMTK_AUTO); nuclear@5: color.x = color.y = color.z = imtk_slider(IMUID, color.x, 0, 1.0, IMTK_AUTO, IMTK_AUTO); nuclear@4: nuclear@4: imtk_end(); nuclear@2: } nuclear@2: nuclear@2: void gui_set_visible(bool vis) nuclear@2: { nuclear@4: show_gui = vis; nuclear@2: }