RT
interface.h
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* interface.h :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: sklepper <sklepper@student.42.fr> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2019/04/12 20:09:20 by sklepper #+# #+# */
9 /* Updated: 2019/07/17 18:51:57 by sklepper ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #ifndef INTERFACE_H
14 # define INTERFACE_H
15 
16 # define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
17 # define GL_SILENCE_DEPRECATION
18 
19 # include "t_data.h"
20 # include "csg.h"
21 # include "cimgui.h"
22 
23 # define FLAGS1 ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar
24 # define FLAGS2 ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar
25 # define FLAGS3 ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoCollapse
26 # define FLAGS4 ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoMove
27 # define RENDER_FLAGS FLAGS1 | FLAGS2 | FLAGS3 | FLAGS4
28 
29 /*
30 ** Hooks :
31 */
32 
33 void toggle_fullscreen(t_sdl *sdl, t_gui *gui);
34 void toggle_layout(t_sdl *sdl, t_gui *gui);
35 void resize_app(int width, int height, t_data *app);
36 void err_win(t_gui *gui);
37 void export_win(t_gui *gui);
38 void load_win(t_gui *gui);
39 void stats_win(t_gui *gui);
40 void selector(t_gui *gui);
41 void add_obj_win(t_gui *gui);
42 void del_obj_win(t_gui *gui);
43 void del_light_win(t_gui *gui);
44 void render_win(t_gui *gui);
45 void keymap_win(t_gui *gui);
46 void about_win(t_gui *gui);
47 void ui_object(t_data *app, t_obj *obj);
48 void ui_scene_editor(t_gui *gui);
49 void ui_mainmenu(t_gui *gui);
50 void add_cluster_win(t_gui *gui);
51 void obj_ui(t_gui *gui);
52 
53 void ui_render_settings(t_data *app);
54 int export_scene(t_data *app, char *filename);
55 void reload_scene(t_data *app, char *filename);
56 void camera_tab(t_data *app);
57 
58 void anim_add(t_data *app, t_obj *obj);
59 void anim_delete(t_data *app);
60 void animate(t_data *app);
61 void anim_reset(t_data *app);
62 void anim_add_light(t_data *app, t_light *light);
63 
64 void export_material(int fd, t_material *mat);
65 bool load_selected_tex(const char *label, char *name, t_list *current,
66  t_texture **selected);
67 void anim_ui(t_gui *gui);
68 void anim_add_another(t_anim *anim);
69 void anim_selector(t_gui *gui, ImVec2 size);
70 void anim_del_one(t_data *app, t_anim *anim, t_anim *to_del);
71 
72 /*
73 ** Prototypes :
74 */
75 
76 void material_list(t_list *lst_mat, t_material *mat);
77 void node_type_list(t_csg_op *csg_op);
78 void new_obj_list(int *type);
79 void list_scenes(t_gui *gui);
80 void new_light(t_data *app);
81 void new_obj(t_data *app, int type);
82 void delete_obj(t_data *app);
83 void delete_light(t_data *app);
84 bool check_file(char *filename);
85 void edit_color_mat(t_color *target, char *label, t_material *mat);
86 void new_cluster(t_data *app, int type);
87 void ui_apply_rotation(t_vec3 *x, t_vec3 *y, t_vec3 *z);
88 
89 /*
90 ** UI SHAPES
91 */
92 
93 void ui_csg(void *app_v, void *shape);
94 void ui_sphere(void *ap, void *shape);
95 void ui_plane(void *app_v, void *shape);
96 void ui_cone(void *app_v, void *shape);
97 void ui_cube(void *app_v, void *shape);
98 void ui_tore(void *app_v, void *shape);
99 void ui_cylinder(void *app_v, void *shape);
100 void ui_light(t_data *app, t_light *light);
101 void ui_cluster(t_cluster *cluster);
102 
103 /*
104 ** Hooks :
105 */
106 
107 void render_gui(void *arg);
108 void update(void *data);
109 void key_event(int *quit, SDL_Keycode key, void *arg, bool state);
110 void mouse_motion(SDL_Event *event, void *arg);
111 void click_event(SDL_Event *event, void *arg);
112 
113 #endif
s_sdl
Definition: libui.h:43
load_selected_tex
bool load_selected_tex(const char *label, char *name, t_list *current, t_texture **selected)
Definition: ui_lists.c:62
s_vec3
Definition: rtstruct.h:30
render_gui
void render_gui(void *arg)
Definition: update.c:33
node_type_list
void node_type_list(t_csg_op *csg_op)
Definition: ui_lists.c:118
list_scenes
void list_scenes(t_gui *gui)
Definition: ui_lists.c:19
ui_render_settings
void ui_render_settings(t_data *app)
Definition: ui_render_settings.c:86
anim_add_light
void anim_add_light(t_data *app, t_light *light)
Definition: anim_toolbox.c:109
ui_cube
void ui_cube(void *app_v, void *shape)
Definition: ui_cube.c:19
ui_csg
void ui_csg(void *app_v, void *shape)
Definition: ui_csg.c:39
ui_mainmenu
void ui_mainmenu(t_gui *gui)
Definition: ui_menu.c:79
key_event
void key_event(int *quit, SDL_Keycode key, void *arg, bool state)
Definition: key_mapping.c:74
s_material
Definition: rtstruct.h:189
selector
void selector(t_gui *gui)
Definition: ui_selector.c:62
add_obj_win
void add_obj_win(t_gui *gui)
Definition: ui_edit_win.c:19
s_color
Definition: color.h:23
del_obj_win
void del_obj_win(t_gui *gui)
Definition: ui_edit_win.c:64
edit_color_mat
void edit_color_mat(t_color *target, char *label, t_material *mat)
Definition: object_tools.c:28
export_win
void export_win(t_gui *gui)
Definition: ui_file_win.c:26
ui_cluster
void ui_cluster(t_cluster *cluster)
Definition: ui_cluster.c:58
s_obj
Definition: rtstruct.h:245
delete_light
void delete_light(t_data *app)
Definition: delete_obj.c:88
about_win
void about_win(t_gui *gui)
Definition: ui_render.c:67
anim_add
void anim_add(t_data *app, t_obj *obj)
Definition: anim_toolbox.c:50
err_win
void err_win(t_gui *gui)
Definition: ui_file_win.c:17
ui_cylinder
void ui_cylinder(void *app_v, void *shape)
Definition: ui_tools.c:93
new_obj_list
void new_obj_list(int *type)
Definition: ui_lists.c:89
toggle_layout
void toggle_layout(t_sdl *sdl, t_gui *gui)
Definition: screen_manager.c:41
s_texture
Definition: rtstruct.h:166
reload_scene
void reload_scene(t_data *app, char *filename)
Definition: load_tools.c:31
anim_ui
void anim_ui(t_gui *gui)
Definition: ui_anim.c:105
new_obj
void new_obj(t_data *app, int type)
Definition: new_object.c:35
obj_ui
void obj_ui(t_gui *gui)
Definition: ui_selector_obj.c:59
toggle_fullscreen
void toggle_fullscreen(t_sdl *sdl, t_gui *gui)
Definition: screen_manager.c:62
render_win
void render_win(t_gui *gui)
Definition: ui_render.c:21
delete_obj
void delete_obj(t_data *app)
Definition: delete_obj.c:60
s_csg_op
Definition: csg.h:18
ui_plane
void ui_plane(void *app_v, void *shape)
Definition: ui_tools.c:70
ui_sphere
void ui_sphere(void *ap, void *shape)
Definition: ui_tools.c:20
anim_del_one
void anim_del_one(t_data *app, t_anim *anim, t_anim *to_del)
Definition: anim_tools.c:50
stats_win
void stats_win(t_gui *gui)
Definition: ui_file_win.c:102
anim_add_another
void anim_add_another(t_anim *anim)
Definition: anim_toolbox.c:74
export_scene
int export_scene(t_data *app, char *filename)
Definition: export.c:76
s_cluster
Definition: t_cluster.h:18
new_light
void new_light(t_data *app)
Definition: new_object.c:83
s_data
Definition: t_data.h:24
add_cluster_win
void add_cluster_win(t_gui *gui)
Definition: ui_edit_win.c:112
new_cluster
void new_cluster(t_data *app, int type)
Definition: new_cluster.c:68
camera_tab
void camera_tab(t_data *app)
Definition: ui_camera_tab.c:102
del_light_win
void del_light_win(t_gui *gui)
Definition: ui_scene_editor.c:37
check_file
bool check_file(char *filename)
Definition: load_tools.c:20
click_event
void click_event(SDL_Event *event, void *arg)
Definition: key_mapping.c:100
resize_app
void resize_app(int width, int height, t_data *app)
Definition: screen_manager.c:72
mouse_motion
void mouse_motion(SDL_Event *event, void *arg)
Definition: key_mapping.c:119
ui_light
void ui_light(t_data *app, t_light *light)
Definition: ui_objects.c:19
s_gui
Definition: t_gui.h:21
update
void update(void *data)
Definition: update.c:17
anim_delete
void anim_delete(t_data *app)
Definition: anim_toolbox.c:20
anim_reset
void anim_reset(t_data *app)
Definition: anim_reset.c:47
export_material
void export_material(int fd, t_material *mat)
Definition: export_toolbox.c:36
anim_selector
void anim_selector(t_gui *gui, ImVec2 size)
Definition: ui_anim_selector.c:77
load_win
void load_win(t_gui *gui)
Definition: ui_file_win.c:55
s_anim
Definition: animate.h:20
ui_apply_rotation
void ui_apply_rotation(t_vec3 *x, t_vec3 *y, t_vec3 *z)
Definition: ui_apply_rotation.c:17
keymap_win
void keymap_win(t_gui *gui)
Definition: ui_render.c:44
t_data.h
animate
void animate(t_data *app)
Definition: animate.c:29
csg.h
ui_object
void ui_object(t_data *app, t_obj *obj)
Definition: ui_objects.c:91
ui_cone
void ui_cone(void *app_v, void *shape)
Definition: ui_tools.c:119
material_list
void material_list(t_list *lst_mat, t_material *mat)
Definition: ui_lists.c:36
ui_tore
void ui_tore(void *app_v, void *shape)
Definition: ui_tore.c:19
ui_scene_editor
void ui_scene_editor(t_gui *gui)
Definition: ui_scene_editor.c:18
s_light
Definition: rtstruct.h:121