9 #ifndef __diguyAuthorInterface_H
10 #define __diguyAuthorInterface_H
15 #define CPLUSPLUS_ONLY
27 class bdiScenarioEditorInput;
36 #define AUTHOR_UI_MAIN_WINDOW_NAME "main_window"
37 #define AUTHOR_UI_INPUT_MODE_WINDOW_NAME "input_mode"
38 #define AUTHOR_UI_TIME_CONTROL_WINDOW_NAME "time_control"
39 #define AUTHOR_UI_LOG_WINDOW_NAME "log"
40 #define AUTHOR_UI_VISIBILITY_WINDOW_NAME "visibility"
41 #define AUTHOR_UI_ELEMENTS_WINDOW_NAME "elements"
42 #define AUTHOR_UI_CHARACTER_WINDOW_NAME "character"
43 #define AUTHOR_UI_CROWD_WINDOW_NAME "crowd"
44 #define AUTHOR_UI_MIND_EDITOR_WINDOW_NAME "mind_editor"
45 #define AUTHOR_UI_AI_INSPECTOR_WINOW_NAME "ai_inspector"
105 void set_mouse_screen_coordinates(
int x,
int y);
127 void set_mouse_world_coordinates(
diguyVec3f world_coords);
144 void set_mouse_button_l(
int button_state);
151 void set_mouse_button_r(
int button_state);
158 void set_mouse_button_m(
int button_state);
176 void set_mouse_wheel_change(
float mouse_wheel_change);
185 void apply_mouse_inputs();
219 void set_keyboard_shift(
int key_state);
226 void set_keyboard_ctrl(
int key_state);
233 void set_keyboard_alt(
int key_state);
249 void set_key_pressed(
int key,
int key_state);
299 int set_selected_diguy_uid(
long uid);
306 int set_selected_diguy_uid_from_string(
const char* uid_string);
328 int get_uid_base_type(
long uid);
335 int get_uid_base_type_from_string(
const char* uid_string);
428 virtual int convert_screen_to_world(
const diguyVec3f& screen_xyz,
447 virtual int convert_world_to_screen(
const diguyVec3f& world_xyz,
450 virtual float get_altitude(
float x,
float y,
float old_z,
451 float from_height = 10.0f,
452 int* valid_result = NULL) = 0;
458 virtual int update_selected_objects(
const diguyVec3f& screen_xyz) = 0;
460 virtual int check_z_clearance(
const diguyVec3f& pos,
462 const float ground_angle,
463 float z_clear_height,
464 int check_below = 1)
const = 0;
497 int set_author_ui_window_visible(
const char* window_name,
int visible);
508 int get_author_ui_window_visible(
const char* window_name);
525 int set_author_ui_panel_visible(
const char* panel_name);
538 int set_author_ui_select_crowd_character(
diguyCharacter* character);
551 int set_author_ui_select_code_browser_script(
diguyCharacter* character);
568 #ifdef CPLUSPLUS_ONLY
576 virtual void author_ui_window_visibility_changed(
const char* window_name,
614 #ifdef CPLUSPLUS_ONLY
655 static int generate_sphere_vertices(
float radius,
664 int indices_for_wireframe,
666 unsigned int** indices);
679 static int generate_cone_vertices(
float radius,
689 int indices_for_wireframe,
691 unsigned int** indices);
704 static int generate_cylinder_vertices(
float radius,
714 int indices_for_wireframe,
716 unsigned int** indices);
735 int indices_for_wireframe,
737 unsigned int** indices);
745 static void delete_generated_vertices(
diguyVec3f* vertices,
748 unsigned int* indices);
759 #ifdef CPLUSPLUS_ONLY
761 bdiScenarioEditorInput* get_scripted_object() {
return m_scripted_object;}
772 friend class bdiScenarioApp;
773 friend class bdiScenarioEditorInput;
774 bdiScenarioEditorInput* m_scripted_object;