18 #define CPLUSPLUS_ONLY
33 class bdiScenarioCharacter;
66 class DtEntityStateRepository;
103 const char* get_name();
114 int set_name(
const char* name);
122 const char* get_type_name();
173 int update(
float t,
int full_update = 1);
188 void set_character_type(
const char* type);
211 const char* get_character_type_string();
236 const char* get_character_class();
274 int set_enabled(
int enabled);
307 int set_drawn_by_scenario_flag(
int flag);
324 int get_drawn_by_scenario_flag();
342 void set_invisible_flag(
int invisible_flag);
345 int get_invisible_flag();
391 int get_was_drawn_last_frame();
394 int set_was_drawn_last_frame(
int drawn);
404 int set_is_culled(
int culled);
412 int get_is_temporary();
423 int get_is_recycled();
442 int set_t_controlled_by_scenario_t(
int t_controlled_by_scenario_t);
450 int get_t_controlled_by_scenario_t();
480 int set_initial_tin(
float tin,
int override_time_warning = 0);
509 int set_initial_tout(
float tout);
555 int set_current_tin(
float tin);
568 int set_current_tin_to_now();
580 float get_current_tin();
602 int set_current_tout(
float tout,
603 int disable_character_at_tout = 0);
617 int set_current_tout_to_now();
625 float get_current_tout();
634 void set_tout_enabled(
int tout_enabled);
647 int get_tout_enabled();
650 float get_char_time();
674 int set_careful_interpolation_threshold(
float threshold);
682 float get_careful_interpolation_threshold();
700 int set_motion_interpolation_flag(
int flag);
708 int get_motion_interpolation_flag();
724 int set_scale(
float scale_x,
float scale_y,
float scale_z);
741 int get_scale(
float* scale_x,
float* scale_y,
float* scale_z);
766 int set_parent(
const char* parent_name,
const char* parent_link_name =
"");
790 const char* get_parent_link_name();
811 int get_num_children();
839 int get_is_scene_object();
856 int set_is_scene_object(
int is_scene_object);
869 float get_bounding_radius();
882 float get_default_bounding_radius();
890 void set_bounding_radius(
float f);
911 float get_time_to_transition();
914 float get_character_local_time();
957 int set_t_scale_factor(
float t_scale_factor);
973 int unset_t_scale_factor();
990 int is_within_distance_n_of_character(
const char* character_name,
1008 int is_within_distance_n_of_member_of_group(
const char* group_name,
1027 int is_group_member(
const char* group_name);
1037 int get_num_group_memberships();
1082 diguyCharacter* get_nearest_active_character(
int check_visibility,
1083 int xy_distance = 0,
1084 float max_distance_to_check = 100000);
1111 diguyCharacter* get_nearest_active_character_in_group(
const char* group_name,
1112 int check_visibility = 1,
1113 int xy_distance = 0,
1114 float max_distance_to_check = 100000);
1143 diguyCharacter* get_random_active_character(
float max_distance = 10.0f,
1144 int check_visibility = 1,
1145 int xy_distance = 0);
1175 diguyCharacter* get_random_active_character_in_group(
const char* group_name,
1176 float max_distance = 10,
1177 int check_visibility = 1,
1178 int xy_distance = 0);
1205 float get_distance_to_impact(
diguyImpact* impact);
1233 float get_random_factor();
1285 #ifdef CPLUSPLUS_ONLY
1306 void* get_graphics_ptr();
1333 int set_graphics_ptr(
void* graphics_ptr);
1351 void set_graphics_api_node_ptr(
void* node_ptr);
1358 void* get_graphics_api_node_ptr();
1376 int set_user_data(
void* user_data);
1383 void* get_user_data();
1443 int retain_path_shape = 0 );
1475 const char* get_desired_action();
1478 int get_desired_action_index();
1481 const char* get_current_action();
1484 int get_current_action_index();
1507 int get_is_in_action_transition();
1566 int force_action(
const char* action_name,
1568 int include_transition_arc = 1,
1569 float max_rampdown_interval = 0.5f,
1570 int retain_path_shape = 0,
1571 float t_offset_into_new_action = 0.0f);
1602 int force_action_with_duration(
const char* action_name,
1604 int include_transition_arc = 1,
1605 float max_rampdown_interval = 0.5f);
1628 int force_action_with_offset(
const char* action_name,
1630 int include_transition_arc = 1,
1631 float max_rampdown_interval = 0.5f,
1632 int retain_path_shape = 0,
1633 float t_offset_into_new_action = 0.0f,
1634 float x = 0,
float y = 0,
float z = 0 );
1666 int force_action_and_path_shape(
const char* action_name,
1667 const char* path_shape_name,
1668 const char* waypoint_name = NULL,
1669 float distance_into_path = 0.0f);
1713 const char* get_most_recent_forced_action();
1726 float get_most_recent_forced_action_t();
1740 float get_most_recent_forced_action_t_offset();
1767 int add_pending_desired_action(
const char* action,
1769 int remove_existing_pending_actions = 0,
1771 int retain_path_shape = 1);
1787 int add_pending_force_action(
const char* action,
1789 int remove_existing_pending_actions = 0,
1791 int include_transition_arc = 1,
1792 float max_rampdown_interval = 0.5f,
1793 int retain_path_shape = 1,
1794 float first_arc_time_shift = 0.0f);
1802 int is_valid_action(
const char* action);
1837 int die_now(
const char* preferred_dead_action_name =
"(default)");
1852 int revive_now(
const char* preferred_revive_action_name =
"(default)");
1893 int set_speed(
float speed);
1912 float get_desired_speed();
1937 int set_animation_target_el(
float elevation,
float ramp_time = .25f);
1940 float get_animation_target_el();
1948 int set_animation_target_az(
float azimuth,
float ramp_time = .25f);
1951 float get_animation_target_az();
1973 void set_animation_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1976 void get_animation_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
1988 void set_animation_local_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1991 void get_animation_local_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
1999 void set_animation_angular_velocity(
float vel_rz,
float ramp_time = .25f);
2002 float get_animation_angular_velocity();
2053 int set_position(
float tx,
float ty,
float tz);
2075 int set_position_double(
double tx,
double ty,
double tz);
2095 int get_position(
float* tx,
float* ty,
float* tz);
2119 int get_position_double(
double* tx,
double* ty,
double* tz);
2147 int set_position_relative_to_parent(
float tx,
float ty,
float tz);
2168 int get_position_relative_to_parent(
float* tx,
float* ty,
float* tz);
2202 int set_position_to_other_character_position(
const char* other_character_name,
2203 const char* other_link_name = NULL,
2204 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2205 int also_set_orientation = 1);
2228 int set_desired_position(
float tx,
float ty,
float tz,
2229 int force_guide_unacquired = 0);
2231 int set_desired_position_double(
double tx,
double ty,
double tz,
2232 int force_guide_unacquired = 0);
2253 int set_desired_position_to_current_position(
int also_set_orientation = 1);
2283 int set_desired_position_to_waypoint(
diguyWaypoint* waypoint,
2284 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2285 int offset_in_world_coords = 0);
2308 int set_desired_position_to_path_waypoint(
const char* path_name,
2309 const char* waypoint_name);
2332 int set_desired_position_to_path_shape_waypoint(
const char* path_shape_name,
2333 const char* waypoint_name);
2354 int get_desired_position(
float* tx,
float* ty,
float* tz);
2355 int get_desired_position_double(
double* tx,
double* ty,
double* tz);
2376 int get_delta_to_desired_position(
float* tx,
float* ty,
float* tz);
2395 int set_initial_position(
float tx,
float ty,
float tz);
2418 int get_initial_position(
float* tx,
float* ty,
float* tz);
2450 int set_orientation(
float rz,
float rx,
float ry);
2476 int get_orientation(
float* rz,
float* rx,
float* ry);
2504 int set_orientation_relative_to_parent(
float rz,
float rx,
float ry);
2526 int get_orientation_relative_to_parent(
float* rz,
float* rx,
float* ry);
2576 int set_initial_up_vector_type(
char axis);
2585 int set_initial_up_vector(
char axis);
2592 char get_initial_up_vector_type();
2601 char get_initial_up_vector();
2624 int set_up_vector_type(
char axis);
2633 int set_up_vector(
char axis);
2640 char get_up_vector_type();
2649 char get_up_vector();
2679 int set_custom_orientation_rx_and_ry(
float rx,
2702 int set_desired_orientation(
float rz,
float rx,
float ry,
2703 int force_guide_unacquired = 0);
2725 int get_desired_orientation(
float* rz,
float* rx,
float* ry);
2748 int get_delta_to_desired_orientation(
float* rz,
float* rx,
float* ry);
2765 int set_desired_orientation_to_current_orientation();
2782 int set_desired_orientation_towards_position(
float x,
float y,
float z,
2783 int force_guide_unacquired = 0);
2803 int set_initial_orientation(
float rz,
float rx,
float ry);
2828 int get_initial_orientation(
float* rz,
float* rx,
float* ry);
2850 int get_link_position(
const char* link_name,
2851 float* tx,
float* ty,
float* tz,
2852 float* rz,
float* rx,
float* ry);
2874 int get_link_position_double(
const char* link_name,
2875 double* tx,
double* ty,
double* tz,
2876 double* rz,
double* rx,
double* ry);
2898 int get_link_position_with_offset(
const char* link_name,
2899 float offset_tx,
float offset_ty,
float offset_tz,
2900 float* tx,
float* ty,
float* tz,
2901 float* rz,
float* rx,
float* ry);
2923 int get_link_position_with_offset_double(
const char* link_name,
2924 double offset_tx,
double offset_ty,
double offset_tz,
2925 double* tx,
double* ty,
double* tz,
2926 double* rz,
double* rx,
double* ry);
2950 int get_link_relative_position(
const char* beginning_link_name,
2951 const char* ending_link_name,
2952 float* tx,
float* ty,
float* tz,
2953 float* rz,
float* rx,
float* ry);
2978 int get_link_relative_position_with_offset(
const char* beginning_link_name,
2979 const char* ending_link_name,
2980 float offset_tx,
float offset_ty,
float offset_tz,
2981 float* tx,
float* ty,
float* tz,
2982 float* rz,
float* rx,
float* ry);
3010 void set_apply_actor_scale_to_action_bead_travel(
int apply_scale_flag);
3017 int get_apply_actor_scale_to_action_bead_travel();
3030 int local_to_global(
float x,
float y,
float z,
3031 float* res_x,
float* res_y,
float* res_z);
3044 int global_to_local(
float x,
float y,
float z,
3045 float* res_x,
float* res_y,
float* res_z);
3062 void get_velocity(
float* vel_x,
float* vel_y,
float* vel_z);
3066 void get_acceleration(
float* accel_x,
float* accel_y,
float* accel_z);
3077 void set_desired_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.0);
3078 void get_desired_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
3094 void get_angular_velocity(
float* vel_rz);
3102 void set_desired_angular_velocity(
float vel_rz);
3103 void get_desired_angular_velocity(
float* vel_rz);
3128 const char* get_appearance();
3149 int set_appearance(
const char* appearance);
3181 int set_current_appearance(
const char* appearance,
3182 int allow_actor_change = 1);
3185 const char* get_current_appearance();
3200 int get_current_appearance_is(
const char* appearance );
3217 int set_head_appearance(
const char* head_appearance);
3228 int set_current_head_appearance(
const char* head_appearance);
3231 const char* get_current_head_appearance();
3234 int get_num_compatible_head_appearances();
3237 const char* get_compatible_head_appearance_at_index(
int index);
3240 int get_num_compatible_facefx_head_appearances();
3243 const char* get_compatible_facefx_head_appearance_at_index(
int index);
3257 int get_current_head_appearance_is(
const char* head_appearance);
3276 int set_hand_item(
const char* hand_item_appearance);
3285 const char* get_hand_item();
3302 int set_current_hand_item(
const char* hand_item_appearance);
3310 const char* get_current_hand_item();
3317 const char* get_current_hand_item_type();
3320 const char* get_actor();
3324 int add_equipment_appearance(
const char* equipment_appearance );
3327 int reset_equipment_appearance(
const char* class_type );
3330 int reset_equipment_appearance();
3333 int get_num_equipment();
3336 const char* get_equipment_name_at_index(
int index );
3339 const char* get_equipment_type_at_index(
int index );
3342 int get_equipment_index_at_index(
int index );
3345 int add_equipment_by_index(
int index );
3354 int set_use_texture_variations(
int value);
3361 int get_use_texture_variations();
3365 void set_texture_variation_seed(
float seed);
3368 int get_supports_texture_variations();
3372 int get_supports_weight_variations();
3377 void set_weight_scale(
float weight );
3380 float get_weight_scale();
3384 int set_blend_shape_weight(
const char * name,
float weight);
3390 bool set_unit_patch_by_name(
const char* name,
bool set_personal_patch =
false );
3391 const char* get_unit_patch_name()
const;
3393 bool set_personal_unit_patch_by_name(
const char* name );
3394 const char* get_personal_unit_patch_name()
const;
3415 bool set_rank_patch_by_name(
const char* name );
3416 const char* get_rank_patch_name()
const;
3432 bool set_uniform_label_text(
const char* name );
3433 const char* get_uniform_label_text()
const;
3512 int set_lod_ranges(
float* lod_ranges);
3514 #ifdef CPLUSPLUS_ONLY
3515 float* get_lod_ranges();
3540 int set_graphics_lod(
float lod);
3543 int get_graphics_lod();
3546 float get_graphics_lod_fraction();
3550 int set_allow_instancing(
int value);
3553 int get_allow_instancing()
const;
3557 int get_is_instanced()
const;
3560 void set_is_instanced(
int val);
3563 int can_lod_be_instanced(
int lod);
3576 int set_final_tbo_position_matrix(
int include_local_to_global_transform,
3577 float a0,
float a1,
float a2,
float a3,
3578 float b0,
float b1,
float b2,
float b3,
3579 float c0,
float c1,
float c2,
float c3);
3598 int set_shader_lod(
int lod);
3601 int get_shader_lod();
3605 int get_has_bump_maps();
3642 int set_motion_lod(
int motion_lod);
3645 int get_motion_lod();
3648 int get_current_motion_lod();
3711 int set_minimum_cpl(
int minimum_cpl);
3714 int get_minimum_cpl();
3731 int get_maximum_possible_current_cpl();
3753 int maximize_current_cpl();
3774 int set_automatic_cpl_switching_enabled(
int enabled);
3777 int get_automatic_cpl_switching_enabled();
3802 int set_current_cpl(
int current_cpl);
3805 int get_current_cpl();
3842 int set_position_update_rate(
int update_rate);
3845 int get_position_update_rate();
3880 int set_pose_update_rate(
int update_rate);
3883 int get_pose_update_rate();
3909 int set_minimum_full_update_period(
float min_period);
3912 float get_minimum_full_update_period();
3939 int set_position_accumulation_disabled(
int disabled_flag);
3942 int get_position_accumulation_disabled();
3965 int set_all_blends_disabled(
int disabled_flag);
3968 int get_all_blends_disabled();
3999 int set_shape_callbacks_disabled(
int disabled_flag);
4002 int get_shape_callbacks_disabled();
4023 int set_graphics_api_shape_update_disabled(
int disabled_flag);
4026 int get_graphics_api_shape_update_disabled();
4065 int optimized_update(
float t);
4090 int set_is_load_managed(
int is_load_managed);
4093 int get_is_load_managed();
4097 void get_load_manager_current_update_rates(
float & zone,
int & pose_update_rate,
4098 int & position_update_rate,
int & alt_update_rate);
4555 CALLBACK_ID_CREATE = 1,
4556 CALLBACK_ID_DESTROY,
4557 CALLBACK_ID_PRE_CREATE,
4558 CALLBACK_ID_CURRENT_APPEARANCE_CHANGED,
4559 CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED,
4560 CALLBACK_ID_CURRENT_HAND_ITEM_APPEARANCE_CHANGED,
4561 CALLBACK_ID_CURRENT_EQUIPMENT_APPEARANCE_CHANGED,
4562 CALLBACK_ID_SHAPE_VARIATIONS_CHANGED,
4563 CALLBACK_ID_SHAPE_VISIBILITY_CHANGED,
4564 CALLBACK_ID_PRE_UPDATE,
4565 CALLBACK_ID_POST_UPDATE,
4566 CALLBACK_ID_DONE_SPEAKING,
4567 CALLBACK_ID_GAZE_STATUS,
4568 CALLBACK_ID_LPOINT_STATUS,
4571 CALLBACK_ID_PRE_DIE,
4572 CALLBACK_ID_POST_DIE,
4573 CALLBACK_ID_PRE_FIRE_WEAPON,
4574 CALLBACK_ID_POST_FIRE_WEAPON,
4576 CALLBACK_ID_FIRE_WEAPON_SUCCESS,
4577 CALLBACK_ID_CURRENT_ARC_CHANGED,
4578 CALLBACK_ID_CURRENT_ACTION_CHANGED,
4579 CALLBACK_ID_DESIRED_ACTION_CHANGED,
4580 CALLBACK_ID_DESIRED_ACTION_REACHED,
4581 CALLBACK_ID_MANUALLY_INVOKED,
4582 CALLBACK_ID_USER_SELECTED,
4583 CALLBACK_ID_USER_UNSELECTED,
4584 CALLBACK_ID_IGUY_INTERACT,
4585 CALLBACK_ID_IGUY_INTERACT_WITH_SUBJECT,
4586 CALLBACK_ID_GUIDE_POSITION_ACQUIRED,
4587 CALLBACK_ID_GUIDE_POSITION_UNACQUIRED,
4588 CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED,
4589 CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED,
4590 CALLBACK_ID_GUIDE_ALTITUDE_ACQUIRED,
4591 CALLBACK_ID_GUIDE_ALTITUDE_UNACQUIRED,
4592 CALLBACK_ID_GUIDE_TARGET_LOST,
4593 CALLBACK_ID_CURRENT_TOUT_REACHED,
4594 CALLBACK_ID_POST_CREATE_GEOMETRY,
4595 CALLBACK_ID_PRE_DESTROY_GEOMETRY,
4596 CALLBACK_ID_END_OF_PATH_REACHED,
4597 CALLBACK_ID_CHARACTER_CLICKED,
4600 CALLBACK_ID_UI_PRE_TRANSLATION,
4601 CALLBACK_ID_UI_POST_TRANSLATION,
4602 CALLBACK_ID_UI_MOUSE_DOWN,
4603 CALLBACK_ID_UI_MOUSE_UP,
4604 CALLBACK_ID_UI_RIGHT_MOUSE_DOWN,
4605 CALLBACK_ID_UI_RIGHT_MOUSE_UP,
4606 CALLBACK_ID_UI_LEFT_CLICK,
4607 CALLBACK_ID_UI_RIGHT_CLICK,
4608 CALLBACK_ID_UI_DOUBLE_CLICK,
4609 CALLBACK_ID_UI_MIDDLE_CLICK,
4610 CALLBACK_ID_UI_SCROLL_UP,
4611 CALLBACK_ID_UI_SCROLL_DOWN,
4615 CALLBACK_ID_AGENT_NEW_BEHAVIOR,
4616 CALLBACK_ID_AGENT_NEW_PATH_SHAPE,
4617 CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER,
4618 CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS,
4619 CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS,
4620 CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED,
4621 CALLBACK_ID_AGENT_PURSUE_TARGET_LOST,
4622 CALLBACK_ID_AGENT_MINGLE_TARGET_REACHED,
4623 CALLBACK_ID_AGENT_MINGLE_TARGET_LOST,
4624 CALLBACK_ID_AGENT_WANDER_TARGET_REACHED,
4625 CALLBACK_ID_AGENT_WANDER_TARGET_LOST,
4626 CALLBACK_ID_AGENT_FLEE_AREA_LEFT,
4627 CALLBACK_ID_AGENT_FLEE_AREA_ENTERED,
4628 CALLBACK_ID_AGENT_TRAVEL_WAYPOINT_REACHED,
4629 CALLBACK_ID_AGENT_TRAVEL_FORWARD_DEST_REACHED,
4630 CALLBACK_ID_AGENT_TRAVEL_BACKWARD_DEST_REACHED,
4631 CALLBACK_ID_AGENT_TRAVEL_NEAR_FORWARD_DEST,
4632 CALLBACK_ID_AGENT_CROWD_MEMBER_KILLED,
4633 CALLBACK_ID_AGENT_CROWD_MEMBER_IMPACT,
4634 CALLBACK_ID_AGENT_NEARBY_SCENE_OBJECT_IMPACT,
4635 CALLBACK_ID_AGENT_NEARBY_WEAPON_FIRED,
4636 CALLBACK_ID_AGENT_VEHICLE_COLLISION,
4637 CALLBACK_ID_AGENT_VEHICLE_NEAR_COLLISION,
4638 CALLBACK_ID_AGENT_PATH_PLAN_COMPLETED,
4639 CALLBACK_ID_AGENT_MIND_CURRENT_STATE_CHANGED,
4640 CALLBACK_ID_AGENT_NON_ZERO_REPULSION,
4641 CALLBACK_ID_AGENT_ZERO_REPULSION
4644 #ifdef CPLUSPLUS_ONLY
4672 int add_callback(
int callback_id,
4674 void* callback_params = 0,
4675 void* callback_user_data = 0);
4693 int remove_callback(
int callback_id,
4713 int remove_callback_with_user_data(
int callback_id,
4714 void* callback_user_data);
4766 int add_callback_script(
int callback_id,
4767 const char* callback_script,
4768 const char* callback_script_type = NULL);
4809 int remove_callback_script(
int callback_id,
4810 const char* callback_script,
4811 const char* callback_script_type = NULL);
4852 int map_event_handler_to_callback_id(
int callback_id,
4853 const char* handler_name);
4872 int unmap_event_handler_from_callback_id(
int callback_id,
4873 const char* handler_name,
4874 int unmap_all_matches = 0);
4994 const char* transition_from_action_name,
4995 const char* fill_action_name,
4996 const char* transition_to_action_name);
5021 const char* transition_from_action_name,
5022 const char* fill_action_name,
5023 const char* transition_to_action_name);
5065 int create_and_force_bridge_path(
const char* destination_path_name,
5066 const char* destination_path_action_bead_name,
5067 const char* via_action_name);
5117 int create_and_force_bridge_path_to_point(
float x,
float y,
float z,
5119 const char* via_action_name,
5120 const char* next_local_path = NULL,
5121 float orientation = 0.0f);
5148 int get_num_paths();
5168 const char* get_path_name_at_index(
int index);
5187 int get_current_path_index();
5220 int get_current_traveled_path_is(
const char* path_name);
5241 int push_path(
const char* path_name);
5266 int force_path(
const char* path_name,
5267 float max_rampdown_interval = 0.5f);
5280 int force_partial_path(
const char* path_name,
5281 const char* beginning_action_bead_name,
5282 float max_rampdown_interval = 0.5f);
5318 int resume_interrupted_path(
float max_rampdown_interval = 0.5f);
5343 int use_character_orientation,
5344 float rotation = 0.0f,
5345 int clamp_path = 1);
5361 int set_initial_path(
const char* name);
5375 const char* get_initial_path();
5387 void translate_all_paths(
float tx,
float ty,
float tz,
5388 int reclamp_waypoints = 1);
5406 int rotate_all_paths_about_point(
float rz,
float rx,
float ry,
5407 float rotation_pt_x,
float rotation_pt_y,
float rotation_pt_z,
5408 int reclamp_waypoints = 1);
5425 int rotate_all_paths_about_current_waypoint(
float rz,
float rx,
float ry,
5426 int reclamp_waypoints = 1);
5448 int jump_to_action_bead(
const char* bead_name,
5449 float max_rampdown_interval = 0.5f);
5486 float how_far = 0.0f);
5507 float how_far = 0.0f);
5528 float how_far = 0.0f);
5549 float how_far = 0.0f);
5573 int set_distance_along_path(
float distance);
5585 float get_distance_along_path();
5619 int get_nearest_waypoint_index_in_path(
const char* path_name);
5626 float get_distance_to_path(
const char* path_name,
5627 const char* action_bead_name = NULL);
5662 int get_num_links();
5700 const char* get_link_name_at_index(
int link_index);
5711 int get_num_link_shapes(
const char* link_name);
5723 const char* get_link_shape_name_at_index(
const char* link_name,
5727 void set_link_visibility(
const char* link_or_connection_name,
int visible,
int shape_index = -1);
5730 int get_num_connection_points();
5734 const char * get_connection_point_name_at_index(
int index);
5737 bool get_connection_point_info_at_index(
int index,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5748 bool find_connection_point(
const char* name,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5754 int remove_shape(
const char* shape_name);
5771 int set_link_translation_override(
const char * link_name,
float x,
float y,
float z,
float ramp_time = .25f);
5775 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);
5778 int end_link_translation_override(
const char * link_name,
float ramp_time = .25f);
5781 int set_link_rotation_override(
const char * link_name,
float rz,
float rx,
float ry,
float ramp_time = .25f);
5782 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);
5785 int end_link_rotation_override(
const char * link_name,
float ramp_time = .25f);
5797 int get_num_articulated_parts();
5801 const char * get_articulated_part_link_name(
int index);
5804 int get_articulated_part_id(
int index);
5807 const char * map_articulated_part_id_to_link(
int id);
5832 #ifdef CPLUSPLUS_ONLY
5911 int set_altitude_function_enabled_in_free_position_mode(
int enabled);
5920 int get_altitude_function_enabled_in_free_position_mode();
5946 int set_altitude_function_enabled_in_path_position_mode(
int value);
5955 int get_altitude_function_enabled_in_path_position_mode();
5981 int set_altitude_update_rate(
int update_rate);
5984 int get_altitude_update_rate();
6008 void set_altitude_interpolation_rate(
float interpolation_rate);
6011 float get_altitude_interpolation_rate();
6135 int get_pose_array_size();
6137 #ifdef CPLUSPLUS_ONLY
6170 int get_pose_in_radians(
float* pose_array);
6173 int get_pose_in_quaternions(
float* pose_array);
6221 int get_num_pose_overrides();
6264 void destroy_complete_pose_override();
6305 int gaze_at_angle(
float azimuth,
6308 int is_new_gaze = 1);
6324 int gaze_at_angle_local(
float azimuth,
6326 float distance = 10000.0f,
6327 int is_new_gaze = 1);
6352 int gaze_at_point(
float tx,
6355 int is_new_gaze = 1);
6367 int gaze_at_point_local(
float tx,
6370 int is_new_gaze = 1);
6406 int gaze_at_character(
const char* target_character_name,
6407 const char* target_character_link_name = NULL,
6408 float offset_tx = 0.0f,
6409 float offset_ty = 0.0f,
6410 float offset_tz = 0.0f);
6417 int get_gaze_is_active();
6425 int get_gaze_point(
float* x,
float* y,
float* z);
6452 int get_gaze_is_acquired();
6479 int get_gaze_is_steady();
6516 int lpoint_at_angle(
float azimuth,
6519 int is_new_lpoint = 1,
6520 const char* base_gesture_name = 0);
6532 int lpoint_at_angle_local(
float azimuth,
6534 float distance = 10000.0f,
6535 int is_new_lpoint = 1,
6536 const char* base_gesture_name = 0);
6569 int lpoint_at_point(
float tx,
6572 int is_new_lpoint = 1,
6573 const char* base_gesture_name = 0);
6585 int lpoint_at_point_local(
float tx,
6588 int is_new_lpoint = 1,
6589 const char* base_gesture_name = 0);
6600 int lpoint_at_character(
const char* target_character_name,
6601 const char* target_character_link_name = NULL,
6602 float offset_tx = 0.0f,
6603 float offset_ty = 0.0f,
6604 float offset_tz = 0.0f);
6612 int get_lpoint_point(
float* x,
float* y,
float* z);
6619 const char* get_lpoint_base_gesture_name();
6626 int get_lpoint_is_active();
6636 int get_lpoint_is_acquired();
6646 int get_lpoint_is_steady();
6678 int set_gaze_params_to_defaults();
6709 int set_gaze_param_desired_locate_time(
float t);
6716 float get_gaze_param_desired_locate_time();
6750 int set_gaze_link_uses_desired_locate_time(
const char* link_name,
6751 int uses_desired_locate_time);
6758 int get_gaze_link_uses_desired_locate_time(
const char* link_name);
6785 int set_gaze_link_azimuth_limits(
const char* link_name,
float min,
float max);
6792 int get_gaze_link_azimuth_limits(
const char* link_name,
6821 int set_gaze_link_elevation_limits(
const char* link_name,
6826 int get_gaze_link_elevation_limits(
const char* link_name,
6865 int set_gaze_link_azimuth_tolerance(
const char* link_name,
6870 int get_gaze_link_azimuth_tolerance(
const char* link_name,
6898 int set_gaze_link_elevation_tolerance(
const char* link_name,
6903 int get_gaze_link_elevation_tolerance(
const char* link_name,
6930 int set_gaze_link_max_angular_vel(
const char* link_name,
float angular_vel);
6933 int get_gaze_link_max_angular_vel(
const char* link_name,
float* angular_vel);
6970 int set_gaze_link_scale_factor(
const char* link_name,
float scale_factor);
6973 int get_gaze_link_scale_factor(
const char* link_name,
float* scale_factor);
6999 int set_link_enabled_for_gaze(
const char* link_name,
int enabled);
7002 int get_link_enabled_for_gaze(
const char* link_name);
7020 int set_gaze_can_change_posture(
int enabled);
7023 int get_gaze_can_change_posture();
7041 int set_gaze_can_change_variant(
int enabled);
7044 int get_gaze_can_change_variant();
7070 int set_link_enabled_for_lpoint(
const char* link_name,
int enabled);
7073 int get_link_enabled_for_lpoint(
const char* link_name);
7099 int set_nod(
float azimuth,
7101 float duration = 0.5f);
7147 int nod_head(
float duration,
7149 float nod_elevation0 = 15.0f,
7150 float nod_elevation1 = 0.0f,
7151 float nod_elevation_out = 0.0f);
7179 int shake_head(
float duration,
7181 float shake_azimuth0 = -20.0f,
7182 float shake_azimuth1 = 20.0f,
7183 float shake_azimuth_out = 0.0f);
7191 float get_nod_azimuth();
7199 float get_nod_elevation();
7248 int set_aim(
float azimuth,
float elevation);
7286 int aim_at_angle(
float azimuth,
7289 int is_new_aim = 1);
7306 int aim_at_angle_local(
float azimuth,
7309 int is_new_aim = 1);
7321 int aim_at_angle_with_velocity(
float azimuth,
float elevation,
float az_vel,
float el_vel,
int local,
int is_new_aim = 1);
7347 int aim_at_point(
float x,
float y,
float z,
int is_new_aim = 1);
7360 int aim_at_point_local(
float x,
float y,
float z,
int is_new_aim = 1);
7400 int aim_at_character(
const char* target_character_name,
7401 const char* target_character_link_name = NULL,
7402 float offset_tx = 0.0f,
7403 float offset_ty = 0.0f,
7404 float offset_tz = 0.0f);
7416 const char * get_aim_at_character();
7419 float get_aim_azimuth();
7422 float get_aim_elevation();
7445 int get_aim_trajectory(
float* muzzle_x,
float* muzzle_y,
float* muzzle_z,
7446 float* far_x,
float* far_y,
float* far_z);
7459 int get_aim_is_possible();
7466 int get_aim_is_acquired();
7474 int get_aim_is_steady();
7482 int get_is_aiming();
7524 void set_aim_param_acquire_factor(
float factor);
7531 float get_aim_param_acquire_factor();
7548 void set_aim_param_new_aim_factor(
float factor);
7551 float get_aim_param_new_aim_factor();
7577 void set_aim_param_new_aim_duration(
float duration);
7580 float get_aim_param_new_aim_duration();
7595 void set_aim_param_max_per_frame_adj_factor(
float factor);
7598 float get_aim_param_max_per_frame_adj_factor();
7618 void set_aim_param_azimuth_acquired_range(
float range);
7621 float get_aim_param_azimuth_acquired_range();
7641 void set_aim_param_elevation_acquired_range(
float range);
7644 float get_aim_param_elevation_acquired_range();
7655 void set_aim_converge_every_frame(
int enabled );
7658 int get_aim_converge_every_frame();
7662 int set_aim_variable_interpolation_time(
float time);
7663 float get_aim_variable_interpolation_time();
7669 const char* get_aim_at_link();
7673 int get_aim_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7676 const char* get_gaze_at_link();
7679 int get_gaze_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7751 int fire_weapon_n_times(
int count,
7753 const char* override_sound_name = NULL,
7771 int fire_screen_space_bullet(
diguyView* view,
float x,
float y);
7799 int set_default_weapon_muzzle(
diguyMuzzle muzzle);
7866 const char* get_weapon_muzzle_munition_type(
diguyMuzzle muzzle);
7869 const char* get_weapon_supplemental_data_name();
7872 const char* get_default_muzzle_munition_type();
7888 int set_weapon_munition_type_override(
const char* munition_type);
7891 const char* get_weapon_munition_type_override();
7914 int set_weapon_fires_live_rounds(
int weapon_fires_live_rounds);
7924 int get_weapon_fires_live_rounds();
7951 int set_weapon_sound_override(
const char* sound_name);
7966 const char* get_weapon_sound_override();
7991 int set_weapon_sound_gain_override(
float gain);
7994 float get_weapon_sound_gain_override();
8018 void set_weapon_spread(
float spread);
8040 void set_weapon_near_range(
float near_range);
8041 float get_weapon_near_range();
8056 void set_weapon_far_range(
float far_range );
8057 float get_weapon_far_range();
8069 void set_weapon_hit_ratio(
float hit_ratio );
8078 void set_weapon_flash_duration(
int muzzle_flash_duration );
8089 void set_weapon_max_impacts(
int val );
8096 int get_accessory1_state();
8103 int get_rifle_state();
8122 int set_weapon_projectile_is_visible(
diguyMuzzle muzzle,
int is_visible);
8138 int get_weapon_projectile_is_visible(
diguyMuzzle muzzle);
8172 int get_weapon_aim_vector(
float* muzzle_tx,
float* muzzle_ty,
float* muzzle_tz,
8173 float* end_pt_tx = NULL,
float* end_pt_ty = NULL,
float* end_pt_tz = NULL,
8174 float* muzzle_rz = NULL,
float* muzzle_rx = NULL,
float* muzzle_ry = NULL,
8175 int in_character_local_coordinates = 0,
8215 float* offset_x = NULL,
8216 float* offset_y = NULL,
8217 float* offset_z = NULL);
8234 int set_weapon_max_azimuth_error(
float h_error);
8237 float get_weapon_max_azimuth_error();
8244 int set_weapon_max_elevation_error(
float v_error);
8247 float get_weapon_max_elevation_error();
8263 int set_weapon_tracers_enabled(
int enabled);
8266 int get_weapon_tracers_enabled();
8273 int get_weapon_rounds_until_tracer(
diguyMuzzle muzzle);
8294 int trigger_detonation_on_character(
const char* munition_name,
8295 const char* attacker_name = NULL,
8296 float radius_override = -1.0f,
8297 int broadcast_on_network = 1);
8354 int set_face_expression(
const char* facex_name,
float blend_duration,
float strength = 1.0f);
8377 int set_orientation_eyes(
float azimuth,
8379 float blend_time = 0.0f);
8389 int get_orientation_eyes(
float* azimuth,
float* elevation);
8407 int set_eye_droop(
float droop_amount,
float blend_time = 0.0f);
8410 float get_eye_droop();
8437 int blink(
float duration_in = 0.1f,
8438 float duration_out = 0.2f,
8439 float target_in = 1.0f,
8440 float target_out = 0.0f,
8477 int set_automatic_blinks_enabled(
int enabled,
8478 float period = 6.0f,
8479 float period_variation = 3.0f);
8482 int get_automatic_blinks_enabled();
8498 void set_automatic_blink_duration_in(
float duration_in);
8501 float get_automatic_blink_duration_in();
8517 void set_automatic_blink_duration_out(
float duration_out);
8520 float get_automatic_blink_duration_out();
8536 void set_automatic_blink_target_in(
float target_in);
8539 float get_automatic_blink_target_in();
8555 void set_automatic_blink_target_out(
float target_out);
8558 float get_automatic_blink_target_out();
8576 int set_current_facefx_animation_group(
const char* anim_group);
8583 const char* get_current_facefx_animation_group();
8591 const char* get_facefx_actor();
8599 int facefx_mount_animset(
const char* file_name);
8609 int play_facefx_animation(
const char* animation,
8610 float magnitude_scale = 1.0f,
8611 float duration_scale = 1.0f,
8612 float blendin_time = 0.1f,
8613 float blendout_time = 0.1f,
8621 int stop_facefx_animations(
float blend_time = 0.25f,
int stop_sounds = 1);
8633 int get_num_facefx_nodes();
8641 const char* get_facefx_node_name(
int index);
8648 int find_facefx_node_index(
const char* node_name);
8657 int set_facefx_node_value(
int node_index,
8659 float blend_time = 0.25f);
8666 float get_facefx_node_value(
int node_index);
8801 int execute_gesture(
const char* gesture_name,
8848 int execute_1stage_gesture(
const char* gesture_name,
8891 int execute_2stage_gesture(
const char* gesture_name,
8942 int execute_3stage_gesture(
const char* gesture_name,
8991 int execute_table_gesture(
const char* gesture_name,
8993 const char* loop_action = NULL,
8994 const char* begin_action = NULL,
8995 const char* end_action = NULL);
9012 int set_executing_table_gesture_desired_action(
const char* gesture_name,
9013 const char* desired_action);
9037 int end_executing_gesture(
const char* gesture_name);
9069 int abort_executing_gesture(
const char* gesture_name,
9070 float max_rampdown_interval = .5f);
9090 int end_all_gestures();
9120 int abort_all_gestures(
float max_rampdown_interval);
9188 int play_sound(
const char* sound_name,
9189 float sound_gain = 1.0f,
9190 int sound_loops = 0);
9229 int play_3d_sound(
const char* sound_name,
9230 float sound_gain = 1.0f,
9231 int sound_loops = 0);
9307 int stop_all_sounds(
float rampdown_time = 0.0f);
9334 int stop_sound(
const char* sound_name,
float rampdown_time = 0.0f);
9341 int is_playing_sound(
const char* sound_name);
9412 int set_current_voice_actor(
const char* voice_actor);
9415 const char* get_current_voice_actor();
9487 int get_DIS_lifeform_state();
9508 int get_DIS_primary_weapon_position();
9529 int get_DIS_secondary_weapon_position();
9550 int set_network_marking(
const char* network_marking);
9572 const char* get_network_marking();
9596 int set_is_network_published(
int is_network_published);
9618 int get_is_network_published();
9627 DtEntityStateRepository * get_vrlink_entity_state_repository();
9648 int get_is_network_reflected();
9673 int get_is_network_paused();
9681 int set_is_network_paused(
int paused);
9702 int get_network_entity_number();
9764 const char* get_action_from_entity_state(
int damage_state,
9765 int life_form_state,
9766 int primary_weapon_state,
9791 void set_DIS_damage_state(
int state);
9795 int get_DIS_damage_state();
9803 const char * get_damage_state_appearance_name(
int state);
9827 void set_DIS_smoke_state(
int state);
9831 int get_DIS_smoke_state();
9852 void set_DIS_flames_state(
int state);
9856 int get_DIS_flames_state();
9877 void set_DIS_power_plant_state(
int state);
9881 int get_DIS_power_plant_state();
9885 void set_emissivity(
float r,
float g,
float b,
float lerp_time = .25);
9889 void get_emissivity(
float *r,
float *g,
float *b);
9911 void set_DIS_trailing_effect_state(
int state);
9915 int get_DIS_trailing_effect_state();
9918 void set_DIS_station_name(
int name);
9919 int get_DIS_station_name()
const;
9922 void set_DIS_station_number(
int number);
9923 int get_DIS_station_number()
const;
9927 void set_head_lights_state(
int state);
9930 int get_head_lights_state()
const;
9933 void set_tail_lights_state(
int state);
9936 int get_tail_lights_state()
const;
9978 int call_formation(
const char* formation_name,
9979 int snap_to_position_flag = 0,
9980 int break_existing_formations_flag = 1);
9999 int break_formation(
const char* formation_name = NULL);
10040 int automatically_disable_when_acquired = 0);
10068 const char* guide_algorithm,
10069 int automatically_disable_when_acquired = 0);
10090 const char* guide_algorithm,
10091 int automatically_disable_when_acquired = 0);
10125 int remove_guide_with_name(
const char* guide_name);
10152 int remove_all_guides();
10163 int remove_all_disabled_guides();
10213 int add_motion_texture(
const char* motex_name =
"default",
10214 float texture_gain = 1.0f,
10215 int end_previous_motex = 1,
10216 float rampup_interval = 0.2f);
10233 int end_motion_texture(
float rampdown_interval = 0.2f);
10258 int set_initial_motion_texture(
const char* motex_name);
10270 const char* get_initial_motion_texture();
10288 int set_initial_motion_texture_gain(
float motex_gain);
10300 float get_initial_motion_texture_gain();
10390 int set_history_size_t(
float t);
10402 float get_history_size_t();
10418 int set_history_size_increment_t(
float t);
10430 float get_history_size_increment_t();
10669 int match_posture_before_variant = 1,
10674 int return_random_match = 0);
10743 int match_posture_before_variant = 1,
10765 int get_num_variables();
10838 int variable_equal_to_int(
const char* varname,
int value);
10853 int variable_greater_than_int(
const char* varname,
int value);
10868 int variable_less_than_int(
const char* varname,
int value);
10883 int variable_equal_to_float(
const char* varname,
float value);
10898 int variable_greater_than_float(
const char* varname,
float value);
10913 int variable_less_than_float(
const char* varname,
float value);
10928 int variable_equal_to_string(
const char* varname,
const char* value);
10943 int variable_greater_than_string(
const char* varname,
const char* value);
10958 int variable_less_than_string(
const char* varname,
const char* value);
10976 int variable_decrement_value_as_int(
const char* varname,
int value = 1);
10994 int variable_increment_value_as_int(
const char* varname,
int value = 1);
11016 int variable_set_value_as_int(
const char* varname,
11018 int create_if_doesnt_exist = 1);
11025 int set_ivar(
const char* varname,
11027 int create_if_doesnt_exist = 1);
11049 int get_ivar(
const char* varname,
11050 int create_if_doesnt_exist = 1);
11058 int variable_set_value_as_float(
const char* varname,
11060 int create_if_doesnt_exist = 1);
11067 int set_fvar(
const char* varname,
11069 int create_if_doesnt_exist = 1);
11080 float get_fvar(
const char* varname,
11081 int create_if_doesnt_exist = 1);
11089 int variable_set_value_as_string(
const char* varname,
11091 int create_if_doesnt_exist = 1);
11098 int set_svar(
const char* varname,
11100 int create_if_doesnt_exist = 1);
11111 const char* get_svar(
const char* varname,
11112 int create_if_doesnt_exist = 1);
11160 int set_label_text(
const char* label_text);
11172 const char* get_label_text();
11192 int set_label_is_visible(
int is_visible);
11204 int get_label_is_visible();
11227 int set_label_text_color(
float r,
float g,
float b,
float a);
11234 int set_label_text_color_vec4(
const diguyVec4f & color);
11246 int get_label_text_color(
float* r,
float* g,
float* b,
float* a);
11276 int set_label_text_shadow_color(
float r,
float g,
float b,
float a);
11283 int set_label_text_shadow_color_vec4(
const diguyVec4f & color);
11295 int get_label_text_shadow_color(
float* r,
float* g,
float* b,
float* a);
11302 diguyVec4f get_label_text_shadow_color_vec4();
11317 int set_label_text_shadow_is_visible(
int is_visible);
11324 int get_label_text_shadow_is_visible();
11348 int set_label_background_color(
float r,
float g,
float b,
float a);
11355 int set_label_background_color_vec4(
const diguyVec4f & color);
11367 int get_label_background_color(
float* r,
float* g,
float* b,
float* a);
11374 diguyVec4f get_label_background_color_vec4();
11386 void set_label_link_offset_override(
float offset);
11393 float get_label_link_offset_override();
11410 int set_label_shows_character_state(
int show_state);
11418 int get_label_shows_character_state();
11447 int get_last_impact_number();
11454 int get_last_impact_been_processed();
11461 void set_last_impact_been_processed();
11475 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
11482 int get_max_unprocessed_impacts();
11489 const char* get_last_impact_link();
11496 int get_last_impact_link_is(
const char* link_name);
11504 int get_last_impact_is_from_vehicle();
11512 int get_last_impact_speed_is_greater_than(
float impact_speed);
11520 void set_is_immune_to_impacts(
int immune);
11528 int get_is_immune_to_impacts();
11594 int begin_appearance_effect(
const char* effect,
11595 const char* override_link = NULL,
11628 int end_appearance_effect(
const char* effect,
11629 const char* override_link = NULL);
11657 int stop_appearance_effect(
const char* effect,
11658 const char* override_link = NULL);
11665 int stop_all_appearance_effects();
11682 int appearance_effect_is_active(
const char* effect,
11683 const char* override_link = NULL);
11766 int get_vehicle_body_orientation(
float* rz,
float* rx,
float* ry);
11819 int set_render_mode_shader(
const char* shader_name,
11820 const char* render_mode = NULL);
11841 void reset_render_mode_shader_to_default(
const char* render_mode = NULL);
11859 const char* get_render_mode_shader(
const char* render_mode = NULL);
11909 int set_temporary_current_shader(
const char* shader_name);
11921 void reset_current_shader_to_default();
11930 void trigger_shader_refresh();
11956 void reset_shader_instance_variables_to_initial_values();
11964 void reset_shader_instance_variables_to_program_defaults();
12018 int agent_attack_character(
const char* character_name);
12047 int agent_attack_group(
const char* group_name);
12054 int agent_set_attack_zone_enabled(
int use_attack_zone);
12061 int agent_get_attack_zone_enabled();
12068 int agent_set_attack_zone(
float x,
float y,
float z,
float radius);
12075 int agent_get_attack_zone(
float* x,
float* y,
float* z,
float* radius);
12115 int agent_flee_character(
const char* character_name,
12117 int danger_level = 50);
12148 int agent_flee_group(
const char* group_name,
12150 int danger_level = 50);
12159 int agent_flee_crowd(
const char* crowd_name,
12161 int danger_level = 50);
12193 int agent_flee_location(
float x,
float y,
float z,
12195 int danger_level = 50);
12210 void agent_remove_all_flee_objects();
12251 int agent_mingle_in_region(
const char* region_name =
"(current)",
12252 const char* subregion_name =
"base");
12277 int agent_wander_region(
const char* region_name =
"(current)",
12278 const char* subregion_name =
"base");
12317 int agent_pursue_character(
const char* character_name);
12326 int agent_pursue_character_with_offset(
const char* character_name,
12357 int agent_pursue_group(
const char* group_name);
12369 int agent_call_formation(
const char* formation_name,
12409 int agent_travel_behavior_path(
const char* direction = NULL,
12410 const char* at_end = NULL,
12411 int waypoint_index = -1,
12412 float offset_y = 0.5f);
12420 int agent_travel_path_shape(
const char* path_shape_name,
12421 const char* direction = NULL,
12422 const char* at_end = NULL,
12423 int waypoint_index = -1,
12424 float offset_y = 0.5f);
12445 int agent_travel_region_border(
const char* region_name = NULL,
12446 const char* subregion_name =
"base");
12472 int agent_move_to_point(
float x,
float y,
float z,
12473 const char* via_region = NULL,
12474 const char* subregion_name =
"base");
12496 int agent_move_to_point_bg(
float x,
float y,
float z,
12497 const char* via_region = NULL,
12498 const char* subregion_name =
"base");
12565 int agent_move_to_point_via_subregions(
float x,
float y,
float z,
12566 const char* via_region = NULL,
12568 float cost_bias_for_preferred_regions = 0.25f,
12569 float cost_bias_for_neutral_regions = 1.1f,
12571 float cost_bias_for_repulsed_regions = 10.0f,
12572 int cost_rule = 0);
12592 int agent_move_to_point_via_subregions_bg(
float x,
float y,
float z,
12593 const char* via_region = NULL,
12595 float cost_bias_for_preferred_regions = 0.25f,
12596 float cost_bias_for_neutral_regions = 1.1f,
12598 float cost_bias_for_repulsed_regions = 10.0f,
12599 int cost_rule = 0);
12608 int get_path_planning_result();
12616 int get_is_path_planning();
12638 int agent_move_to_region(
const char* region,
12639 const char* subregion_name =
"base",
12640 const char* via_region = NULL);
12664 int agent_move_to_region_via_subregions(
const char* region_name,
12665 const char* subregion_name =
"base",
12666 const char* via_region = NULL,
12667 float cost_bias_for_preferred_regions = 0.25f,
12669 float cost_bias_for_neutral_regions = 1.1f,
12671 float cost_bias_for_repulsed_regions = 10.0f);
12707 int agent_path_follow(
const char* path_name);
12722 int agent_resume_path_follow();
12756 float agent_get_path_follow_path_t();
12763 int agent_get_path_follow_path_t_paused();
12790 int agent_begin_behavior(
const char* behavior_name);
12797 int agent_stop_behavior();
12825 int agent_set_current_focus_character(
const char* character_name);
12865 int agent_set_current_focus_group(
const char* group_name);
12919 const char* agent_get_current_params_profile_name();
12953 int agent_set_current_params_from_profile(
const char* profile_name,
12954 int retain_focus_objects = 1,
12955 int retain_navigation_values = 1,
12956 int retain_behavior = 0);
12964 int agent_set_initial_params_from_profile(
const char* profile_name);
12972 void agent_set_current_params_from_initial_params();
12993 void agent_set_current_behavior_region_border_is_solid(
int is_solid);
13004 void agent_move_on();
13017 int agent_set_auto_variant_selection(
int selection_enabled);
13024 int agent_get_auto_variant_selection();
13046 void agent_set_use_speed_zones_on_paths(
int enabled);
13053 int agent_get_use_speed_zones_on_paths();
13055 #ifdef CPLUSPLUS_ONLY
13170 int create_lua_mind(
const char* base_class,
const char* init_arg1 = NULL,
13171 const char* init_arg2 = NULL);
13179 const char *get_mind_name();
13194 const char* get_mind_current_state_name();
13206 void do_mind_current_state_changed_callback();
13220 int set_sleep_timer(
float sleep_length);
13228 float get_sleep_timer();
13241 int set_heartbeat_dt(
float heartbeat_dt);
13260 int add_secondary_heartbeat(
const char* function_name,
13261 float heartbeat_dt);
13278 int remove_secondary_heartbeat(
const char* function_name);
13296 int set_secondary_heartbeat_dt(
const char* function_name,
float heartbeat_dt);
13332 int add_wakeup_callback(
int callback);
13349 int remove_wakeup_callback(
int callback);
13361 int remove_all_wakeup_callbacks();
13373 int has_wakeup_callback(
int callback);
13392 int agent_accept_message(
const char* sender,
13393 const char* message_type,
13394 const char* message,
13395 const char* message_params = NULL);
13418 int agent_broadcast_message(
float radius,
13419 const char* message_type,
13420 const char* message,
13421 const char* message_params = NULL);
13446 int agent_broadcast_message_to_group(
const char* group_name,
13448 const char* message_type,
13449 const char* message,
13450 const char* message_params = NULL);
13459 const char* get_lua_object_name();
13466 void set_mind_field_as_string(
const char* field_name,
13467 const char* field_value);
13484 const char* get_mind_field_as_string(
const char* field_name,
13485 int warn_if_no_field = 1);
13493 void set_mind_field_as_float(
const char* field_name,
float field_value);
13505 float get_mind_field_as_float(
const char* field_name,
13506 int warn_if_no_field = 1,
13507 int* found_field = NULL);
13515 void set_mind_field_as_int(
const char* field_name,
int field_value);
13527 int get_mind_field_as_int(
const char* field_name,
13528 int warn_if_no_field = 1,
13529 int* found_field = NULL);
13556 const char* evaluate_mind_function(
const char* function_name,
13557 const char* argument = NULL,
13558 int has_return_string = 0);
13581 const char* get_ai_state_string(
int include_stack = 1,
int include_locals = 1);
13626 int los_check_type = 0);
13650 int check_point_visibility(
float x,
float y,
float z);
13671 #ifdef CPLUSPLUS_ONLY
13792 int get_num_ik_chains();
13796 const char * get_ik_chain_name_at_index(
int index);
13809 int set_ik_target_world(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13822 int set_ik_target_local(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13836 int set_ik_target_character(
int ik_chain_target,
diguyCharacter * target,
const char * link_name,
float ramp_time = .25f);
13841 int disable_ik_target(
int ik_chain_target,
float ramp_time = .25f);
13848 void set_distance_to_primary_camera(
float camera_dist);
13851 float get_distance_to_primary_camera();
14054 void set_stop_physics_sim_at_t(
float t);
14063 void set_stop_physics_sim_in_t_seconds(
float relative_t);
14070 float get_stop_physics_sim_at_t();
14088 void apply_impulse_to_physics_sim(
const char* link,
14089 float impulse_magnitude_x,
14090 float impulse_magnitude_y,
14091 float impulse_magnitude_z,
14092 float link_offset_x = 0.0f,
14093 float link_offset_y = 0.0f,
14094 float link_offset_z = 0.0f,
14095 int set_simulation_drives_character = 1);
14121 void apply_impulse_to_physics_sim_from_world_position(
const char* link,
14122 float impulse_magnitude_x,
14123 float impulse_magnitude_y,
14124 float impulse_magnitude_z,
14125 float impulse_generator_position_x,
14126 float impulse_generator_position_y,
14127 float impulse_generator_position_z,
14128 float max_distance = 20.0f,
14129 float impulse_rolloff = 0.0f,
14130 float link_offset_x = 0.0f,
14131 float link_offset_y = 0.0f,
14132 float link_offset_z = 0.0f,
14133 int set_simulation_drives_character = 1);
14164 static int set_max_shader_quality_level(
int quality_level);
14167 static int get_max_shader_quality_level();
14183 int set_animation_events_enabled(
int enable);
14184 int get_animation_events_enabled();
14203 int get_action_num_channels(
const char* action_name);
14225 int set_action_channel_weight(
const char* action_name,
14244 float get_action_channel_weight(
const char* action_name,
14260 float get_time_to_reach_desired_action();
14283 const char* get_type_map_field_using_string(
const char* field);
14287 float get_normalized_age()
const;
14311 int merge_object(
const char*
object);
14324 int is_active_character_in_group_visible(
const char* group_name,
14325 float max_distance_to_check = 100000.0f);
14342 int get_local_space_bounding_box(
float* x1,
float* y1,
float* z1,
14343 float* x2,
float* y2,
float* z2);
14355 void set_mind_always_updates(
int force_update);
14358 int get_mind_always_updates();
14364 float get_angle_to_path(
const char* path_name,
14365 const char* action_bead_name = NULL);
14370 void set_scene_graph_mask(
unsigned int mask);
14373 unsigned int get_scene_graph_mask();
14390 int set_local_to_world_orientation_matrix(
float rz,
float rx,
float ry);
14392 int set_local_to_world_orientation_matrix(
14393 float a0,
float a1,
float a2,
14394 float b0,
float b1,
float b2,
14395 float c0,
float c1,
float c2,
int transpose = 0);
14397 #ifdef CPLUSPLUS_ONLY
14398 const float * get_local_to_world_orientation_matrix();
14401 int set_current_IK_world_conversion_matrix(
14402 float a0,
float a1,
float a2,
14403 float b0,
float b1,
float b2,
14404 float c0,
float c1,
float c2,
int transpose = 0);
14406 void set_IK_use_vrv_swizzle(
bool);
14411 int set_always_update_regardless_of_dt(
int val);
14413 int get_always_update_regardless_of_dt();
14415 void set_shader_matrixes_out_of_date();
14417 void draw_debugging_visuals();
14437 int aim_converge(
int max_iterations = 30);
14440 void set_aim_algorithm(
int aim_algorithm);
14443 int get_aim_algorithm();
14577 #ifdef CPLUSPLUS_ONLY
14579 bdiScenarioCharacter* get_scripted_object();
14595 bdiScenarioCharacter* m_scripted_object;
14597 friend class bdiPublishedCharacter;
14598 friend class bdiScenarioCharacter;
The diguyViewLabel allows on screen 2D and 3D labels in diguy scenario and the opengl renderer...
Definition: diguyViewLabel.h:52
diguyCharacterTypeMapField
This enumeration allows type map fields to be queried using a numerical value rather than a string na...
Definition: diguy_constants.h:123
A class that represents the unique per-character shader object.
Definition: diguyGraphicsShaderInstance.h:55
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:432
This class stores a snapshot of a character's motion engine for storing/replicating character positio...
Definition: diguyMotionEngineSnapshot.h:12
#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:62
diguyCallbackReturn diguyCharacterCallback(diguyCharacter *character, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:51
The class that represents what parameters an agent is currently using to carry out their base behavio...
Definition: diguyAgentParams.h:38
wrapper around a chain simulation
Definition: diguyChainSimulation.h:35
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:329
This class represents the patch identifier (country:service:id) for a patch.
Definition: diguyPatchIdentifier.h:26
Represents a scriptable api wrapping a diguy path shape, a curve defined by with a number of waypoint...
Definition: diguyPathShape.h:36
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:39
A bead that sits on a character's spline path and triggers a new gaze.
Definition: diguyCharacterPathGazeBead.h:34
Definition: diguyMotionPosture.h:40
diguyConnectionPointType
Definition: diguyConnectionPointType.h:27
Definition: diguy_constants.h:214
#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:72
Definition: diguy_constants.h:232
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:230
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:1736
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:145
Attached to certain types of more complex vehicles, to manage their behavior.
Definition: diguyVehicleController.h:49
This class encapsulates all parameters for a tasking a character with an action.
Definition: diguyActionParameters.h:12
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:99
Contains the diguyMotionVariant enumeration and utility function declarations.
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:81
Represents a scriptable api wrapping a 3D point on a path.
Definition: diguyWaypoint.h:35
Definition: diguySensorRegion.h:41
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
Contains the diguyMotionPosture enumeration and utility function declarations.
static double t
Definition: simple_playback_ogl.cpp:58
Definition: diguy_constants.h:1569
Definition: diguyMotionVariant.h:62
diguyParameterComparison
This is an enumeration of the different parameter comparison options that can be specified to various...
Definition: diguy_constants.h:212
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:45
A class that allows end users to override a character's animation on a joint level.
Definition: diguyCharacterPoseOverride.h:35
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:94
diguyMotionVariant
Definition: diguyMotionVariant.h:28
diguyCharacterMode
This is an enumeration of the different modes a DI-Guy character can be in.
Definition: diguy_constants.h:197
A class that represents the unique per-character non-shared mesh object. DI-Guy encapsulates its text...
Definition: diguyGraphicsShape.h:49
A class representing a overlaid performance on a character's base animation.
Definition: diguyCharacterGesture.h:42
A bead that sits on a character's spline path and triggers a new script evaluation.
Definition: diguyCharacterPathScriptBead.h:34
Definition: diguySoundInstance.h:27
The diguyVariable class allows you to add per character named parameters. This can be handy for track...
Definition: diguyVariable.h:46
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:169
diguyPhysicsSimulationMode
This enumeration lists the modes that a DI-Guy character physics sim can be in, when the character si...
Definition: diguy_constants.h:1753
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1769
This class implements shader lod system for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderTechnique.h:154
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
The class that represents a DI-Guy Crowd, DI-Guy AI agents can be given orders at an individual level...
Definition: diguyCrowd.h:48
Represents algorithm for steering and maneuvering a character towards a goal point.
Definition: diguyCharacterGuide.h:561
diguyMotionPosture
Definition: diguyMotionPosture.h:28
A bead that sits on a character's spline path and triggers a new aim event.
Definition: diguyCharacterPathAimBead.h:34