13 #ifndef __diguyCharacter_H
14 #define __diguyCharacter_H
19 #define CPLUSPLUS_ONLY
34 class bdiScenarioCharacter;
65 class DtEntityStateRepository;
102 const char* get_name();
113 int set_name(
const char* name);
121 const char* get_type_name();
172 int update(
float t,
int full_update = 1);
187 void set_character_type(
const char* type);
210 const char* get_character_type_string();
235 const char* get_character_class();
273 int set_enabled(
int enabled);
306 int set_drawn_by_scenario_flag(
int flag);
323 int get_drawn_by_scenario_flag();
341 void set_invisible_flag(
int invisible_flag);
344 int get_invisible_flag();
390 int get_was_drawn_last_frame();
393 int set_was_drawn_last_frame(
int drawn);
403 int set_is_culled(
int culled);
411 int get_is_temporary();
422 int get_is_recycled();
441 int set_t_controlled_by_scenario_t(
int t_controlled_by_scenario_t);
449 int get_t_controlled_by_scenario_t();
479 int set_initial_tin(
float tin,
int override_time_warning = 0);
508 int set_initial_tout(
float tout);
554 int set_current_tin(
float tin);
567 int set_current_tin_to_now();
579 float get_current_tin();
601 int set_current_tout(
float tout,
602 int disable_character_at_tout = 0);
616 int set_current_tout_to_now();
624 float get_current_tout();
633 void set_tout_enabled(
int tout_enabled);
646 int get_tout_enabled();
649 float get_char_time();
673 int set_careful_interpolation_threshold(
float threshold);
681 float get_careful_interpolation_threshold();
699 int set_motion_interpolation_flag(
int flag);
707 int get_motion_interpolation_flag();
723 int set_scale(
float scale_x,
float scale_y,
float scale_z);
740 int get_scale(
float* scale_x,
float* scale_y,
float* scale_z);
765 int set_parent(
const char* parent_name,
const char* parent_link_name =
"");
789 const char* get_parent_link_name();
810 int get_num_children();
838 int get_is_scene_object();
855 int set_is_scene_object(
int is_scene_object);
868 float get_bounding_radius();
881 float get_default_bounding_radius();
889 void set_bounding_radius(
float f);
910 float get_time_to_transition();
913 float get_character_local_time();
956 int set_t_scale_factor(
float t_scale_factor);
972 int unset_t_scale_factor();
989 int is_within_distance_n_of_character(
const char* character_name,
1007 int is_within_distance_n_of_member_of_group(
const char* group_name,
1026 int is_group_member(
const char* group_name);
1036 int get_num_group_memberships();
1081 diguyCharacter* get_nearest_active_character(
int check_visibility,
1082 int xy_distance = 0,
1083 float max_distance_to_check = 100000);
1110 diguyCharacter* get_nearest_active_character_in_group(
const char* group_name,
1111 int check_visibility = 1,
1112 int xy_distance = 0,
1113 float max_distance_to_check = 100000);
1142 diguyCharacter* get_random_active_character(
float max_distance = 10.0f,
1143 int check_visibility = 1,
1144 int xy_distance = 0);
1174 diguyCharacter* get_random_active_character_in_group(
const char* group_name,
1175 float max_distance = 10,
1176 int check_visibility = 1,
1177 int xy_distance = 0);
1204 float get_distance_to_impact(
diguyImpact* impact);
1232 float get_random_factor();
1284 #ifdef CPLUSPLUS_ONLY
1305 void* get_graphics_ptr();
1332 int set_graphics_ptr(
void* graphics_ptr);
1350 void set_graphics_api_node_ptr(
void* node_ptr);
1357 void* get_graphics_api_node_ptr();
1375 int set_user_data(
void* user_data);
1382 void* get_user_data();
1441 int set_desired_action(
const char* action_name,
1443 int retain_path_shape = 0);
1449 const char* get_desired_action();
1452 int get_desired_action_index();
1455 const char* get_current_action();
1458 int get_current_action_index();
1481 int get_is_in_action_transition();
1539 int force_action(
const char* action_name,
1541 int include_transition_arc = 1,
1542 float max_rampdown_interval = 0.5f,
1543 int retain_path_shape = 0,
1544 float t_offset_into_new_action = 0.0f);
1575 int force_action_with_duration(
const char* action_name,
1577 int include_transition_arc = 1,
1578 float max_rampdown_interval = 0.5f);
1601 int force_action_with_offset(
const char* action_name,
1603 int include_transition_arc = 1,
1604 float max_rampdown_interval = 0.5f,
1605 int retain_path_shape = 0,
1606 float t_offset_into_new_action = 0.0f,
1607 float x = 0,
float y = 0,
float z = 0 );
1639 int force_action_and_path_shape(
const char* action_name,
1640 const char* path_shape_name,
1641 const char* waypoint_name = NULL,
1642 float distance_into_path = 0.0f);
1656 const char* get_most_recent_forced_action();
1669 float get_most_recent_forced_action_t();
1683 float get_most_recent_forced_action_t_offset();
1710 int add_pending_desired_action(
const char* action,
1712 int remove_existing_pending_actions = 0,
1714 int retain_path_shape = 1);
1730 int add_pending_force_action(
const char* action,
1732 int remove_existing_pending_actions = 0,
1734 int include_transition_arc = 1,
1735 float max_rampdown_interval = 0.5f,
1736 int retain_path_shape = 1,
1737 float first_arc_time_shift = 0.0f);
1745 int is_valid_action(
const char* action);
1780 int die_now(
const char* preferred_dead_action_name =
"(default)");
1795 int revive_now(
const char* preferred_revive_action_name =
"(default)");
1836 int set_speed(
float speed);
1855 float get_desired_speed();
1880 int set_animation_target_el(
float elevation,
float ramp_time = .25f);
1883 float get_animation_target_el();
1891 int set_animation_target_az(
float azimuth,
float ramp_time = .25f);
1894 float get_animation_target_az();
1916 void set_animation_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1919 void get_animation_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
1931 void set_animation_local_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1934 void get_animation_local_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
1942 void set_animation_angular_velocity(
float vel_rz,
float ramp_time = .25f);
1945 float get_animation_angular_velocity();
1996 int set_position(
float tx,
float ty,
float tz);
2018 int set_position_double(
double tx,
double ty,
double tz);
2038 int get_position(
float* tx,
float* ty,
float* tz);
2062 int get_position_double(
double* tx,
double* ty,
double* tz);
2090 int set_position_relative_to_parent(
float tx,
float ty,
float tz);
2111 int get_position_relative_to_parent(
float* tx,
float* ty,
float* tz);
2145 int set_position_to_other_character_position(
const char* other_character_name,
2146 const char* other_link_name = NULL,
2147 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2148 int also_set_orientation = 1);
2171 int set_desired_position(
float tx,
float ty,
float tz,
2172 int force_guide_unacquired = 0);
2174 int set_desired_position_double(
double tx,
double ty,
double tz,
2175 int force_guide_unacquired = 0);
2196 int set_desired_position_to_current_position(
int also_set_orientation = 1);
2226 int set_desired_position_to_waypoint(
diguyWaypoint* waypoint,
2227 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2228 int offset_in_world_coords = 0);
2251 int set_desired_position_to_path_waypoint(
const char* path_name,
2252 const char* waypoint_name);
2275 int set_desired_position_to_path_shape_waypoint(
const char* path_shape_name,
2276 const char* waypoint_name);
2297 int get_desired_position(
float* tx,
float* ty,
float* tz);
2298 int get_desired_position_double(
double* tx,
double* ty,
double* tz);
2319 int get_delta_to_desired_position(
float* tx,
float* ty,
float* tz);
2338 int set_initial_position(
float tx,
float ty,
float tz);
2361 int get_initial_position(
float* tx,
float* ty,
float* tz);
2393 int set_orientation(
float rz,
float rx,
float ry);
2419 int get_orientation(
float* rz,
float* rx,
float* ry);
2447 int set_orientation_relative_to_parent(
float rz,
float rx,
float ry);
2469 int get_orientation_relative_to_parent(
float* rz,
float* rx,
float* ry);
2519 int set_initial_up_vector_type(
char axis);
2528 int set_initial_up_vector(
char axis);
2535 char get_initial_up_vector_type();
2544 char get_initial_up_vector();
2567 int set_up_vector_type(
char axis);
2576 int set_up_vector(
char axis);
2583 char get_up_vector_type();
2592 char get_up_vector();
2622 int set_custom_orientation_rx_and_ry(
float rx,
2645 int set_desired_orientation(
float rz,
float rx,
float ry,
2646 int force_guide_unacquired = 0);
2668 int get_desired_orientation(
float* rz,
float* rx,
float* ry);
2691 int get_delta_to_desired_orientation(
float* rz,
float* rx,
float* ry);
2708 int set_desired_orientation_to_current_orientation();
2725 int set_desired_orientation_towards_position(
float x,
float y,
float z,
2726 int force_guide_unacquired = 0);
2746 int set_initial_orientation(
float rz,
float rx,
float ry);
2771 int get_initial_orientation(
float* rz,
float* rx,
float* ry);
2793 int get_link_position(
const char* link_name,
2794 float* tx,
float* ty,
float* tz,
2795 float* rz,
float* rx,
float* ry);
2817 int get_link_position_double(
const char* link_name,
2818 double* tx,
double* ty,
double* tz,
2819 double* rz,
double* rx,
double* ry);
2841 int get_link_position_with_offset(
const char* link_name,
2842 float offset_tx,
float offset_ty,
float offset_tz,
2843 float* tx,
float* ty,
float* tz,
2844 float* rz,
float* rx,
float* ry);
2866 int get_link_position_with_offset_double(
const char* link_name,
2867 double offset_tx,
double offset_ty,
double offset_tz,
2868 double* tx,
double* ty,
double* tz,
2869 double* rz,
double* rx,
double* ry);
2893 int get_link_relative_position(
const char* beginning_link_name,
2894 const char* ending_link_name,
2895 float* tx,
float* ty,
float* tz,
2896 float* rz,
float* rx,
float* ry);
2921 int get_link_relative_position_with_offset(
const char* beginning_link_name,
2922 const char* ending_link_name,
2923 float offset_tx,
float offset_ty,
float offset_tz,
2924 float* tx,
float* ty,
float* tz,
2925 float* rz,
float* rx,
float* ry);
2953 void set_apply_actor_scale_to_action_bead_travel(
int apply_scale_flag);
2960 int get_apply_actor_scale_to_action_bead_travel();
2973 int local_to_global(
float x,
float y,
float z,
2974 float* res_x,
float* res_y,
float* res_z);
2987 int global_to_local(
float x,
float y,
float z,
2988 float* res_x,
float* res_y,
float* res_z);
3005 void get_velocity(
float* vel_x,
float* vel_y,
float* vel_z);
3009 void get_acceleration(
float* accel_x,
float* accel_y,
float* accel_z);
3020 void set_desired_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.0);
3021 void get_desired_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
3037 void get_angular_velocity(
float* vel_rz);
3045 void set_desired_angular_velocity(
float vel_rz);
3046 void get_desired_angular_velocity(
float* vel_rz);
3071 const char* get_appearance();
3092 int set_appearance(
const char* appearance);
3124 int set_current_appearance(
const char* appearance,
3125 int allow_actor_change = 1);
3128 const char* get_current_appearance();
3143 int get_current_appearance_is(
const char* appearance);
3160 int set_head_appearance(
const char* head_appearance);
3171 int set_current_head_appearance(
const char* head_appearance);
3174 const char* get_current_head_appearance();
3177 int get_num_compatible_head_appearances();
3179 const char* get_compatible_head_appearance_at_index(
int index);
3182 int get_num_compatible_facefx_head_appearances();
3184 const char* get_compatible_facefx_head_appearance_at_index(
int index);
3198 int get_current_head_appearance_is(
const char* head_appearance);
3217 int set_hand_item(
const char* hand_item_appearance);
3226 const char* get_hand_item();
3243 int set_current_hand_item(
const char* hand_item_appearance);
3251 const char* get_current_hand_item();
3258 const char* get_current_hand_item_type();
3261 const char * get_actor();
3265 int add_equipment_appearance(
const char* equipment_appearance);
3268 int reset_equipment_appearance(
const char* class_type);
3271 int reset_equipment_appearance();
3274 int get_num_equipment();
3277 const char * get_equipment_name_at_index(
int index);
3280 const char * get_equipment_type_at_index(
int index);
3283 int get_equipment_index_at_index(
int index);
3286 int add_equipment_by_index(
int index);
3295 int set_use_texture_variations(
int value);
3302 int get_use_texture_variations();
3305 int get_supports_texture_variations();
3309 int get_supports_weight_variations();
3314 void set_weight_scale(
float weight );
3317 float get_weight_scale();
3322 int set_unit_name(
const char* name,
const char* personal_patch = NULL );
3323 const char* get_unit_name(
int personal = 0 );
3329 int set_unit_index(
int unit_index,
int personal_index = -1 );
3330 int get_unit_index(
int personal = 0 );
3336 int set_rank_name(
const char* name );
3337 const char* get_rank_name();
3343 int set_rank_index(
int index );
3344 int get_rank_index();
3349 int set_uniform_label_text(
const char* name );
3350 const char* get_uniform_label_text();
3428 int set_lod_ranges(
float* lod_ranges);
3430 #ifdef CPLUSPLUS_ONLY
3431 float* get_lod_ranges();
3456 int set_graphics_lod(
float lod);
3459 int get_graphics_lod();
3462 float get_graphics_lod_fraction();
3466 int set_allow_instancing(
int value);
3469 int get_allow_instancing()
const;
3473 int get_is_instanced()
const;
3476 void set_is_instanced(
int val);
3479 int can_lod_be_instanced(
int lod);
3492 int set_final_tbo_position_matrix(
int include_local_to_global_transform,
3493 float a0,
float a1,
float a2,
float a3,
3494 float b0,
float b1,
float b2,
float b3,
3495 float c0,
float c1,
float c2,
float c3);
3514 int set_shader_lod(
int lod);
3517 int get_shader_lod();
3521 int get_has_bump_maps();
3558 int set_motion_lod(
int motion_lod);
3561 int get_motion_lod();
3564 int get_current_motion_lod();
3627 int set_minimum_cpl(
int minimum_cpl);
3630 int get_minimum_cpl();
3647 int get_maximum_possible_current_cpl();
3669 int maximize_current_cpl();
3690 int set_automatic_cpl_switching_enabled(
int enabled);
3693 int get_automatic_cpl_switching_enabled();
3718 int set_current_cpl(
int current_cpl);
3721 int get_current_cpl();
3758 int set_position_update_rate(
int update_rate);
3761 int get_position_update_rate();
3796 int set_pose_update_rate(
int update_rate);
3799 int get_pose_update_rate();
3825 int set_minimum_full_update_period(
float min_period);
3828 float get_minimum_full_update_period();
3855 int set_position_accumulation_disabled(
int disabled_flag);
3858 int get_position_accumulation_disabled();
3881 int set_all_blends_disabled(
int disabled_flag);
3884 int get_all_blends_disabled();
3915 int set_shape_callbacks_disabled(
int disabled_flag);
3918 int get_shape_callbacks_disabled();
3939 int set_graphics_api_shape_update_disabled(
int disabled_flag);
3942 int get_graphics_api_shape_update_disabled();
3981 int optimized_update(
float t);
4006 int set_is_load_managed(
int is_load_managed);
4009 int get_is_load_managed();
4013 void get_load_manager_current_update_rates(
float & zone,
int & pose_update_rate,
4014 int & position_update_rate,
int & alt_update_rate);
4471 CALLBACK_ID_CREATE = 1,
4472 CALLBACK_ID_DESTROY,
4473 CALLBACK_ID_PRE_CREATE,
4474 CALLBACK_ID_CURRENT_APPEARANCE_CHANGED,
4475 CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED,
4476 CALLBACK_ID_CURRENT_HAND_ITEM_APPEARANCE_CHANGED,
4477 CALLBACK_ID_CURRENT_EQUIPMENT_APPEARANCE_CHANGED,
4478 CALLBACK_ID_SHAPE_VARIATIONS_CHANGED,
4479 CALLBACK_ID_SHAPE_VISIBILITY_CHANGED,
4480 CALLBACK_ID_PRE_UPDATE,
4481 CALLBACK_ID_POST_UPDATE,
4482 CALLBACK_ID_DONE_SPEAKING,
4483 CALLBACK_ID_GAZE_STATUS,
4484 CALLBACK_ID_LPOINT_STATUS,
4487 CALLBACK_ID_PRE_DIE,
4488 CALLBACK_ID_POST_DIE,
4489 CALLBACK_ID_PRE_FIRE_WEAPON,
4490 CALLBACK_ID_POST_FIRE_WEAPON,
4492 CALLBACK_ID_FIRE_WEAPON_SUCCESS,
4493 CALLBACK_ID_CURRENT_ARC_CHANGED,
4494 CALLBACK_ID_CURRENT_ACTION_CHANGED,
4495 CALLBACK_ID_DESIRED_ACTION_CHANGED,
4496 CALLBACK_ID_DESIRED_ACTION_REACHED,
4497 CALLBACK_ID_MANUALLY_INVOKED,
4498 CALLBACK_ID_USER_SELECTED,
4499 CALLBACK_ID_USER_UNSELECTED,
4500 CALLBACK_ID_IGUY_INTERACT,
4501 CALLBACK_ID_IGUY_INTERACT_WITH_SUBJECT,
4502 CALLBACK_ID_GUIDE_POSITION_ACQUIRED,
4503 CALLBACK_ID_GUIDE_POSITION_UNACQUIRED,
4504 CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED,
4505 CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED,
4506 CALLBACK_ID_GUIDE_ALTITUDE_ACQUIRED,
4507 CALLBACK_ID_GUIDE_ALTITUDE_UNACQUIRED,
4508 CALLBACK_ID_GUIDE_TARGET_LOST,
4509 CALLBACK_ID_CURRENT_TOUT_REACHED,
4510 CALLBACK_ID_POST_CREATE_GEOMETRY,
4511 CALLBACK_ID_PRE_DESTROY_GEOMETRY,
4512 CALLBACK_ID_END_OF_PATH_REACHED,
4513 CALLBACK_ID_CHARACTER_CLICKED,
4516 CALLBACK_ID_UI_PRE_TRANSLATION,
4517 CALLBACK_ID_UI_POST_TRANSLATION,
4518 CALLBACK_ID_UI_MOUSE_DOWN,
4519 CALLBACK_ID_UI_MOUSE_UP,
4520 CALLBACK_ID_UI_RIGHT_MOUSE_DOWN,
4521 CALLBACK_ID_UI_RIGHT_MOUSE_UP,
4522 CALLBACK_ID_UI_LEFT_CLICK,
4523 CALLBACK_ID_UI_RIGHT_CLICK,
4524 CALLBACK_ID_UI_DOUBLE_CLICK,
4525 CALLBACK_ID_UI_MIDDLE_CLICK,
4526 CALLBACK_ID_UI_SCROLL_UP,
4527 CALLBACK_ID_UI_SCROLL_DOWN,
4531 CALLBACK_ID_AGENT_NEW_BEHAVIOR,
4532 CALLBACK_ID_AGENT_NEW_PATH_SHAPE,
4533 CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER,
4534 CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS,
4535 CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS,
4536 CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED,
4537 CALLBACK_ID_AGENT_PURSUE_TARGET_LOST,
4538 CALLBACK_ID_AGENT_MINGLE_TARGET_REACHED,
4539 CALLBACK_ID_AGENT_MINGLE_TARGET_LOST,
4540 CALLBACK_ID_AGENT_WANDER_TARGET_REACHED,
4541 CALLBACK_ID_AGENT_WANDER_TARGET_LOST,
4542 CALLBACK_ID_AGENT_FLEE_AREA_LEFT,
4543 CALLBACK_ID_AGENT_FLEE_AREA_ENTERED,
4544 CALLBACK_ID_AGENT_TRAVEL_WAYPOINT_REACHED,
4545 CALLBACK_ID_AGENT_TRAVEL_FORWARD_DEST_REACHED,
4546 CALLBACK_ID_AGENT_TRAVEL_BACKWARD_DEST_REACHED,
4547 CALLBACK_ID_AGENT_TRAVEL_NEAR_FORWARD_DEST,
4548 CALLBACK_ID_AGENT_CROWD_MEMBER_KILLED,
4549 CALLBACK_ID_AGENT_CROWD_MEMBER_IMPACT,
4550 CALLBACK_ID_AGENT_NEARBY_SCENE_OBJECT_IMPACT,
4551 CALLBACK_ID_AGENT_NEARBY_WEAPON_FIRED,
4552 CALLBACK_ID_AGENT_VEHICLE_COLLISION,
4553 CALLBACK_ID_AGENT_VEHICLE_NEAR_COLLISION,
4554 CALLBACK_ID_AGENT_PATH_PLAN_COMPLETED,
4555 CALLBACK_ID_AGENT_MIND_CURRENT_STATE_CHANGED,
4556 CALLBACK_ID_AGENT_NON_ZERO_REPULSION,
4557 CALLBACK_ID_AGENT_ZERO_REPULSION
4560 #ifdef CPLUSPLUS_ONLY
4588 int add_callback(
int callback_id,
4590 void* callback_params = 0,
4591 void* callback_user_data = 0);
4609 int remove_callback(
int callback_id,
4629 int remove_callback_with_user_data(
int callback_id,
4630 void* callback_user_data);
4682 int add_callback_script(
int callback_id,
4683 const char* callback_script,
4684 const char* callback_script_type = NULL);
4725 int remove_callback_script(
int callback_id,
4726 const char* callback_script,
4727 const char* callback_script_type = NULL);
4768 int map_event_handler_to_callback_id(
int callback_id,
4769 const char* handler_name);
4788 int unmap_event_handler_from_callback_id(
int callback_id,
4789 const char* handler_name,
4790 int unmap_all_matches = 0);
4910 const char* transition_from_action_name,
4911 const char* fill_action_name,
4912 const char* transition_to_action_name);
4937 const char* transition_from_action_name,
4938 const char* fill_action_name,
4939 const char* transition_to_action_name);
4981 int create_and_force_bridge_path(
const char* destination_path_name,
4982 const char* destination_path_action_bead_name,
4983 const char* via_action_name);
5033 int create_and_force_bridge_path_to_point(
float x,
float y,
float z,
5035 const char* via_action_name,
5036 const char* next_local_path = NULL,
5037 float orientation = 0.0f);
5064 int get_num_paths();
5084 const char* get_path_name_at_index(
int index);
5103 int get_current_path_index();
5136 int get_current_traveled_path_is(
const char* path_name);
5157 int push_path(
const char* path_name);
5182 int force_path(
const char* path_name,
5183 float max_rampdown_interval = 0.5f);
5196 int force_partial_path(
const char* path_name,
5197 const char* beginning_action_bead_name,
5198 float max_rampdown_interval = 0.5f);
5234 int resume_interrupted_path(
float max_rampdown_interval = 0.5f);
5259 int use_character_orientation,
5260 float rotation = 0.0f,
5261 int clamp_path = 1);
5277 int set_initial_path(
const char* name);
5291 const char* get_initial_path();
5303 void translate_all_paths(
float tx,
float ty,
float tz,
5304 int reclamp_waypoints = 1);
5322 int rotate_all_paths_about_point(
float rz,
float rx,
float ry,
5323 float rotation_pt_x,
float rotation_pt_y,
float rotation_pt_z,
5324 int reclamp_waypoints = 1);
5341 int rotate_all_paths_about_current_waypoint(
float rz,
float rx,
float ry,
5342 int reclamp_waypoints = 1);
5364 int jump_to_action_bead(
const char* bead_name,
5365 float max_rampdown_interval = 0.5f);
5402 float how_far = 0.0f);
5423 float how_far = 0.0f);
5444 float how_far = 0.0f);
5465 float how_far = 0.0f);
5489 int set_distance_along_path(
float distance);
5501 float get_distance_along_path();
5535 int get_nearest_waypoint_index_in_path(
const char* path_name);
5542 float get_distance_to_path(
const char* path_name,
5543 const char* action_bead_name = NULL);
5578 int get_num_links();
5616 const char* get_link_name_at_index(
int link_index);
5627 int get_num_link_shapes(
const char* link_name);
5639 const char* get_link_shape_name_at_index(
const char* link_name,
5644 int get_num_connection_points();
5648 const char * get_connection_point_name_at_index(
int index);
5659 void set_link_visibility(
const char* link_or_connection_name,
int visible,
int shape_index = -1);
5665 int remove_shape(
const char* shape_name);
5682 int set_link_translation_override(
const char * link_name,
float x,
float y,
float z,
float ramp_time = .25f);
5686 int set_link_translation_override(
const char * link_name,
float x,
float y,
float z,
float vx,
float vy,
float vz,
float ramp_time = .25f);
5689 int end_link_translation_override(
const char * link_name,
float ramp_time = .25f);
5692 int set_link_rotation_override(
const char * link_name,
float rz,
float rx,
float ry,
float ramp_time = .25f);
5693 int set_link_rotation_override(
const char * link_name,
float rz,
float rx,
float ry,
float vrx,
float vry,
float vrz,
float ramp_time = .25f);
5696 int end_link_rotation_override(
const char * link_name,
float ramp_time = .25f);
5708 int get_num_articulated_parts();
5712 const char * get_articulated_part_link_name(
int index);
5715 int get_articulated_part_id(
int index);
5718 const char * map_articulated_part_id_to_link(
int id);
5743 #ifdef CPLUSPLUS_ONLY
5822 int set_altitude_function_enabled_in_free_position_mode(
int enabled);
5831 int get_altitude_function_enabled_in_free_position_mode();
5857 int set_altitude_function_enabled_in_path_position_mode(
int value);
5866 int get_altitude_function_enabled_in_path_position_mode();
5892 int set_altitude_update_rate(
int update_rate);
5895 int get_altitude_update_rate();
5919 void set_altitude_interpolation_rate(
float interpolation_rate);
5922 float get_altitude_interpolation_rate();
6046 int get_pose_array_size();
6048 #ifdef CPLUSPLUS_ONLY
6081 int get_pose_in_radians(
float* pose_array);
6084 int get_pose_in_quaternions(
float* pose_array);
6132 int get_num_pose_overrides();
6175 void destroy_complete_pose_override();
6216 int gaze_at_angle(
float azimuth,
6219 int is_new_gaze = 1);
6235 int gaze_at_angle_local(
float azimuth,
6237 float distance = 10000.0f,
6238 int is_new_gaze = 1);
6263 int gaze_at_point(
float tx,
6266 int is_new_gaze = 1);
6278 int gaze_at_point_local(
float tx,
6281 int is_new_gaze = 1);
6317 int gaze_at_character(
const char* target_character_name,
6318 const char* target_character_link_name = NULL,
6319 float offset_tx = 0.0f,
6320 float offset_ty = 0.0f,
6321 float offset_tz = 0.0f);
6328 int get_gaze_is_active();
6336 int get_gaze_point(
float* x,
float* y,
float* z);
6363 int get_gaze_is_acquired();
6390 int get_gaze_is_steady();
6427 int lpoint_at_angle(
float azimuth,
6430 int is_new_lpoint = 1,
6431 const char* base_gesture_name = 0);
6443 int lpoint_at_angle_local(
float azimuth,
6445 float distance = 10000.0f,
6446 int is_new_lpoint = 1,
6447 const char* base_gesture_name = 0);
6480 int lpoint_at_point(
float tx,
6483 int is_new_lpoint = 1,
6484 const char* base_gesture_name = 0);
6496 int lpoint_at_point_local(
float tx,
6499 int is_new_lpoint = 1,
6500 const char* base_gesture_name = 0);
6511 int lpoint_at_character(
const char* target_character_name,
6512 const char* target_character_link_name = NULL,
6513 float offset_tx = 0.0f,
6514 float offset_ty = 0.0f,
6515 float offset_tz = 0.0f);
6523 int get_lpoint_point(
float* x,
float* y,
float* z);
6530 const char* get_lpoint_base_gesture_name();
6537 int get_lpoint_is_active();
6547 int get_lpoint_is_acquired();
6557 int get_lpoint_is_steady();
6589 int set_gaze_params_to_defaults();
6620 int set_gaze_param_desired_locate_time(
float t);
6627 float get_gaze_param_desired_locate_time();
6661 int set_gaze_link_uses_desired_locate_time(
const char* link_name,
6662 int uses_desired_locate_time);
6669 int get_gaze_link_uses_desired_locate_time(
const char* link_name);
6696 int set_gaze_link_azimuth_limits(
const char* link_name,
float min,
float max);
6703 int get_gaze_link_azimuth_limits(
const char* link_name,
6732 int set_gaze_link_elevation_limits(
const char* link_name,
6737 int get_gaze_link_elevation_limits(
const char* link_name,
6776 int set_gaze_link_azimuth_tolerance(
const char* link_name,
6781 int get_gaze_link_azimuth_tolerance(
const char* link_name,
6809 int set_gaze_link_elevation_tolerance(
const char* link_name,
6814 int get_gaze_link_elevation_tolerance(
const char* link_name,
6841 int set_gaze_link_max_angular_vel(
const char* link_name,
float angular_vel);
6844 int get_gaze_link_max_angular_vel(
const char* link_name,
float* angular_vel);
6881 int set_gaze_link_scale_factor(
const char* link_name,
float scale_factor);
6884 int get_gaze_link_scale_factor(
const char* link_name,
float* scale_factor);
6910 int set_link_enabled_for_gaze(
const char* link_name,
int enabled);
6913 int get_link_enabled_for_gaze(
const char* link_name);
6931 int set_gaze_can_change_posture(
int enabled);
6934 int get_gaze_can_change_posture();
6952 int set_gaze_can_change_variant(
int enabled);
6955 int get_gaze_can_change_variant();
6981 int set_link_enabled_for_lpoint(
const char* link_name,
int enabled);
6984 int get_link_enabled_for_lpoint(
const char* link_name);
7010 int set_nod(
float azimuth,
7012 float duration = 0.5f);
7058 int nod_head(
float duration,
7060 float nod_elevation0 = 15.0f,
7061 float nod_elevation1 = 0.0f,
7062 float nod_elevation_out = 0.0f);
7090 int shake_head(
float duration,
7092 float shake_azimuth0 = -20.0f,
7093 float shake_azimuth1 = 20.0f,
7094 float shake_azimuth_out = 0.0f);
7102 float get_nod_azimuth();
7110 float get_nod_elevation();
7159 int set_aim(
float azimuth,
float elevation);
7197 int aim_at_angle(
float azimuth,
7200 int is_new_aim = 1);
7217 int aim_at_angle_local(
float azimuth,
7220 int is_new_aim = 1);
7232 int aim_at_angle_with_velocity(
float azimuth,
float elevation,
float az_vel,
float el_vel,
int local,
int is_new_aim = 1);
7258 int aim_at_point(
float x,
float y,
float z,
int is_new_aim = 1);
7271 int aim_at_point_local(
float x,
float y,
float z,
int is_new_aim = 1);
7311 int aim_at_character(
const char* target_character_name,
7312 const char* target_character_link_name = NULL,
7313 float offset_tx = 0.0f,
7314 float offset_ty = 0.0f,
7315 float offset_tz = 0.0f);
7327 const char * get_aim_at_character();
7330 float get_aim_azimuth();
7333 float get_aim_elevation();
7356 int get_aim_trajectory(
float* muzzle_x,
float* muzzle_y,
float* muzzle_z,
7357 float* far_x,
float* far_y,
float* far_z);
7370 int get_aim_is_possible();
7377 int get_aim_is_acquired();
7385 int get_aim_is_steady();
7393 int get_is_aiming();
7435 void set_aim_param_acquire_factor(
float factor);
7442 float get_aim_param_acquire_factor();
7459 void set_aim_param_new_aim_factor(
float factor);
7462 float get_aim_param_new_aim_factor();
7488 void set_aim_param_new_aim_duration(
float duration);
7491 float get_aim_param_new_aim_duration();
7506 void set_aim_param_max_per_frame_adj_factor(
float factor);
7509 float get_aim_param_max_per_frame_adj_factor();
7529 void set_aim_param_azimuth_acquired_range(
float range);
7532 float get_aim_param_azimuth_acquired_range();
7552 void set_aim_param_elevation_acquired_range(
float range);
7555 float get_aim_param_elevation_acquired_range();
7566 void set_aim_converge_every_frame(
int enabled );
7569 int get_aim_converge_every_frame();
7573 int set_aim_variable_interpolation_time(
float time);
7574 float get_aim_variable_interpolation_time();
7580 const char* get_aim_at_link();
7584 int get_aim_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7587 const char* get_gaze_at_link();
7590 int get_gaze_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7662 int fire_weapon_n_times(
int count,
7664 const char* override_sound_name = NULL,
7682 int fire_screen_space_bullet(
diguyView* view,
float x,
float y);
7710 int set_default_weapon_muzzle(
diguyMuzzle muzzle);
7777 const char* get_weapon_muzzle_munition_type(
diguyMuzzle muzzle);
7780 const char* get_weapon_supplemental_data_name();
7783 const char* get_default_muzzle_munition_type();
7799 int set_weapon_munition_type_override(
const char* munition_type);
7802 const char* get_weapon_munition_type_override();
7825 int set_weapon_fires_live_rounds(
int weapon_fires_live_rounds);
7835 int get_weapon_fires_live_rounds();
7862 int set_weapon_sound_override(
const char* sound_name);
7877 const char* get_weapon_sound_override();
7902 int set_weapon_sound_gain_override(
float gain);
7905 float get_weapon_sound_gain_override();
7929 void set_weapon_spread(
float spread);
7951 void set_weapon_near_range(
float near_range);
7952 float get_weapon_near_range();
7967 void set_weapon_far_range(
float far_range);
7968 float get_weapon_far_range();
7980 void set_weapon_hit_ratio(
float hit_ratio);
7991 void set_weapon_max_impacts(
int val);
7998 int get_accessory1_state();
8005 int get_rifle_state();
8024 int set_weapon_projectile_is_visible(
diguyMuzzle muzzle,
int is_visible);
8040 int get_weapon_projectile_is_visible(
diguyMuzzle muzzle);
8074 int get_weapon_aim_vector(
float* muzzle_tx,
float* muzzle_ty,
float* muzzle_tz,
8075 float* end_pt_tx = NULL,
float* end_pt_ty = NULL,
float* end_pt_tz = NULL,
8076 float* muzzle_rz = NULL,
float* muzzle_rx = NULL,
float* muzzle_ry = NULL,
8077 int in_character_local_coordinates = 0,
8117 float* offset_x = NULL,
8118 float* offset_y = NULL,
8119 float* offset_z = NULL);
8136 int set_weapon_max_azimuth_error(
float h_error);
8139 float get_weapon_max_azimuth_error();
8146 int set_weapon_max_elevation_error(
float v_error);
8149 float get_weapon_max_elevation_error();
8165 int set_weapon_tracers_enabled(
int enabled);
8168 int get_weapon_tracers_enabled();
8175 int get_weapon_rounds_until_tracer(
diguyMuzzle muzzle);
8196 int trigger_detonation_on_character(
const char* munition_name,
8197 const char* attacker_name = NULL,
8198 float radius_override = -1.0f,
8199 int broadcast_on_network = 1);
8256 int set_face_expression(
const char* facex_name,
float blend_duration,
float strength = 1.0f);
8279 int set_orientation_eyes(
float azimuth,
8281 float blend_time = 0.0f);
8291 int get_orientation_eyes(
float* azimuth,
float* elevation);
8309 int set_eye_droop(
float droop_amount,
float blend_time = 0.0f);
8312 float get_eye_droop();
8339 int blink(
float duration_in = 0.1f,
8340 float duration_out = 0.2f,
8341 float target_in = 1.0f,
8342 float target_out = 0.0f,
8379 int set_automatic_blinks_enabled(
int enabled,
8380 float period = 6.0f,
8381 float period_variation = 3.0f);
8384 int get_automatic_blinks_enabled();
8400 void set_automatic_blink_duration_in(
float duration_in);
8403 float get_automatic_blink_duration_in();
8419 void set_automatic_blink_duration_out(
float duration_out);
8422 float get_automatic_blink_duration_out();
8438 void set_automatic_blink_target_in(
float target_in);
8441 float get_automatic_blink_target_in();
8457 void set_automatic_blink_target_out(
float target_out);
8460 float get_automatic_blink_target_out();
8478 int set_current_facefx_animation_group(
const char* anim_group);
8485 const char* get_current_facefx_animation_group();
8493 const char* get_facefx_actor();
8501 int facefx_mount_animset(
const char* file_name);
8511 int play_facefx_animation(
const char* animation,
8512 float magnitude_scale = 1.0f,
8513 float duration_scale = 1.0f,
8514 float blendin_time = 0.1f,
8515 float blendout_time = 0.1f,
8523 int stop_facefx_animations(
float blend_time = 0.25f,
int stop_sounds = 1);
8535 int get_num_facefx_nodes();
8543 const char* get_facefx_node_name(
int index);
8550 int find_facefx_node_index(
const char* node_name);
8559 int set_facefx_node_value(
int node_index,
8561 float blend_time = 0.25f);
8568 float get_facefx_node_value(
int node_index);
8703 int execute_gesture(
const char* gesture_name,
8750 int execute_1stage_gesture(
const char* gesture_name,
8793 int execute_2stage_gesture(
const char* gesture_name,
8844 int execute_3stage_gesture(
const char* gesture_name,
8893 int execute_table_gesture(
const char* gesture_name,
8895 const char* loop_action = NULL,
8896 const char* begin_action = NULL,
8897 const char* end_action = NULL);
8914 int set_executing_table_gesture_desired_action(
const char* gesture_name,
8915 const char* desired_action);
8939 int end_executing_gesture(
const char* gesture_name);
8971 int abort_executing_gesture(
const char* gesture_name,
8972 float max_rampdown_interval = .5f);
8992 int end_all_gestures();
9022 int abort_all_gestures(
float max_rampdown_interval);
9090 int play_sound(
const char* sound_name,
9091 float sound_gain = 1.0f,
9092 int sound_loops = 0);
9131 int play_3d_sound(
const char* sound_name,
9132 float sound_gain = 1.0f,
9133 int sound_loops = 0);
9209 int stop_all_sounds(
float rampdown_time = 0.0f);
9236 int stop_sound(
const char* sound_name,
float rampdown_time = 0.0f);
9243 int is_playing_sound(
const char* sound_name);
9314 int set_current_voice_actor(
const char* voice_actor);
9317 const char* get_current_voice_actor();
9389 int get_DIS_lifeform_state();
9410 int get_DIS_primary_weapon_position();
9431 int get_DIS_secondary_weapon_position();
9452 int set_network_marking(
const char* network_marking);
9474 const char* get_network_marking();
9498 int set_is_network_published(
int is_network_published);
9520 int get_is_network_published();
9529 DtEntityStateRepository * get_vrlink_entity_state_repository();
9550 int get_is_network_reflected();
9575 int get_is_network_paused();
9583 int set_is_network_paused(
int paused);
9604 int get_network_entity_number();
9666 const char* get_action_from_entity_state(
int damage_state,
9667 int life_form_state,
9668 int primary_weapon_state,
9693 void set_DIS_damage_state(
int state);
9697 int get_DIS_damage_state();
9705 const char * get_damage_state_appearance_name(
int state);
9729 void set_DIS_smoke_state(
int state);
9733 int get_DIS_smoke_state();
9754 void set_DIS_flames_state(
int state);
9758 int get_DIS_flames_state();
9779 void set_DIS_power_plant_state(
int state);
9783 int get_DIS_power_plant_state();
9787 void set_emissivity(
float r,
float g,
float b,
float lerp_time = .25);
9791 void get_emissivity(
float *r,
float *g,
float *b);
9813 void set_DIS_trailing_effect_state(
int state);
9817 int get_DIS_trailing_effect_state();
9821 void set_head_lights_state(
int state);
9824 int get_head_lights_state()
const;
9827 void set_tail_lights_state(
int state);
9830 int get_tail_lights_state()
const;
9871 int call_formation(
const char* formation_name,
9872 int snap_to_position_flag = 0,
9873 int break_existing_formations_flag = 1);
9892 int break_formation(
const char* formation_name = NULL);
9933 int automatically_disable_when_acquired = 0);
9961 const char* guide_algorithm,
9962 int automatically_disable_when_acquired = 0);
9983 const char* guide_algorithm,
9984 int automatically_disable_when_acquired = 0);
10018 int remove_guide_with_name(
const char* guide_name);
10045 int remove_all_guides();
10056 int remove_all_disabled_guides();
10106 int add_motion_texture(
const char* motex_name =
"default",
10107 float texture_gain = 1.0f,
10108 int end_previous_motex = 1,
10109 float rampup_interval = 0.2f);
10126 int end_motion_texture(
float rampdown_interval = 0.2f);
10151 int set_initial_motion_texture(
const char* motex_name);
10163 const char* get_initial_motion_texture();
10181 int set_initial_motion_texture_gain(
float motex_gain);
10193 float get_initial_motion_texture_gain();
10283 int set_history_size_t(
float t);
10295 float get_history_size_t();
10311 int set_history_size_increment_t(
float t);
10323 float get_history_size_increment_t();
10556 int match_posture_before_variant = 1,
10561 int return_random_match = 0);
10630 int match_posture_before_variant = 1,
10652 int get_num_variables();
10725 int variable_equal_to_int(
const char* varname,
int value);
10740 int variable_greater_than_int(
const char* varname,
int value);
10755 int variable_less_than_int(
const char* varname,
int value);
10770 int variable_equal_to_float(
const char* varname,
float value);
10785 int variable_greater_than_float(
const char* varname,
float value);
10800 int variable_less_than_float(
const char* varname,
float value);
10815 int variable_equal_to_string(
const char* varname,
const char* value);
10830 int variable_greater_than_string(
const char* varname,
const char* value);
10845 int variable_less_than_string(
const char* varname,
const char* value);
10863 int variable_decrement_value_as_int(
const char* varname,
int value = 1);
10881 int variable_increment_value_as_int(
const char* varname,
int value = 1);
10903 int variable_set_value_as_int(
const char* varname,
10905 int create_if_doesnt_exist = 1);
10912 int set_ivar(
const char* varname,
10914 int create_if_doesnt_exist = 1);
10936 int get_ivar(
const char* varname,
10937 int create_if_doesnt_exist = 1);
10945 int variable_set_value_as_float(
const char* varname,
10947 int create_if_doesnt_exist = 1);
10954 int set_fvar(
const char* varname,
10956 int create_if_doesnt_exist = 1);
10967 float get_fvar(
const char* varname,
10968 int create_if_doesnt_exist = 1);
10976 int variable_set_value_as_string(
const char* varname,
10978 int create_if_doesnt_exist = 1);
10985 int set_svar(
const char* varname,
10987 int create_if_doesnt_exist = 1);
10998 const char* get_svar(
const char* varname,
10999 int create_if_doesnt_exist = 1);
11047 int set_label_text(
const char* label_text);
11059 const char* get_label_text();
11079 int set_label_is_visible(
int is_visible);
11091 int get_label_is_visible();
11114 int set_label_text_color(
float r,
float g,
float b,
float a);
11121 int set_label_text_color_vec4(
const diguyVec4f & color);
11133 int get_label_text_color(
float* r,
float* g,
float* b,
float* a);
11163 int set_label_text_shadow_color(
float r,
float g,
float b,
float a);
11170 int set_label_text_shadow_color_vec4(
const diguyVec4f & color);
11182 int get_label_text_shadow_color(
float* r,
float* g,
float* b,
float* a);
11189 diguyVec4f get_label_text_shadow_color_vec4();
11204 int set_label_text_shadow_is_visible(
int is_visible);
11211 int get_label_text_shadow_is_visible();
11235 int set_label_background_color(
float r,
float g,
float b,
float a);
11242 int set_label_background_color_vec4(
const diguyVec4f & color);
11254 int get_label_background_color(
float* r,
float* g,
float* b,
float* a);
11261 diguyVec4f get_label_background_color_vec4();
11273 void set_label_link_offset_override(
float offset);
11280 float get_label_link_offset_override();
11297 int set_label_shows_character_state(
int show_state);
11305 int get_label_shows_character_state();
11334 int get_last_impact_number();
11341 int get_last_impact_been_processed();
11348 void set_last_impact_been_processed();
11362 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
11369 int get_max_unprocessed_impacts();
11376 const char* get_last_impact_link();
11383 int get_last_impact_link_is(
const char* link_name);
11391 int get_last_impact_is_from_vehicle();
11399 int get_last_impact_speed_is_greater_than(
float impact_speed);
11407 void set_is_immune_to_impacts(
int immune);
11415 int get_is_immune_to_impacts();
11481 int begin_appearance_effect(
const char* effect,
11482 const char* override_link = NULL,
11515 int end_appearance_effect(
const char* effect,
11516 const char* override_link = NULL);
11544 int stop_appearance_effect(
const char* effect,
11545 const char* override_link = NULL);
11552 int stop_all_appearance_effects();
11569 int appearance_effect_is_active(
const char* effect,
11570 const char* override_link = NULL);
11653 int get_vehicle_body_orientation(
float* rz,
float* rx,
float* ry);
11706 int set_render_mode_shader(
const char* shader_name,
11707 const char* render_mode = NULL);
11728 void reset_render_mode_shader_to_default(
const char* render_mode = NULL);
11746 const char* get_render_mode_shader(
const char* render_mode = NULL);
11796 int set_temporary_current_shader(
const char* shader_name);
11808 void reset_current_shader_to_default();
11817 void trigger_shader_refresh();
11843 void reset_shader_instance_variables_to_initial_values();
11851 void reset_shader_instance_variables_to_program_defaults();
11905 int agent_attack_character(
const char* character_name);
11934 int agent_attack_group(
const char* group_name);
11941 int agent_set_attack_zone_enabled(
int use_attack_zone);
11948 int agent_get_attack_zone_enabled();
11955 int agent_set_attack_zone(
float x,
float y,
float z,
float radius);
11962 int agent_get_attack_zone(
float* x,
float* y,
float* z,
float* radius);
12002 int agent_flee_character(
const char* character_name,
12004 int danger_level = 50);
12035 int agent_flee_group(
const char* group_name,
12037 int danger_level = 50);
12046 int agent_flee_crowd(
const char* crowd_name,
12048 int danger_level = 50);
12080 int agent_flee_location(
float x,
float y,
float z,
12082 int danger_level = 50);
12097 void agent_remove_all_flee_objects();
12138 int agent_mingle_in_region(
const char* region_name =
"(current)",
12139 const char* subregion_name =
"base");
12164 int agent_wander_region(
const char* region_name =
"(current)",
12165 const char* subregion_name =
"base");
12204 int agent_pursue_character(
const char* character_name);
12213 int agent_pursue_character_with_offset(
const char* character_name,
12244 int agent_pursue_group(
const char* group_name);
12256 int agent_call_formation(
const char* formation_name,
12296 int agent_travel_behavior_path(
const char* direction = NULL,
12297 const char* at_end = NULL,
12298 int waypoint_index = -1,
12299 float offset_y = 0.5f);
12307 int agent_travel_path_shape(
const char* path_shape_name,
12308 const char* direction = NULL,
12309 const char* at_end = NULL,
12310 int waypoint_index = -1,
12311 float offset_y = 0.5f);
12332 int agent_travel_region_border(
const char* region_name = NULL,
12333 const char* subregion_name =
"base");
12359 int agent_move_to_point(
float x,
float y,
float z,
12360 const char* via_region = NULL,
12361 const char* subregion_name =
"base");
12383 int agent_move_to_point_bg(
float x,
float y,
float z,
12384 const char* via_region = NULL,
12385 const char* subregion_name =
"base");
12452 int agent_move_to_point_via_subregions(
float x,
float y,
float z,
12453 const char* via_region = NULL,
12455 float cost_bias_for_preferred_regions = 0.25f,
12456 float cost_bias_for_neutral_regions = 1.1f,
12458 float cost_bias_for_repulsed_regions = 10.0f,
12459 int cost_rule = 0);
12479 int agent_move_to_point_via_subregions_bg(
float x,
float y,
float z,
12480 const char* via_region = NULL,
12482 float cost_bias_for_preferred_regions = 0.25f,
12483 float cost_bias_for_neutral_regions = 1.1f,
12485 float cost_bias_for_repulsed_regions = 10.0f,
12486 int cost_rule = 0);
12495 int get_path_planning_result();
12503 int get_is_path_planning();
12525 int agent_move_to_region(
const char* region,
12526 const char* subregion_name =
"base",
12527 const char* via_region = NULL);
12551 int agent_move_to_region_via_subregions(
const char* region_name,
12552 const char* subregion_name =
"base",
12553 const char* via_region = NULL,
12554 float cost_bias_for_preferred_regions = 0.25f,
12556 float cost_bias_for_neutral_regions = 1.1f,
12558 float cost_bias_for_repulsed_regions = 10.0f);
12594 int agent_path_follow(
const char* path_name);
12609 int agent_resume_path_follow();
12643 float agent_get_path_follow_path_t();
12650 int agent_get_path_follow_path_t_paused();
12677 int agent_begin_behavior(
const char* behavior_name);
12684 int agent_stop_behavior();
12712 int agent_set_current_focus_character(
const char* character_name);
12752 int agent_set_current_focus_group(
const char* group_name);
12806 const char* agent_get_current_params_profile_name();
12840 int agent_set_current_params_from_profile(
const char* profile_name,
12841 int retain_focus_objects = 1,
12842 int retain_navigation_values = 1,
12843 int retain_behavior = 0);
12851 int agent_set_initial_params_from_profile(
const char* profile_name);
12859 void agent_set_current_params_from_initial_params();
12880 void agent_set_current_behavior_region_border_is_solid(
int is_solid);
12891 void agent_move_on();
12904 int agent_set_auto_variant_selection(
int selection_enabled);
12911 int agent_get_auto_variant_selection();
12933 void agent_set_use_speed_zones_on_paths(
int enabled);
12940 int agent_get_use_speed_zones_on_paths();
12942 #ifdef CPLUSPLUS_ONLY
13057 int create_lua_mind(
const char* base_class,
const char* init_arg1 = NULL,
13058 const char* init_arg2 = NULL);
13066 const char *get_mind_name();
13081 const char* get_mind_current_state_name();
13093 void do_mind_current_state_changed_callback();
13107 int set_sleep_timer(
float sleep_length);
13115 float get_sleep_timer();
13128 int set_heartbeat_dt(
float heartbeat_dt);
13147 int add_secondary_heartbeat(
const char* function_name,
13148 float heartbeat_dt);
13165 int remove_secondary_heartbeat(
const char* function_name);
13183 int set_secondary_heartbeat_dt(
const char* function_name,
float heartbeat_dt);
13219 int add_wakeup_callback(
int callback);
13236 int remove_wakeup_callback(
int callback);
13248 int remove_all_wakeup_callbacks();
13260 int has_wakeup_callback(
int callback);
13279 int agent_accept_message(
const char* sender,
13280 const char* message_type,
13281 const char* message,
13282 const char* message_params = NULL);
13305 int agent_broadcast_message(
float radius,
13306 const char* message_type,
13307 const char* message,
13308 const char* message_params = NULL);
13333 int agent_broadcast_message_to_group(
const char* group_name,
13335 const char* message_type,
13336 const char* message,
13337 const char* message_params = NULL);
13346 const char* get_lua_object_name();
13353 void set_mind_field_as_string(
const char* field_name,
13354 const char* field_value);
13371 const char* get_mind_field_as_string(
const char* field_name,
13372 int warn_if_no_field = 1);
13380 void set_mind_field_as_float(
const char* field_name,
float field_value);
13392 float get_mind_field_as_float(
const char* field_name,
13393 int warn_if_no_field = 1,
13394 int* found_field = NULL);
13402 void set_mind_field_as_int(
const char* field_name,
int field_value);
13414 int get_mind_field_as_int(
const char* field_name,
13415 int warn_if_no_field = 1,
13416 int* found_field = NULL);
13443 const char* evaluate_mind_function(
const char* function_name,
13444 const char* argument = NULL,
13445 int has_return_string = 0);
13468 const char* get_ai_state_string(
int include_stack = 1,
int include_locals = 1);
13513 int los_check_type = 0);
13537 int check_point_visibility(
float x,
float y,
float z);
13558 #ifdef CPLUSPLUS_ONLY
13679 int get_num_ik_chains();
13683 const char * get_ik_chain_name_at_index(
int index);
13696 int set_ik_target_world(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13709 int set_ik_target_local(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13713 int disable_ik_target(
int ik_chain_target,
float ramp_time = .25f);
13720 void set_distance_to_primary_camera(
float camera_dist);
13723 float get_distance_to_primary_camera();
13926 void set_stop_physics_sim_at_t(
float t);
13935 void set_stop_physics_sim_in_t_seconds(
float relative_t);
13942 float get_stop_physics_sim_at_t();
13960 void apply_impulse_to_physics_sim(
const char* link,
13961 float impulse_magnitude_x,
13962 float impulse_magnitude_y,
13963 float impulse_magnitude_z,
13964 float link_offset_x = 0.0f,
13965 float link_offset_y = 0.0f,
13966 float link_offset_z = 0.0f,
13967 int set_simulation_drives_character = 1);
13993 void apply_impulse_to_physics_sim_from_world_position(
const char* link,
13994 float impulse_magnitude_x,
13995 float impulse_magnitude_y,
13996 float impulse_magnitude_z,
13997 float impulse_generator_position_x,
13998 float impulse_generator_position_y,
13999 float impulse_generator_position_z,
14000 float max_distance = 20.0f,
14001 float impulse_rolloff = 0.0f,
14002 float link_offset_x = 0.0f,
14003 float link_offset_y = 0.0f,
14004 float link_offset_z = 0.0f,
14005 int set_simulation_drives_character = 1);
14036 static int set_max_shader_quality_level(
int quality_level);
14039 static int get_max_shader_quality_level();
14055 int set_animation_events_enabled(
int enable);
14056 int get_animation_events_enabled();
14075 int get_action_num_channels(
const char* action_name);
14097 int set_action_channel_weight(
const char* action_name,
14116 float get_action_channel_weight(
const char* action_name,
14132 float get_time_to_reach_desired_action();
14155 const char* get_type_map_field_using_string(
const char* field);
14159 float get_normalized_age()
const;
14183 int merge_object(
const char*
object);
14196 int is_active_character_in_group_visible(
const char* group_name,
14197 float max_distance_to_check = 100000.0f);
14214 int get_local_space_bounding_box(
float* x1,
float* y1,
float* z1,
14215 float* x2,
float* y2,
float* z2);
14227 void set_mind_always_updates(
int force_update);
14230 int get_mind_always_updates();
14236 float get_angle_to_path(
const char* path_name,
14237 const char* action_bead_name = NULL);
14242 void set_scene_graph_mask(
unsigned int mask);
14245 unsigned int get_scene_graph_mask();
14262 int set_local_to_world_orientation_matrix(
float rz,
float rx,
float ry);
14264 int set_local_to_world_orientation_matrix(
14265 float a0,
float a1,
float a2,
14266 float b0,
float b1,
float b2,
14267 float c0,
float c1,
float c2,
int transpose = 0);
14272 int set_always_update_regardless_of_dt(
int val);
14274 int get_always_update_regardless_of_dt();
14276 void set_shader_matrixes_out_of_date();
14296 int aim_converge(
int max_iterations = 30);
14299 void set_aim_algorithm(
int aim_algorithm);
14302 int get_aim_algorithm();
14436 #ifdef CPLUSPLUS_ONLY
14438 bdiScenarioCharacter* get_scripted_object();
14454 bdiScenarioCharacter* m_scripted_object;
14456 friend class bdiPublishedCharacter;
14457 friend class bdiScenarioCharacter;
Definition: diguyViewLabel.h:44
A class that represents the unique per-character shader object.
Definition: diguyGraphicsShaderInstance.h:55
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:382
Experimental class for helping with multichannel synchronization.
Definition: diguyMotionEngineSnapshot.h:6
#define DIGUY_DEFAULT_FLOAT
This value is a magic number that, when passed to certain functions, means that the function should u...
Definition: diguy_constants.h:64
diguyCallbackReturn diguyCharacterCallback(diguyCharacter *character, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:51
diguyCharacterTypeMapField
This enumeration allows type map fields to be queried using a numerical value rather than a string na...
Definition: diguyCharacterTypeMap.h:33
The class that represents what parameters an agent is currently using to carry out their base behavio...
Definition: diguyAgentParams.h:39
wrapper around a chain simulation
Definition: diguyChainSimulation.h:35
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:280
Definition: diguyPathShape.h:30
diguyMotionDirection
Definition: diguyMotionDirection.h:26
Definition: diguy_vector_classes.h:154
A class that represents a bullet impact in the world, often used by AIs to make reaction decisions...
Definition: diguyImpact.h:41
A bead that sits on a character's spline path and triggers a new gaze.
Definition: diguyCharacterPathGazeBead.h:34
Definition: diguyMotionPosture.h:32
diguyConnectionPointType
Definition: diguyConnectionPointType.h:27
Definition: diguy_constants.h:165
#define DIGUY_DEFAULT_INT
This value is a magic number that, when passed to certain functions, means that the function should u...
Definition: diguy_constants.h:74
Definition: diguy_constants.h:183
A view is a graphics window wherein the scenario and its characters are animated. Note that views hav...
Definition: diguyView.h:48
diguyMuzzle
This is an enumeration of the different muzzles that can be specified to various DI-Guy function call...
Definition: diguy_constants.h:181
A bead that sits on a character's spline path and triggers a new decision.
Definition: diguyCharacterPathDecisionBead.h:34
An interface for manipulating a character's spline path. A path is typically authored in DI-Guy Scena...
Definition: diguyCharacterPath.h:47
diguyCharacterSimulator
This enumeration lists the ways that data can be generated for DI-Guy characters. ...
Definition: diguy_constants.h:1686
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:110
Attached to certain types of more complex vehicles, to manage their behavior.
Definition: diguyVehicleController.h:49
float diguyAltitudeFunction(diguyCharacter *character, float x, float y, float old_z, int *valid)
Definition: diguy_typedefs.h:57
int diguyCharacterLOSFunction(diguyCharacter *character, diguyCharacter *target_character, int visibility_type)
Definition: diguy_typedefs.h:106
Represents the scenario currently being portrayed.
Definition: diguyScenario.h:100
A group of DI-Guy characters, useful for organizing your scenarios.
Definition: diguyCharacterGroup.h:38
The class that represents a DI-Guy Entity in the world.
Definition: diguyCharacter.h:80
Definition: diguyWaypoint.h:29
Definition: diguySensorRegion.h:38
int diguyPointLOSFunction(diguyCharacter *character, float x, float y, float z)
Definition: diguy_typedefs.h:111
A class that allows end users to override a character's animation on a joint level. this class complements the diguyPoseOverride system with one that is a bit more scriptable and can handle automatic animation effects.
Definition: diguyLinkController.h:44
int diguyFeelerFunction(diguyCharacter *character, float origin_x, float origin_y, float origin_z, float dir_x, float dir_y, float dir_z, float max_distance_to_test, float *intersection_x, float *intersection_y, float *intersection_z, float *normal_x, float *normal_y, float *normal_z)
Definition: diguy_typedefs.h:64
static double t
4 Header files and forward declarations
Definition: simple_playback_ogl.cpp:55
Definition: diguy_constants.h:1519
Definition: diguyMotionVariant.h:54
diguyParameterComparison
This is an enumeration of the different parameter comparison options that can be specified to various...
Definition: diguy_constants.h:163
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:47
A class that allows end users to override a character's animation on a joint level.
Definition: diguyCharacterPoseOverride.h:37
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:96
diguyMotionVariant
Definition: diguyMotionVariant.h:26
diguyCharacterMode
This is an enumeration of the different modes a DI-Guy character can be in.
Definition: diguy_constants.h:148
A class that represents the unique per-character non-shared mesh object. DI-Guy encapsulates its text...
Definition: diguyGraphicsShape.h:51
A class representing a overlaid performance on a character's base animation.
Definition: diguyCharacterGesture.h:43
A bead that sits on a character's spline path and triggers a new script evaluation.
Definition: diguyCharacterPathScriptBead.h:34
Definition: diguySoundInstance.h:29
Definition: diguyVariable.h:38
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:132
diguyPhysicsSimulationMode
This enumeration lists the modes that a DI-Guy character physics sim can be in, when the character si...
Definition: diguy_constants.h:1703
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1719
This class implements shader lod system for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderTechnique.h:152
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:96
The class that represents a DI-Guy Crowd, DI-Guy AI agents can be given orders at an individual level...
Definition: diguyCrowd.h:47
Represents algorithm for steering and maneuvering a character towards a goal point.
Definition: diguyCharacterGuide.h:561
diguyMotionPosture
Definition: diguyMotionPosture.h:26
A bead that sits on a character's spline path and triggers a new aim event.
Definition: diguyCharacterPathAimBead.h:34