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();
397 int set_was_drawn_last_frame(
int drawn );
407 int set_is_culled(
int culled);
415 int get_is_temporary();
426 int get_is_recycled();
445 int set_t_controlled_by_scenario_t(
int t_controlled_by_scenario_t);
453 int get_t_controlled_by_scenario_t();
483 int set_initial_tin(
float tin,
int override_time_warning = 0);
512 int set_initial_tout(
float tout);
558 int set_current_tin(
float tin);
571 int set_current_tin_to_now();
583 float get_current_tin();
605 int set_current_tout(
float tout,
606 int disable_character_at_tout = 0);
620 int set_current_tout_to_now();
628 float get_current_tout();
637 void set_tout_enabled(
int tout_enabled);
650 int get_tout_enabled();
653 float get_char_time();
677 int set_careful_interpolation_threshold(
float threshold);
685 float get_careful_interpolation_threshold();
703 int set_motion_interpolation_flag(
int flag);
711 int get_motion_interpolation_flag();
727 int set_scale(
float scale_x,
float scale_y,
float scale_z);
744 int get_scale(
float* scale_x,
float* scale_y,
float* scale_z);
769 int set_parent(
const char* parent_name,
const char* parent_link_name =
"");
793 const char* get_parent_link_name();
814 int get_num_children();
842 int get_is_scene_object();
859 int set_is_scene_object(
int is_scene_object);
872 float get_bounding_radius();
885 float get_default_bounding_radius();
893 void set_bounding_radius(
float f);
914 float get_time_to_transition();
917 float get_character_local_time();
960 int set_t_scale_factor(
float t_scale_factor);
976 int unset_t_scale_factor();
993 int is_within_distance_n_of_character(
const char* character_name,
1011 int is_within_distance_n_of_member_of_group(
const char* group_name,
1030 int is_group_member(
const char* group_name);
1040 int get_num_group_memberships();
1085 diguyCharacter* get_nearest_active_character(
int check_visibility,
1086 int xy_distance = 0,
1087 float max_distance_to_check = 100000);
1114 diguyCharacter* get_nearest_active_character_in_group(
const char* group_name,
1115 int check_visibility = 1,
1116 int xy_distance = 0,
1117 float max_distance_to_check = 100000);
1146 diguyCharacter* get_random_active_character(
float max_distance = 10.0f,
1147 int check_visibility = 1,
1148 int xy_distance = 0);
1178 diguyCharacter* get_random_active_character_in_group(
const char* group_name,
1179 float max_distance = 10,
1180 int check_visibility = 1,
1181 int xy_distance = 0);
1208 float get_distance_to_impact(
diguyImpact* impact);
1236 float get_random_factor();
1288 #ifdef CPLUSPLUS_ONLY
1309 void* get_graphics_ptr();
1336 int set_graphics_ptr(
void* graphics_ptr);
1354 void set_graphics_api_node_ptr(
void* node_ptr);
1361 void* get_graphics_api_node_ptr();
1379 int set_user_data(
void* user_data);
1386 void* get_user_data();
1446 int retain_path_shape = 0 );
1478 const char* get_desired_action();
1481 int get_desired_action_index();
1484 const char* get_current_action();
1487 int get_current_action_index();
1510 int get_is_in_action_transition();
1569 int force_action(
const char* action_name,
1571 int include_transition_arc = 1,
1572 float max_rampdown_interval = 0.5f,
1573 int retain_path_shape = 0,
1574 float t_offset_into_new_action = 0.0f);
1605 int force_action_with_duration(
const char* action_name,
1607 int include_transition_arc = 1,
1608 float max_rampdown_interval = 0.5f);
1631 int force_action_with_offset(
const char* action_name,
1633 int include_transition_arc = 1,
1634 float max_rampdown_interval = 0.5f,
1635 int retain_path_shape = 0,
1636 float t_offset_into_new_action = 0.0f,
1637 float x = 0,
float y = 0,
float z = 0 );
1669 int force_action_and_path_shape(
const char* action_name,
1670 const char* path_shape_name,
1671 const char* waypoint_name = NULL,
1672 float distance_into_path = 0.0f);
1716 const char* get_most_recent_forced_action();
1729 float get_most_recent_forced_action_t();
1743 float get_most_recent_forced_action_t_offset();
1770 int add_pending_desired_action(
const char* action,
1772 int remove_existing_pending_actions = 0,
1774 int retain_path_shape = 1);
1790 int add_pending_force_action(
const char* action,
1792 int remove_existing_pending_actions = 0,
1794 int include_transition_arc = 1,
1795 float max_rampdown_interval = 0.5f,
1796 int retain_path_shape = 1,
1797 float first_arc_time_shift = 0.0f);
1805 int is_valid_action(
const char* action);
1840 int die_now(
const char* preferred_dead_action_name =
"(default)");
1855 int revive_now(
const char* preferred_revive_action_name =
"(default)");
1896 int set_speed(
float speed);
1915 float get_desired_speed();
1940 int set_animation_target_el(
float elevation,
float ramp_time = .25f);
1943 float get_animation_target_el();
1951 int set_animation_target_az(
float azimuth,
float ramp_time = .25f);
1954 float get_animation_target_az();
1976 void set_animation_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1979 void get_animation_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
1991 void set_animation_local_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.10f);
1994 void get_animation_local_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
2002 void set_animation_angular_velocity(
float vel_rz,
float ramp_time = .25f);
2005 float get_animation_angular_velocity();
2056 int set_position(
float tx,
float ty,
float tz);
2078 int set_position_double(
double tx,
double ty,
double tz);
2098 int get_position(
float* tx,
float* ty,
float* tz);
2122 int get_position_double(
double* tx,
double* ty,
double* tz);
2150 int set_position_relative_to_parent(
float tx,
float ty,
float tz);
2171 int get_position_relative_to_parent(
float* tx,
float* ty,
float* tz);
2205 int set_position_to_other_character_position(
const char* other_character_name,
2206 const char* other_link_name = NULL,
2207 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2208 int also_set_orientation = 1);
2231 int set_desired_position(
float tx,
float ty,
float tz,
2232 int force_guide_unacquired = 0);
2234 int set_desired_position_double(
double tx,
double ty,
double tz,
2235 int force_guide_unacquired = 0);
2256 int set_desired_position_to_current_position(
int also_set_orientation = 1);
2286 int set_desired_position_to_waypoint(
diguyWaypoint* waypoint,
2287 float offset_x = 0.0f,
float offset_y = 0.0f,
float offset_z = 0.0f,
2288 int offset_in_world_coords = 0);
2311 int set_desired_position_to_path_waypoint(
const char* path_name,
2312 const char* waypoint_name);
2335 int set_desired_position_to_path_shape_waypoint(
const char* path_shape_name,
2336 const char* waypoint_name);
2357 int get_desired_position(
float* tx,
float* ty,
float* tz);
2358 int get_desired_position_double(
double* tx,
double* ty,
double* tz);
2379 int get_delta_to_desired_position(
float* tx,
float* ty,
float* tz);
2398 int set_initial_position(
float tx,
float ty,
float tz);
2421 int get_initial_position(
float* tx,
float* ty,
float* tz);
2453 int set_orientation(
float rz,
float rx,
float ry);
2479 int get_orientation(
float* rz,
float* rx,
float* ry);
2507 int set_orientation_relative_to_parent(
float rz,
float rx,
float ry);
2529 int get_orientation_relative_to_parent(
float* rz,
float* rx,
float* ry);
2579 int set_initial_up_vector_type(
char axis);
2588 int set_initial_up_vector(
char axis);
2595 char get_initial_up_vector_type();
2604 char get_initial_up_vector();
2627 int set_up_vector_type(
char axis);
2636 int set_up_vector(
char axis);
2643 char get_up_vector_type();
2652 char get_up_vector();
2682 int set_custom_orientation_rx_and_ry(
float rx,
2705 int set_desired_orientation(
float rz,
float rx,
float ry,
2706 int force_guide_unacquired = 0);
2728 int get_desired_orientation(
float* rz,
float* rx,
float* ry);
2751 int get_delta_to_desired_orientation(
float* rz,
float* rx,
float* ry);
2768 int set_desired_orientation_to_current_orientation();
2785 int set_desired_orientation_towards_position(
float x,
float y,
float z,
2786 int force_guide_unacquired = 0);
2806 int set_initial_orientation(
float rz,
float rx,
float ry);
2831 int get_initial_orientation(
float* rz,
float* rx,
float* ry);
2853 int get_link_position(
const char* link_name,
2854 float* tx,
float* ty,
float* tz,
2855 float* rz,
float* rx,
float* ry);
2877 int get_link_position_double(
const char* link_name,
2878 double* tx,
double* ty,
double* tz,
2879 double* rz,
double* rx,
double* ry);
2901 int get_link_position_with_offset(
const char* link_name,
2902 float offset_tx,
float offset_ty,
float offset_tz,
2903 float* tx,
float* ty,
float* tz,
2904 float* rz,
float* rx,
float* ry);
2926 int get_link_position_with_offset_double(
const char* link_name,
2927 double offset_tx,
double offset_ty,
double offset_tz,
2928 double* tx,
double* ty,
double* tz,
2929 double* rz,
double* rx,
double* ry);
2953 int get_link_relative_position(
const char* beginning_link_name,
2954 const char* ending_link_name,
2955 float* tx,
float* ty,
float* tz,
2956 float* rz,
float* rx,
float* ry);
2981 int get_link_relative_position_with_offset(
const char* beginning_link_name,
2982 const char* ending_link_name,
2983 float offset_tx,
float offset_ty,
float offset_tz,
2984 float* tx,
float* ty,
float* tz,
2985 float* rz,
float* rx,
float* ry);
3013 void set_apply_actor_scale_to_action_bead_travel(
int apply_scale_flag);
3020 int get_apply_actor_scale_to_action_bead_travel();
3033 int local_to_global(
float x,
float y,
float z,
3034 float* res_x,
float* res_y,
float* res_z);
3047 int global_to_local(
float x,
float y,
float z,
3048 float* res_x,
float* res_y,
float* res_z);
3065 void get_velocity(
float* vel_x,
float* vel_y,
float* vel_z);
3069 void get_acceleration(
float* accel_x,
float* accel_y,
float* accel_z);
3080 void set_desired_velocity(
float vel_x,
float vel_y,
float vel_z,
float ramp_time = 0.0);
3081 void get_desired_velocity(
float *vel_x,
float *vel_y,
float *vel_z);
3097 void get_angular_velocity(
float* vel_rz);
3105 void set_desired_angular_velocity(
float vel_rz);
3106 void get_desired_angular_velocity(
float* vel_rz);
3131 const char* get_appearance();
3152 int set_appearance(
const char* appearance);
3184 int set_current_appearance(
const char* appearance,
3185 int allow_actor_change = 1);
3188 const char* get_current_appearance();
3203 int get_current_appearance_is(
const char* appearance );
3220 int set_head_appearance(
const char* head_appearance);
3231 int set_current_head_appearance(
const char* head_appearance);
3234 const char* get_current_head_appearance();
3237 int get_num_compatible_head_appearances();
3240 const char* get_compatible_head_appearance_at_index(
int index);
3243 int get_num_compatible_facefx_head_appearances();
3246 const char* get_compatible_facefx_head_appearance_at_index(
int index);
3260 int get_current_head_appearance_is(
const char* head_appearance);
3279 int set_hand_item(
const char* hand_item_appearance );
3288 const char* get_hand_item();
3305 int set_current_hand_item(
const char* hand_item_appearance);
3313 const char* get_current_hand_item();
3320 const char* get_current_hand_item_type();
3323 const char* get_actor();
3327 int add_equipment_appearance(
const char* equipment_appearance );
3330 int reset_equipment_appearance(
const char* class_type );
3333 int reset_equipment_appearance();
3336 int get_num_equipment();
3339 const char* get_equipment_name_at_index(
int index );
3342 const char* get_equipment_type_at_index(
int index );
3345 int get_equipment_index_at_index(
int index );
3348 int add_equipment_by_index(
int index );
3357 int set_use_texture_variations(
int value);
3364 int get_use_texture_variations();
3368 void set_texture_variation_seed(
float seed);
3371 int get_supports_texture_variations();
3375 int get_supports_weight_variations();
3380 void set_weight_scale(
float weight );
3383 float get_weight_scale();
3387 int set_blend_shape_weight(
const char * name,
float weight);
3393 bool set_unit_patch_by_name(
const char* name,
bool set_personal_patch =
false );
3394 const char* get_unit_patch_name()
const;
3396 bool set_personal_unit_patch_by_name(
const char* name );
3397 const char* get_personal_unit_patch_name()
const;
3418 bool set_rank_patch_by_name(
const char* name );
3419 const char* get_rank_patch_name()
const;
3435 bool set_uniform_label_text(
const char* name );
3436 const char* get_uniform_label_text()
const;
3515 int set_lod_ranges(
float* lod_ranges);
3517 #ifdef CPLUSPLUS_ONLY
3518 float* get_lod_ranges();
3543 int set_graphics_lod(
float lod);
3546 int get_graphics_lod();
3549 float get_graphics_lod_fraction();
3553 int set_allow_instancing(
int value);
3556 int get_allow_instancing()
const;
3560 int get_is_instanced()
const;
3563 void set_is_instanced(
int val);
3566 int can_lod_be_instanced(
int lod);
3579 int set_final_tbo_position_matrix(
int include_local_to_global_transform,
3580 float a0,
float a1,
float a2,
float a3,
3581 float b0,
float b1,
float b2,
float b3,
3582 float c0,
float c1,
float c2,
float c3);
3601 int set_shader_lod(
int lod);
3604 int get_shader_lod();
3608 int get_has_bump_maps();
3645 int set_motion_lod(
int motion_lod);
3648 int get_motion_lod();
3651 int get_current_motion_lod();
3714 int set_minimum_cpl(
int minimum_cpl);
3717 int get_minimum_cpl();
3734 int get_maximum_possible_current_cpl();
3756 int maximize_current_cpl();
3777 int set_automatic_cpl_switching_enabled(
int enabled);
3780 int get_automatic_cpl_switching_enabled();
3805 int set_current_cpl(
int current_cpl);
3808 int get_current_cpl();
3845 int set_position_update_rate(
int update_rate);
3848 int get_position_update_rate();
3883 int set_pose_update_rate(
int update_rate);
3886 int get_pose_update_rate();
3912 int set_minimum_full_update_period(
float min_period);
3915 float get_minimum_full_update_period();
3942 int set_position_accumulation_disabled(
int disabled_flag);
3945 int get_position_accumulation_disabled();
3968 int set_all_blends_disabled(
int disabled_flag);
3971 int get_all_blends_disabled();
4002 int set_shape_callbacks_disabled(
int disabled_flag);
4005 int get_shape_callbacks_disabled();
4026 int set_graphics_api_shape_update_disabled(
int disabled_flag);
4029 int get_graphics_api_shape_update_disabled();
4068 int optimized_update(
float t);
4093 int set_is_load_managed(
int is_load_managed);
4096 int get_is_load_managed();
4100 void get_load_manager_current_update_rates(
float & zone,
int & pose_update_rate,
4101 int & position_update_rate,
int & alt_update_rate);
4558 CALLBACK_ID_CREATE = 1,
4559 CALLBACK_ID_DESTROY,
4560 CALLBACK_ID_PRE_CREATE,
4561 CALLBACK_ID_CURRENT_APPEARANCE_CHANGED,
4562 CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED,
4563 CALLBACK_ID_CURRENT_HAND_ITEM_APPEARANCE_CHANGED,
4564 CALLBACK_ID_CURRENT_EQUIPMENT_APPEARANCE_CHANGED,
4565 CALLBACK_ID_SHAPE_VARIATIONS_CHANGED,
4566 CALLBACK_ID_SHAPE_VISIBILITY_CHANGED,
4567 CALLBACK_ID_PRE_UPDATE,
4568 CALLBACK_ID_POST_UPDATE,
4569 CALLBACK_ID_DONE_SPEAKING,
4570 CALLBACK_ID_GAZE_STATUS,
4571 CALLBACK_ID_LPOINT_STATUS,
4574 CALLBACK_ID_PRE_DIE,
4575 CALLBACK_ID_POST_DIE,
4576 CALLBACK_ID_PRE_FIRE_WEAPON,
4577 CALLBACK_ID_POST_FIRE_WEAPON,
4579 CALLBACK_ID_FIRE_WEAPON_SUCCESS,
4580 CALLBACK_ID_CURRENT_ARC_CHANGED,
4581 CALLBACK_ID_CURRENT_ACTION_CHANGED,
4582 CALLBACK_ID_DESIRED_ACTION_CHANGED,
4583 CALLBACK_ID_DESIRED_ACTION_REACHED,
4584 CALLBACK_ID_MANUALLY_INVOKED,
4585 CALLBACK_ID_USER_SELECTED,
4586 CALLBACK_ID_USER_UNSELECTED,
4587 CALLBACK_ID_IGUY_INTERACT,
4588 CALLBACK_ID_IGUY_INTERACT_WITH_SUBJECT,
4589 CALLBACK_ID_GUIDE_POSITION_ACQUIRED,
4590 CALLBACK_ID_GUIDE_POSITION_UNACQUIRED,
4591 CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED,
4592 CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED,
4593 CALLBACK_ID_GUIDE_ALTITUDE_ACQUIRED,
4594 CALLBACK_ID_GUIDE_ALTITUDE_UNACQUIRED,
4595 CALLBACK_ID_GUIDE_TARGET_LOST,
4596 CALLBACK_ID_CURRENT_TOUT_REACHED,
4597 CALLBACK_ID_POST_CREATE_GEOMETRY,
4598 CALLBACK_ID_PRE_DESTROY_GEOMETRY,
4599 CALLBACK_ID_END_OF_PATH_REACHED,
4600 CALLBACK_ID_CHARACTER_CLICKED,
4603 CALLBACK_ID_UI_PRE_TRANSLATION,
4604 CALLBACK_ID_UI_POST_TRANSLATION,
4605 CALLBACK_ID_UI_MOUSE_DOWN,
4606 CALLBACK_ID_UI_MOUSE_UP,
4607 CALLBACK_ID_UI_RIGHT_MOUSE_DOWN,
4608 CALLBACK_ID_UI_RIGHT_MOUSE_UP,
4609 CALLBACK_ID_UI_LEFT_CLICK,
4610 CALLBACK_ID_UI_RIGHT_CLICK,
4611 CALLBACK_ID_UI_DOUBLE_CLICK,
4612 CALLBACK_ID_UI_MIDDLE_CLICK,
4613 CALLBACK_ID_UI_SCROLL_UP,
4614 CALLBACK_ID_UI_SCROLL_DOWN,
4618 CALLBACK_ID_AGENT_NEW_BEHAVIOR,
4619 CALLBACK_ID_AGENT_NEW_PATH_SHAPE,
4620 CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER,
4621 CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS,
4622 CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS,
4623 CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED,
4624 CALLBACK_ID_AGENT_PURSUE_TARGET_LOST,
4625 CALLBACK_ID_AGENT_MINGLE_TARGET_REACHED,
4626 CALLBACK_ID_AGENT_MINGLE_TARGET_LOST,
4627 CALLBACK_ID_AGENT_WANDER_TARGET_REACHED,
4628 CALLBACK_ID_AGENT_WANDER_TARGET_LOST,
4629 CALLBACK_ID_AGENT_FLEE_AREA_LEFT,
4630 CALLBACK_ID_AGENT_FLEE_AREA_ENTERED,
4631 CALLBACK_ID_AGENT_TRAVEL_WAYPOINT_REACHED,
4632 CALLBACK_ID_AGENT_TRAVEL_FORWARD_DEST_REACHED,
4633 CALLBACK_ID_AGENT_TRAVEL_BACKWARD_DEST_REACHED,
4634 CALLBACK_ID_AGENT_TRAVEL_NEAR_FORWARD_DEST,
4635 CALLBACK_ID_AGENT_CROWD_MEMBER_KILLED,
4636 CALLBACK_ID_AGENT_CROWD_MEMBER_IMPACT,
4637 CALLBACK_ID_AGENT_NEARBY_SCENE_OBJECT_IMPACT,
4638 CALLBACK_ID_AGENT_NEARBY_WEAPON_FIRED,
4639 CALLBACK_ID_AGENT_VEHICLE_COLLISION,
4640 CALLBACK_ID_AGENT_VEHICLE_NEAR_COLLISION,
4641 CALLBACK_ID_AGENT_PATH_PLAN_COMPLETED,
4642 CALLBACK_ID_AGENT_MIND_CURRENT_STATE_CHANGED,
4643 CALLBACK_ID_AGENT_NON_ZERO_REPULSION,
4644 CALLBACK_ID_AGENT_ZERO_REPULSION
4647 #ifdef CPLUSPLUS_ONLY
4675 int add_callback(
int callback_id,
4677 void* callback_params = 0,
4678 void* callback_user_data = 0);
4696 int remove_callback(
int callback_id,
4716 int remove_callback_with_user_data(
int callback_id,
4717 void* callback_user_data);
4769 int add_callback_script(
int callback_id,
4770 const char* callback_script,
4771 const char* callback_script_type = NULL);
4812 int remove_callback_script(
int callback_id,
4813 const char* callback_script,
4814 const char* callback_script_type = NULL);
4855 int map_event_handler_to_callback_id(
int callback_id,
4856 const char* handler_name);
4875 int unmap_event_handler_from_callback_id(
int callback_id,
4876 const char* handler_name,
4877 int unmap_all_matches = 0);
4997 const char* transition_from_action_name,
4998 const char* fill_action_name,
4999 const char* transition_to_action_name);
5024 const char* transition_from_action_name,
5025 const char* fill_action_name,
5026 const char* transition_to_action_name);
5068 int create_and_force_bridge_path(
const char* destination_path_name,
5069 const char* destination_path_action_bead_name,
5070 const char* via_action_name);
5120 int create_and_force_bridge_path_to_point(
float x,
float y,
float z,
5122 const char* via_action_name,
5123 const char* next_local_path = NULL,
5124 float orientation = 0.0f);
5151 int get_num_paths();
5171 const char* get_path_name_at_index(
int index);
5190 int get_current_path_index();
5223 int get_current_traveled_path_is(
const char* path_name);
5244 int push_path(
const char* path_name);
5269 int force_path(
const char* path_name,
5270 float max_rampdown_interval = 0.5f);
5283 int force_partial_path(
const char* path_name,
5284 const char* beginning_action_bead_name,
5285 float max_rampdown_interval = 0.5f);
5321 int resume_interrupted_path(
float max_rampdown_interval = 0.5f);
5346 int use_character_orientation,
5347 float rotation = 0.0f,
5348 int clamp_path = 1);
5364 int set_initial_path(
const char* name);
5378 const char* get_initial_path();
5390 void translate_all_paths(
float tx,
float ty,
float tz,
5391 int reclamp_waypoints = 1);
5409 int rotate_all_paths_about_point(
float rz,
float rx,
float ry,
5410 float rotation_pt_x,
float rotation_pt_y,
float rotation_pt_z,
5411 int reclamp_waypoints = 1);
5428 int rotate_all_paths_about_current_waypoint(
float rz,
float rx,
float ry,
5429 int reclamp_waypoints = 1);
5451 int jump_to_action_bead(
const char* bead_name,
5452 float max_rampdown_interval = 0.5f);
5489 float how_far = 0.0f);
5510 float how_far = 0.0f);
5531 float how_far = 0.0f);
5552 float how_far = 0.0f);
5576 int set_distance_along_path(
float distance);
5588 float get_distance_along_path();
5622 int get_nearest_waypoint_index_in_path(
const char* path_name);
5629 float get_distance_to_path(
const char* path_name,
5630 const char* action_bead_name = NULL);
5665 int get_num_links();
5703 const char* get_link_name_at_index(
int link_index);
5714 int get_num_link_shapes(
const char* link_name);
5726 const char* get_link_shape_name_at_index(
const char* link_name,
5730 void set_link_visibility(
const char* link_or_connection_name,
int visible,
int shape_index = -1);
5733 int get_num_connection_points();
5737 const char * get_connection_point_name_at_index(
int index);
5740 bool get_connection_point_info_at_index(
int index,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5751 bool find_connection_point(
const char* name,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5757 int remove_shape(
const char* shape_name);
5774 int set_link_translation_override(
const char * link_name,
float x,
float y,
float z,
float ramp_time = .25f);
5778 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);
5781 int end_link_translation_override(
const char * link_name,
float ramp_time = .25f);
5784 int set_link_rotation_override(
const char * link_name,
float rz,
float rx,
float ry,
float ramp_time = .25f);
5785 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);
5788 int end_link_rotation_override(
const char * link_name,
float ramp_time = .25f);
5802 int get_num_articulated_parts();
5806 const char* get_articulated_part_link_name(
int index );
5809 int get_articulated_part_id(
int index );
5812 const char* map_articulated_part_id_to_link(
int id );
5837 #ifdef CPLUSPLUS_ONLY
5916 int set_altitude_function_enabled_in_free_position_mode(
int enabled);
5925 int get_altitude_function_enabled_in_free_position_mode();
5951 int set_altitude_function_enabled_in_path_position_mode(
int value);
5960 int get_altitude_function_enabled_in_path_position_mode();
5986 int set_altitude_update_rate(
int update_rate);
5989 int get_altitude_update_rate();
6013 void set_altitude_interpolation_rate(
float interpolation_rate);
6016 float get_altitude_interpolation_rate();
6140 int get_pose_array_size();
6142 #ifdef CPLUSPLUS_ONLY
6175 int get_pose_in_radians(
float* pose_array);
6178 int get_pose_in_quaternions(
float* pose_array);
6226 int get_num_pose_overrides();
6269 void destroy_complete_pose_override();
6310 int gaze_at_angle(
float azimuth,
6313 int is_new_gaze = 1);
6329 int gaze_at_angle_local(
float azimuth,
6331 float distance = 10000.0f,
6332 int is_new_gaze = 1);
6357 int gaze_at_point(
float tx,
6360 int is_new_gaze = 1);
6372 int gaze_at_point_local(
float tx,
6375 int is_new_gaze = 1);
6411 int gaze_at_character(
const char* target_character_name,
6412 const char* target_character_link_name = NULL,
6413 float offset_tx = 0.0f,
6414 float offset_ty = 0.0f,
6415 float offset_tz = 0.0f);
6422 int get_gaze_is_active();
6430 int get_gaze_point(
float* x,
float* y,
float* z);
6457 int get_gaze_is_acquired();
6484 int get_gaze_is_steady();
6521 int lpoint_at_angle(
float azimuth,
6524 int is_new_lpoint = 1,
6525 const char* base_gesture_name = 0);
6537 int lpoint_at_angle_local(
float azimuth,
6539 float distance = 10000.0f,
6540 int is_new_lpoint = 1,
6541 const char* base_gesture_name = 0);
6574 int lpoint_at_point(
float tx,
6577 int is_new_lpoint = 1,
6578 const char* base_gesture_name = 0);
6590 int lpoint_at_point_local(
float tx,
6593 int is_new_lpoint = 1,
6594 const char* base_gesture_name = 0);
6605 int lpoint_at_character(
const char* target_character_name,
6606 const char* target_character_link_name = NULL,
6607 float offset_tx = 0.0f,
6608 float offset_ty = 0.0f,
6609 float offset_tz = 0.0f);
6617 int get_lpoint_point(
float* x,
float* y,
float* z);
6624 const char* get_lpoint_base_gesture_name();
6631 int get_lpoint_is_active();
6641 int get_lpoint_is_acquired();
6651 int get_lpoint_is_steady();
6683 int set_gaze_params_to_defaults();
6714 int set_gaze_param_desired_locate_time(
float t);
6721 float get_gaze_param_desired_locate_time();
6755 int set_gaze_link_uses_desired_locate_time(
const char* link_name,
6756 int uses_desired_locate_time);
6763 int get_gaze_link_uses_desired_locate_time(
const char* link_name);
6790 int set_gaze_link_azimuth_limits(
const char* link_name,
float min,
float max);
6797 int get_gaze_link_azimuth_limits(
const char* link_name,
6826 int set_gaze_link_elevation_limits(
const char* link_name,
6831 int get_gaze_link_elevation_limits(
const char* link_name,
6870 int set_gaze_link_azimuth_tolerance(
const char* link_name,
6875 int get_gaze_link_azimuth_tolerance(
const char* link_name,
6903 int set_gaze_link_elevation_tolerance(
const char* link_name,
6908 int get_gaze_link_elevation_tolerance(
const char* link_name,
6935 int set_gaze_link_max_angular_vel(
const char* link_name,
float angular_vel);
6938 int get_gaze_link_max_angular_vel(
const char* link_name,
float* angular_vel);
6975 int set_gaze_link_scale_factor(
const char* link_name,
float scale_factor);
6978 int get_gaze_link_scale_factor(
const char* link_name,
float* scale_factor);
7004 int set_link_enabled_for_gaze(
const char* link_name,
int enabled);
7007 int get_link_enabled_for_gaze(
const char* link_name);
7025 int set_gaze_can_change_posture(
int enabled);
7028 int get_gaze_can_change_posture();
7046 int set_gaze_can_change_variant(
int enabled);
7049 int get_gaze_can_change_variant();
7075 int set_link_enabled_for_lpoint(
const char* link_name,
int enabled);
7078 int get_link_enabled_for_lpoint(
const char* link_name);
7104 int set_nod(
float azimuth,
7106 float duration = 0.5f);
7152 int nod_head(
float duration,
7154 float nod_elevation0 = 15.0f,
7155 float nod_elevation1 = 0.0f,
7156 float nod_elevation_out = 0.0f);
7184 int shake_head(
float duration,
7186 float shake_azimuth0 = -20.0f,
7187 float shake_azimuth1 = 20.0f,
7188 float shake_azimuth_out = 0.0f);
7196 float get_nod_azimuth();
7204 float get_nod_elevation();
7253 int set_aim(
float azimuth,
float elevation);
7291 int aim_at_angle(
float azimuth,
7294 int is_new_aim = 1);
7311 int aim_at_angle_local(
float azimuth,
7314 int is_new_aim = 1);
7326 int aim_at_angle_with_velocity(
float azimuth,
float elevation,
float az_vel,
float el_vel,
int local,
int is_new_aim = 1);
7352 int aim_at_point(
float x,
float y,
float z,
int is_new_aim = 1);
7365 int aim_at_point_local(
float x,
float y,
float z,
int is_new_aim = 1);
7405 int aim_at_character(
const char* target_character_name,
7406 const char* target_character_link_name = NULL,
7407 float offset_tx = 0.0f,
7408 float offset_ty = 0.0f,
7409 float offset_tz = 0.0f);
7421 const char * get_aim_at_character();
7424 float get_aim_azimuth();
7427 float get_aim_elevation();
7450 int get_aim_trajectory(
float* muzzle_x,
float* muzzle_y,
float* muzzle_z,
7451 float* far_x,
float* far_y,
float* far_z);
7464 int get_aim_is_possible();
7471 int get_aim_is_acquired();
7479 int get_aim_is_steady();
7487 int get_is_aiming();
7529 void set_aim_param_acquire_factor(
float factor);
7536 float get_aim_param_acquire_factor();
7553 void set_aim_param_new_aim_factor(
float factor);
7556 float get_aim_param_new_aim_factor();
7582 void set_aim_param_new_aim_duration(
float duration);
7585 float get_aim_param_new_aim_duration();
7600 void set_aim_param_max_per_frame_adj_factor(
float factor);
7603 float get_aim_param_max_per_frame_adj_factor();
7623 void set_aim_param_azimuth_acquired_range(
float range);
7626 float get_aim_param_azimuth_acquired_range();
7646 void set_aim_param_elevation_acquired_range(
float range);
7649 float get_aim_param_elevation_acquired_range();
7660 void set_aim_converge_every_frame(
int enabled );
7663 int get_aim_converge_every_frame();
7667 int set_aim_variable_interpolation_time(
float time);
7668 float get_aim_variable_interpolation_time();
7674 const char* get_aim_at_link();
7678 int get_aim_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7681 const char* get_gaze_at_link();
7684 int get_gaze_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7756 int fire_weapon_n_times(
int count,
7758 const char* override_sound_name = NULL,
7776 int fire_screen_space_bullet(
diguyView* view,
float x,
float y);
7804 int set_default_weapon_muzzle(
diguyMuzzle muzzle);
7871 const char* get_weapon_muzzle_munition_type(
diguyMuzzle muzzle);
7874 const char* get_weapon_supplemental_data_name();
7877 const char* get_default_muzzle_munition_type();
7893 int set_weapon_munition_type_override(
const char* munition_type);
7896 const char* get_weapon_munition_type_override();
7919 int set_weapon_fires_live_rounds(
int weapon_fires_live_rounds);
7929 int get_weapon_fires_live_rounds();
7956 int set_weapon_sound_override(
const char* sound_name);
7971 const char* get_weapon_sound_override();
7996 int set_weapon_sound_gain_override(
float gain);
7999 float get_weapon_sound_gain_override();
8023 void set_weapon_spread(
float spread);
8045 void set_weapon_near_range(
float near_range);
8046 float get_weapon_near_range();
8061 void set_weapon_far_range(
float far_range );
8062 float get_weapon_far_range();
8074 void set_weapon_hit_ratio(
float hit_ratio );
8083 void set_weapon_flash_duration(
int muzzle_flash_duration );
8094 void set_weapon_max_impacts(
int val );
8101 int get_accessory1_state();
8108 int get_rifle_state();
8127 int set_weapon_projectile_is_visible(
diguyMuzzle muzzle,
int is_visible);
8143 int get_weapon_projectile_is_visible(
diguyMuzzle muzzle);
8177 int get_weapon_aim_vector(
float* muzzle_tx,
float* muzzle_ty,
float* muzzle_tz,
8178 float* end_pt_tx = NULL,
float* end_pt_ty = NULL,
float* end_pt_tz = NULL,
8179 float* muzzle_rz = NULL,
float* muzzle_rx = NULL,
float* muzzle_ry = NULL,
8180 int in_character_local_coordinates = 0,
8220 float* offset_x = NULL,
8221 float* offset_y = NULL,
8222 float* offset_z = NULL);
8239 int set_weapon_max_azimuth_error(
float h_error);
8242 float get_weapon_max_azimuth_error();
8249 int set_weapon_max_elevation_error(
float v_error);
8252 float get_weapon_max_elevation_error();
8268 int set_weapon_tracers_enabled(
int enabled);
8271 int get_weapon_tracers_enabled();
8278 int get_weapon_rounds_until_tracer(
diguyMuzzle muzzle);
8299 int trigger_detonation_on_character(
const char* munition_name,
8300 const char* attacker_name = NULL,
8301 float radius_override = -1.0f,
8302 int broadcast_on_network = 1);
8359 int set_face_expression(
const char* facex_name,
float blend_duration,
float strength = 1.0f);
8382 int set_orientation_eyes(
float azimuth,
8384 float blend_time = 0.0f);
8394 int get_orientation_eyes(
float* azimuth,
float* elevation);
8412 int set_eye_droop(
float droop_amount,
float blend_time = 0.0f);
8415 float get_eye_droop();
8442 int blink(
float duration_in = 0.1f,
8443 float duration_out = 0.2f,
8444 float target_in = 1.0f,
8445 float target_out = 0.0f,
8482 int set_automatic_blinks_enabled(
int enabled,
8483 float period = 6.0f,
8484 float period_variation = 3.0f);
8487 int get_automatic_blinks_enabled();
8503 void set_automatic_blink_duration_in(
float duration_in);
8506 float get_automatic_blink_duration_in();
8522 void set_automatic_blink_duration_out(
float duration_out);
8525 float get_automatic_blink_duration_out();
8541 void set_automatic_blink_target_in(
float target_in);
8544 float get_automatic_blink_target_in();
8560 void set_automatic_blink_target_out(
float target_out);
8563 float get_automatic_blink_target_out();
8581 int set_current_facefx_animation_group(
const char* anim_group);
8588 const char* get_current_facefx_animation_group();
8596 const char* get_facefx_actor();
8604 int facefx_mount_animset(
const char* file_name);
8614 int play_facefx_animation(
const char* animation,
8615 float magnitude_scale = 1.0f,
8616 float duration_scale = 1.0f,
8617 float blendin_time = 0.1f,
8618 float blendout_time = 0.1f,
8626 int stop_facefx_animations(
float blend_time = 0.25f,
int stop_sounds = 1);
8638 int get_num_facefx_nodes();
8646 const char* get_facefx_node_name(
int index);
8653 int find_facefx_node_index(
const char* node_name);
8662 int set_facefx_node_value(
int node_index,
8664 float blend_time = 0.25f);
8671 float get_facefx_node_value(
int node_index);
8806 int execute_gesture(
const char* gesture_name,
8853 int execute_1stage_gesture(
const char* gesture_name,
8896 int execute_2stage_gesture(
const char* gesture_name,
8947 int execute_3stage_gesture(
const char* gesture_name,
8996 int execute_table_gesture(
const char* gesture_name,
8998 const char* loop_action = NULL,
8999 const char* begin_action = NULL,
9000 const char* end_action = NULL);
9017 int set_executing_table_gesture_desired_action(
const char* gesture_name,
9018 const char* desired_action);
9042 int end_executing_gesture(
const char* gesture_name);
9074 int abort_executing_gesture(
const char* gesture_name,
9075 float max_rampdown_interval = .5f);
9095 int end_all_gestures();
9125 int abort_all_gestures(
float max_rampdown_interval);
9193 int play_sound(
const char* sound_name,
9194 float sound_gain = 1.0f,
9195 int sound_loops = 0);
9234 int play_3d_sound(
const char* sound_name,
9235 float sound_gain = 1.0f,
9236 int sound_loops = 0);
9312 int stop_all_sounds(
float rampdown_time = 0.0f);
9339 int stop_sound(
const char* sound_name,
float rampdown_time = 0.0f);
9346 int is_playing_sound(
const char* sound_name);
9417 int set_current_voice_actor(
const char* voice_actor);
9420 const char* get_current_voice_actor();
9492 int get_DIS_lifeform_state();
9513 int get_DIS_primary_weapon_position();
9534 int get_DIS_secondary_weapon_position();
9555 int set_network_marking(
const char* network_marking);
9577 const char* get_network_marking();
9601 int set_is_network_published(
int is_network_published);
9623 int get_is_network_published();
9632 DtEntityStateRepository * get_vrlink_entity_state_repository();
9653 int get_is_network_reflected();
9678 int get_is_network_paused();
9686 int set_is_network_paused(
int paused);
9707 int get_network_entity_number();
9769 const char* get_action_from_entity_state(
int damage_state,
9770 int life_form_state,
9771 int primary_weapon_state,
9796 void set_DIS_damage_state(
int state);
9800 int get_DIS_damage_state();
9808 const char * get_damage_state_appearance_name(
int state);
9832 void set_DIS_smoke_state(
int state);
9836 int get_DIS_smoke_state();
9857 void set_DIS_flames_state(
int state);
9861 int get_DIS_flames_state();
9882 void set_DIS_power_plant_state(
int state);
9886 int get_DIS_power_plant_state();
9890 void set_emissivity(
float r,
float g,
float b,
float lerp_time = .25);
9894 void get_emissivity(
float *r,
float *g,
float *b);
9916 void set_DIS_trailing_effect_state(
int state);
9920 int get_DIS_trailing_effect_state();
9923 void set_DIS_station_name(
int name);
9924 int get_DIS_station_name()
const;
9927 void set_DIS_station_number(
int number);
9928 int get_DIS_station_number()
const;
9932 void set_head_lights_state(
int state);
9935 int get_head_lights_state()
const;
9938 void set_tail_lights_state(
int state);
9941 int get_tail_lights_state()
const;
9983 int call_formation(
const char* formation_name,
9984 int snap_to_position_flag = 0,
9985 int break_existing_formations_flag = 1);
10004 int break_formation(
const char* formation_name = NULL);
10045 int automatically_disable_when_acquired = 0);
10073 const char* guide_algorithm,
10074 int automatically_disable_when_acquired = 0);
10095 const char* guide_algorithm,
10096 int automatically_disable_when_acquired = 0);
10130 int remove_guide_with_name(
const char* guide_name);
10157 int remove_all_guides();
10168 int remove_all_disabled_guides();
10218 int add_motion_texture(
const char* motex_name =
"default",
10219 float texture_gain = 1.0f,
10220 int end_previous_motex = 1,
10221 float rampup_interval = 0.2f);
10238 int end_motion_texture(
float rampdown_interval = 0.2f);
10263 int set_initial_motion_texture(
const char* motex_name);
10275 const char* get_initial_motion_texture();
10293 int set_initial_motion_texture_gain(
float motex_gain);
10305 float get_initial_motion_texture_gain();
10395 int set_history_size_t(
float t);
10407 float get_history_size_t();
10423 int set_history_size_increment_t(
float t);
10435 float get_history_size_increment_t();
10674 int match_posture_before_variant = 1,
10679 int return_random_match = 0);
10748 int match_posture_before_variant = 1,
10770 int get_num_variables();
10843 int variable_equal_to_int(
const char* varname,
int value);
10858 int variable_greater_than_int(
const char* varname,
int value);
10873 int variable_less_than_int(
const char* varname,
int value);
10888 int variable_equal_to_float(
const char* varname,
float value);
10903 int variable_greater_than_float(
const char* varname,
float value);
10918 int variable_less_than_float(
const char* varname,
float value);
10933 int variable_equal_to_string(
const char* varname,
const char* value);
10948 int variable_greater_than_string(
const char* varname,
const char* value);
10963 int variable_less_than_string(
const char* varname,
const char* value);
10981 int variable_decrement_value_as_int(
const char* varname,
int value = 1);
10999 int variable_increment_value_as_int(
const char* varname,
int value = 1);
11021 int variable_set_value_as_int(
const char* varname,
11023 int create_if_doesnt_exist = 1);
11030 int set_ivar(
const char* varname,
11032 int create_if_doesnt_exist = 1);
11054 int get_ivar(
const char* varname,
11055 int create_if_doesnt_exist = 1);
11063 int variable_set_value_as_float(
const char* varname,
11065 int create_if_doesnt_exist = 1);
11072 int set_fvar(
const char* varname,
11074 int create_if_doesnt_exist = 1);
11085 float get_fvar(
const char* varname,
11086 int create_if_doesnt_exist = 1);
11094 int variable_set_value_as_string(
const char* varname,
11096 int create_if_doesnt_exist = 1);
11103 int set_svar(
const char* varname,
11105 int create_if_doesnt_exist = 1);
11116 const char* get_svar(
const char* varname,
11117 int create_if_doesnt_exist = 1);
11165 int set_label_text(
const char* label_text);
11177 const char* get_label_text();
11197 int set_label_is_visible(
int is_visible);
11209 int get_label_is_visible();
11232 int set_label_text_color(
float r,
float g,
float b,
float a);
11239 int set_label_text_color_vec4(
const diguyVec4f & color);
11251 int get_label_text_color(
float* r,
float* g,
float* b,
float* a);
11281 int set_label_text_shadow_color(
float r,
float g,
float b,
float a);
11288 int set_label_text_shadow_color_vec4(
const diguyVec4f & color);
11300 int get_label_text_shadow_color(
float* r,
float* g,
float* b,
float* a);
11307 diguyVec4f get_label_text_shadow_color_vec4();
11322 int set_label_text_shadow_is_visible(
int is_visible);
11329 int get_label_text_shadow_is_visible();
11353 int set_label_background_color(
float r,
float g,
float b,
float a);
11360 int set_label_background_color_vec4(
const diguyVec4f & color);
11372 int get_label_background_color(
float* r,
float* g,
float* b,
float* a);
11379 diguyVec4f get_label_background_color_vec4();
11391 void set_label_link_offset_override(
float offset);
11398 float get_label_link_offset_override();
11415 int set_label_shows_character_state(
int show_state);
11423 int get_label_shows_character_state();
11452 int get_last_impact_number();
11459 int get_last_impact_been_processed();
11466 void set_last_impact_been_processed();
11480 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
11487 int get_max_unprocessed_impacts();
11494 const char* get_last_impact_link();
11501 int get_last_impact_link_is(
const char* link_name);
11509 int get_last_impact_is_from_vehicle();
11517 int get_last_impact_speed_is_greater_than(
float impact_speed);
11525 void set_is_immune_to_impacts(
int immune);
11533 int get_is_immune_to_impacts();
11599 int begin_appearance_effect(
const char* effect,
11600 const char* override_link = NULL,
11633 int end_appearance_effect(
const char* effect,
11634 const char* override_link = NULL);
11662 int stop_appearance_effect(
const char* effect,
11663 const char* override_link = NULL);
11670 int stop_all_appearance_effects();
11687 int appearance_effect_is_active(
const char* effect,
11688 const char* override_link = NULL);
11771 int get_vehicle_body_orientation(
float* rz,
float* rx,
float* ry);
11824 int set_render_mode_shader(
const char* shader_name,
11825 const char* render_mode = NULL);
11846 void reset_render_mode_shader_to_default(
const char* render_mode = NULL);
11864 const char* get_render_mode_shader(
const char* render_mode = NULL);
11914 int set_temporary_current_shader(
const char* shader_name);
11926 void reset_current_shader_to_default();
11935 void trigger_shader_refresh();
11961 void reset_shader_instance_variables_to_initial_values();
11969 void reset_shader_instance_variables_to_program_defaults();
12023 int agent_attack_character(
const char* character_name);
12052 int agent_attack_group(
const char* group_name);
12059 int agent_set_attack_zone_enabled(
int use_attack_zone);
12066 int agent_get_attack_zone_enabled();
12073 int agent_set_attack_zone(
float x,
float y,
float z,
float radius);
12080 int agent_get_attack_zone(
float* x,
float* y,
float* z,
float* radius);
12120 int agent_flee_character(
const char* character_name,
12122 int danger_level = 50);
12153 int agent_flee_group(
const char* group_name,
12155 int danger_level = 50);
12164 int agent_flee_crowd(
const char* crowd_name,
12166 int danger_level = 50);
12198 int agent_flee_location(
float x,
float y,
float z,
12200 int danger_level = 50);
12215 void agent_remove_all_flee_objects();
12256 int agent_mingle_in_region(
const char* region_name =
"(current)",
12257 const char* subregion_name =
"base");
12282 int agent_wander_region(
const char* region_name =
"(current)",
12283 const char* subregion_name =
"base");
12322 int agent_pursue_character(
const char* character_name);
12331 int agent_pursue_character_with_offset(
const char* character_name,
12362 int agent_pursue_group(
const char* group_name);
12374 int agent_call_formation(
const char* formation_name,
12414 int agent_travel_behavior_path(
const char* direction = NULL,
12415 const char* at_end = NULL,
12416 int waypoint_index = -1,
12417 float offset_y = 0.5f);
12425 int agent_travel_path_shape(
const char* path_shape_name,
12426 const char* direction = NULL,
12427 const char* at_end = NULL,
12428 int waypoint_index = -1,
12429 float offset_y = 0.5f);
12450 int agent_travel_region_border(
const char* region_name = NULL,
12451 const char* subregion_name =
"base");
12477 int agent_move_to_point(
float x,
float y,
float z,
12478 const char* via_region = NULL,
12479 const char* subregion_name =
"base");
12501 int agent_move_to_point_bg(
float x,
float y,
float z,
12502 const char* via_region = NULL,
12503 const char* subregion_name =
"base");
12570 int agent_move_to_point_via_subregions(
float x,
float y,
float z,
12571 const char* via_region = NULL,
12573 float cost_bias_for_preferred_regions = 0.25f,
12574 float cost_bias_for_neutral_regions = 1.1f,
12576 float cost_bias_for_repulsed_regions = 10.0f,
12577 int cost_rule = 0);
12597 int agent_move_to_point_via_subregions_bg(
float x,
float y,
float z,
12598 const char* via_region = NULL,
12600 float cost_bias_for_preferred_regions = 0.25f,
12601 float cost_bias_for_neutral_regions = 1.1f,
12603 float cost_bias_for_repulsed_regions = 10.0f,
12604 int cost_rule = 0);
12613 int get_path_planning_result();
12621 int get_is_path_planning();
12643 int agent_move_to_region(
const char* region,
12644 const char* subregion_name =
"base",
12645 const char* via_region = NULL);
12669 int agent_move_to_region_via_subregions(
const char* region_name,
12670 const char* subregion_name =
"base",
12671 const char* via_region = NULL,
12672 float cost_bias_for_preferred_regions = 0.25f,
12674 float cost_bias_for_neutral_regions = 1.1f,
12676 float cost_bias_for_repulsed_regions = 10.0f);
12712 int agent_path_follow(
const char* path_name);
12727 int agent_resume_path_follow();
12761 float agent_get_path_follow_path_t();
12768 int agent_get_path_follow_path_t_paused();
12795 int agent_begin_behavior(
const char* behavior_name);
12802 int agent_stop_behavior();
12830 int agent_set_current_focus_character(
const char* character_name);
12870 int agent_set_current_focus_group(
const char* group_name);
12924 const char* agent_get_current_params_profile_name();
12958 int agent_set_current_params_from_profile(
const char* profile_name,
12959 int retain_focus_objects = 1,
12960 int retain_navigation_values = 1,
12961 int retain_behavior = 0);
12969 int agent_set_initial_params_from_profile(
const char* profile_name);
12977 void agent_set_current_params_from_initial_params();
12998 void agent_set_current_behavior_region_border_is_solid(
int is_solid);
13009 void agent_move_on();
13022 int agent_set_auto_variant_selection(
int selection_enabled);
13029 int agent_get_auto_variant_selection();
13051 void agent_set_use_speed_zones_on_paths(
int enabled);
13058 int agent_get_use_speed_zones_on_paths();
13060 #ifdef CPLUSPLUS_ONLY
13175 int create_lua_mind(
const char* base_class,
const char* init_arg1 = NULL,
13176 const char* init_arg2 = NULL);
13184 const char *get_mind_name();
13199 const char* get_mind_current_state_name();
13211 void do_mind_current_state_changed_callback();
13225 int set_sleep_timer(
float sleep_length);
13233 float get_sleep_timer();
13246 int set_heartbeat_dt(
float heartbeat_dt);
13265 int add_secondary_heartbeat(
const char* function_name,
13266 float heartbeat_dt);
13283 int remove_secondary_heartbeat(
const char* function_name);
13301 int set_secondary_heartbeat_dt(
const char* function_name,
float heartbeat_dt);
13337 int add_wakeup_callback(
int callback);
13354 int remove_wakeup_callback(
int callback);
13366 int remove_all_wakeup_callbacks();
13378 int has_wakeup_callback(
int callback);
13397 int agent_accept_message(
const char* sender,
13398 const char* message_type,
13399 const char* message,
13400 const char* message_params = NULL);
13423 int agent_broadcast_message(
float radius,
13424 const char* message_type,
13425 const char* message,
13426 const char* message_params = NULL);
13451 int agent_broadcast_message_to_group(
const char* group_name,
13453 const char* message_type,
13454 const char* message,
13455 const char* message_params = NULL);
13464 const char* get_lua_object_name();
13471 void set_mind_field_as_string(
const char* field_name,
13472 const char* field_value);
13489 const char* get_mind_field_as_string(
const char* field_name,
13490 int warn_if_no_field = 1);
13498 void set_mind_field_as_float(
const char* field_name,
float field_value);
13510 float get_mind_field_as_float(
const char* field_name,
13511 int warn_if_no_field = 1,
13512 int* found_field = NULL);
13520 void set_mind_field_as_int(
const char* field_name,
int field_value);
13532 int get_mind_field_as_int(
const char* field_name,
13533 int warn_if_no_field = 1,
13534 int* found_field = NULL);
13561 const char* evaluate_mind_function(
const char* function_name,
13562 const char* argument = NULL,
13563 int has_return_string = 0);
13586 const char* get_ai_state_string(
int include_stack = 1,
int include_locals = 1);
13631 int los_check_type = 0);
13655 int check_point_visibility(
float x,
float y,
float z);
13676 #ifdef CPLUSPLUS_ONLY
13797 int get_num_ik_chains();
13801 const char* get_ik_chain_name_at_index(
int index );
13814 int set_ik_target_world(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = 0.25f );
13827 int set_ik_target_local(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = 0.25f );
13841 int set_ik_target_character(
int ik_chain_target,
diguyCharacter* target,
const char* link_name,
float ramp_time = 0.25f );
13846 int disable_ik_target(
int ik_chain_target,
float ramp_time = 0.25f );
13853 void set_distance_to_primary_camera(
float camera_dist );
13856 float get_distance_to_primary_camera();
14059 void set_stop_physics_sim_at_t(
float t);
14068 void set_stop_physics_sim_in_t_seconds(
float relative_t);
14075 float get_stop_physics_sim_at_t();
14093 void apply_impulse_to_physics_sim(
const char* link,
14094 float impulse_magnitude_x,
14095 float impulse_magnitude_y,
14096 float impulse_magnitude_z,
14097 float link_offset_x = 0.0f,
14098 float link_offset_y = 0.0f,
14099 float link_offset_z = 0.0f,
14100 int set_simulation_drives_character = 1);
14126 void apply_impulse_to_physics_sim_from_world_position(
const char* link,
14127 float impulse_magnitude_x,
14128 float impulse_magnitude_y,
14129 float impulse_magnitude_z,
14130 float impulse_generator_position_x,
14131 float impulse_generator_position_y,
14132 float impulse_generator_position_z,
14133 float max_distance = 20.0f,
14134 float impulse_rolloff = 0.0f,
14135 float link_offset_x = 0.0f,
14136 float link_offset_y = 0.0f,
14137 float link_offset_z = 0.0f,
14138 int set_simulation_drives_character = 1);
14169 static int set_max_shader_quality_level(
int quality_level);
14172 static int get_max_shader_quality_level();
14188 int set_animation_events_enabled(
int enable);
14189 int get_animation_events_enabled();
14208 int get_action_num_channels(
const char* action_name);
14230 int set_action_channel_weight(
const char* action_name,
14249 float get_action_channel_weight(
const char* action_name,
14265 float get_time_to_reach_desired_action();
14288 const char* get_type_map_field_using_string(
const char* field);
14292 float get_normalized_age()
const;
14316 int merge_object(
const char*
object);
14329 int is_active_character_in_group_visible(
const char* group_name,
14330 float max_distance_to_check = 100000.0f);
14347 int get_local_space_bounding_box(
float* x1,
float* y1,
float* z1,
14348 float* x2,
float* y2,
float* z2);
14360 void set_mind_always_updates(
int force_update);
14363 int get_mind_always_updates();
14369 float get_angle_to_path(
const char* path_name,
14370 const char* action_bead_name = NULL);
14375 void set_scene_graph_mask(
unsigned int mask);
14378 unsigned int get_scene_graph_mask();
14395 int set_local_to_world_orientation_matrix(
float rz,
float rx,
float ry);
14397 int set_local_to_world_orientation_matrix(
14398 float a0,
float a1,
float a2,
14399 float b0,
float b1,
float b2,
14400 float c0,
float c1,
float c2,
int transpose = 0);
14402 #ifdef CPLUSPLUS_ONLY
14403 const float * get_local_to_world_orientation_matrix();
14406 int set_current_IK_world_conversion_matrix(
14407 float a0,
float a1,
float a2,
14408 float b0,
float b1,
float b2,
14409 float c0,
float c1,
float c2,
int transpose = 0);
14411 void set_IK_use_vrv_swizzle(
bool);
14416 int set_always_update_regardless_of_dt(
int val);
14418 int get_always_update_regardless_of_dt();
14420 void set_shader_matrices_out_of_date();
14422 void draw_debugging_visuals();
14442 int aim_converge(
int max_iterations = 30);
14445 void set_aim_algorithm(
int aim_algorithm);
14448 int get_aim_algorithm();
14582 #ifdef CPLUSPLUS_ONLY
14584 bdiScenarioCharacter* get_scripted_object();
14600 bdiScenarioCharacter* m_scripted_object;
14602 friend class bdiPublishedCharacter;
14603 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:54
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:26
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:43
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.
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:153
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