13 #ifndef __diguyCharacter_H
14 #define __diguyCharacter_H
19 #define CPLUSPLUS_ONLY
34 class bdiScenarioCharacter;
67 class DtEntityStateRepository;
104 const char* get_name();
115 int set_name(
const char* name);
123 const char* get_type_name();
174 int update(
float t,
int full_update = 1);
189 void set_character_type(
const char* type);
212 const char* get_character_type_string();
237 const char* get_character_class();
275 int set_enabled(
int enabled);
308 int set_drawn_by_scenario_flag(
int flag);
325 int get_drawn_by_scenario_flag();
343 void set_invisible_flag(
int invisible_flag);
346 int get_invisible_flag();
392 int get_was_drawn_last_frame();
395 int set_was_drawn_last_frame(
int drawn);
405 int set_is_culled(
int culled);
413 int get_is_temporary();
424 int get_is_recycled();
443 int set_t_controlled_by_scenario_t(
int t_controlled_by_scenario_t);
451 int get_t_controlled_by_scenario_t();
481 int set_initial_tin(
float tin,
int override_time_warning = 0);
510 int set_initial_tout(
float tout);
556 int set_current_tin(
float tin);
569 int set_current_tin_to_now();
581 float get_current_tin();
603 int set_current_tout(
float tout,
604 int disable_character_at_tout = 0);
618 int set_current_tout_to_now();
626 float get_current_tout();
635 void set_tout_enabled(
int tout_enabled);
648 int get_tout_enabled();
651 float get_char_time();
675 int set_careful_interpolation_threshold(
float threshold);
683 float get_careful_interpolation_threshold();
701 int set_motion_interpolation_flag(
int flag);
709 int get_motion_interpolation_flag();
725 int set_scale(
float scale_x,
float scale_y,
float scale_z);
742 int get_scale(
float* scale_x,
float* scale_y,
float* scale_z);
767 int set_parent(
const char* parent_name,
const char* parent_link_name =
"");
791 const char* get_parent_link_name();
812 int get_num_children();
840 int get_is_scene_object();
857 int set_is_scene_object(
int is_scene_object);
870 float get_bounding_radius();
883 float get_default_bounding_radius();
891 void set_bounding_radius(
float f);
912 float get_time_to_transition();
915 float get_character_local_time();
958 int set_t_scale_factor(
float t_scale_factor);
974 int unset_t_scale_factor();
991 int is_within_distance_n_of_character(
const char* character_name,
1009 int is_within_distance_n_of_member_of_group(
const char* group_name,
1028 int is_group_member(
const char* group_name);
1038 int get_num_group_memberships();
1083 diguyCharacter* get_nearest_active_character(
int check_visibility,
1084 int xy_distance = 0,
1085 float max_distance_to_check = 100000);
1112 diguyCharacter* get_nearest_active_character_in_group(
const char* group_name,
1113 int check_visibility = 1,
1114 int xy_distance = 0,
1115 float max_distance_to_check = 100000);
1144 diguyCharacter* get_random_active_character(
float max_distance = 10.0f,
1145 int check_visibility = 1,
1146 int xy_distance = 0);
1176 diguyCharacter* get_random_active_character_in_group(
const char* group_name,
1177 float max_distance = 10,
1178 int check_visibility = 1,
1179 int xy_distance = 0);
1206 float get_distance_to_impact(
diguyImpact* impact);
1234 float get_random_factor();
1286 #ifdef CPLUSPLUS_ONLY
1307 void* get_graphics_ptr();
1334 int set_graphics_ptr(
void* graphics_ptr);
1352 void set_graphics_api_node_ptr(
void* node_ptr);
1359 void* get_graphics_api_node_ptr();
1377 int set_user_data(
void* user_data);
1384 void* get_user_data();
1444 int retain_path_shape = 0 );
1476 const char* get_desired_action();
1479 int get_desired_action_index();
1482 const char* get_current_action();
1485 int get_current_action_index();
1508 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();
3236 const char* get_compatible_head_appearance_at_index(
int index);
3239 int get_num_compatible_facefx_head_appearances();
3241 const char* get_compatible_facefx_head_appearance_at_index(
int index);
3255 int get_current_head_appearance_is(
const char* head_appearance);
3274 int set_hand_item(
const char* hand_item_appearance);
3283 const char* get_hand_item();
3300 int set_current_hand_item(
const char* hand_item_appearance);
3308 const char* get_current_hand_item();
3315 const char* get_current_hand_item_type();
3318 const char * get_actor();
3322 int add_equipment_appearance(
const char* equipment_appearance);
3325 int reset_equipment_appearance(
const char* class_type);
3328 int reset_equipment_appearance();
3331 int get_num_equipment();
3334 const char * get_equipment_name_at_index(
int index);
3337 const char * get_equipment_type_at_index(
int index);
3340 int get_equipment_index_at_index(
int index);
3343 int add_equipment_by_index(
int index);
3352 int set_use_texture_variations(
int value);
3359 int get_use_texture_variations();
3363 void set_texture_variation_seed(
float seed);
3366 int get_supports_texture_variations();
3370 int get_supports_weight_variations();
3375 void set_weight_scale(
float weight );
3378 float get_weight_scale();
3382 int set_blend_shape_weight(
const char * name,
float weight);
3388 bool set_unit_patch_by_name(
const char* name,
bool set_personal_patch =
false );
3389 const char* get_unit_patch_name()
const;
3391 bool set_personal_unit_patch_by_name(
const char* name );
3392 const char* get_personal_unit_patch_name()
const;
3413 bool set_rank_patch_by_name(
const char* name );
3414 const char* get_rank_patch_name()
const;
3430 bool set_uniform_label_text(
const char* name );
3431 const char* get_uniform_label_text()
const;
3510 int set_lod_ranges(
float* lod_ranges);
3512 #ifdef CPLUSPLUS_ONLY
3513 float* get_lod_ranges();
3538 int set_graphics_lod(
float lod);
3541 int get_graphics_lod();
3544 float get_graphics_lod_fraction();
3548 int set_allow_instancing(
int value);
3551 int get_allow_instancing()
const;
3555 int get_is_instanced()
const;
3558 void set_is_instanced(
int val);
3561 int can_lod_be_instanced(
int lod);
3574 int set_final_tbo_position_matrix(
int include_local_to_global_transform,
3575 float a0,
float a1,
float a2,
float a3,
3576 float b0,
float b1,
float b2,
float b3,
3577 float c0,
float c1,
float c2,
float c3);
3596 int set_shader_lod(
int lod);
3599 int get_shader_lod();
3603 int get_has_bump_maps();
3640 int set_motion_lod(
int motion_lod);
3643 int get_motion_lod();
3646 int get_current_motion_lod();
3709 int set_minimum_cpl(
int minimum_cpl);
3712 int get_minimum_cpl();
3729 int get_maximum_possible_current_cpl();
3751 int maximize_current_cpl();
3772 int set_automatic_cpl_switching_enabled(
int enabled);
3775 int get_automatic_cpl_switching_enabled();
3800 int set_current_cpl(
int current_cpl);
3803 int get_current_cpl();
3840 int set_position_update_rate(
int update_rate);
3843 int get_position_update_rate();
3878 int set_pose_update_rate(
int update_rate);
3881 int get_pose_update_rate();
3907 int set_minimum_full_update_period(
float min_period);
3910 float get_minimum_full_update_period();
3937 int set_position_accumulation_disabled(
int disabled_flag);
3940 int get_position_accumulation_disabled();
3963 int set_all_blends_disabled(
int disabled_flag);
3966 int get_all_blends_disabled();
3997 int set_shape_callbacks_disabled(
int disabled_flag);
4000 int get_shape_callbacks_disabled();
4021 int set_graphics_api_shape_update_disabled(
int disabled_flag);
4024 int get_graphics_api_shape_update_disabled();
4063 int optimized_update(
float t);
4088 int set_is_load_managed(
int is_load_managed);
4091 int get_is_load_managed();
4095 void get_load_manager_current_update_rates(
float & zone,
int & pose_update_rate,
4096 int & position_update_rate,
int & alt_update_rate);
4553 CALLBACK_ID_CREATE = 1,
4554 CALLBACK_ID_DESTROY,
4555 CALLBACK_ID_PRE_CREATE,
4556 CALLBACK_ID_CURRENT_APPEARANCE_CHANGED,
4557 CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED,
4558 CALLBACK_ID_CURRENT_HAND_ITEM_APPEARANCE_CHANGED,
4559 CALLBACK_ID_CURRENT_EQUIPMENT_APPEARANCE_CHANGED,
4560 CALLBACK_ID_SHAPE_VARIATIONS_CHANGED,
4561 CALLBACK_ID_SHAPE_VISIBILITY_CHANGED,
4562 CALLBACK_ID_PRE_UPDATE,
4563 CALLBACK_ID_POST_UPDATE,
4564 CALLBACK_ID_DONE_SPEAKING,
4565 CALLBACK_ID_GAZE_STATUS,
4566 CALLBACK_ID_LPOINT_STATUS,
4569 CALLBACK_ID_PRE_DIE,
4570 CALLBACK_ID_POST_DIE,
4571 CALLBACK_ID_PRE_FIRE_WEAPON,
4572 CALLBACK_ID_POST_FIRE_WEAPON,
4574 CALLBACK_ID_FIRE_WEAPON_SUCCESS,
4575 CALLBACK_ID_CURRENT_ARC_CHANGED,
4576 CALLBACK_ID_CURRENT_ACTION_CHANGED,
4577 CALLBACK_ID_DESIRED_ACTION_CHANGED,
4578 CALLBACK_ID_DESIRED_ACTION_REACHED,
4579 CALLBACK_ID_MANUALLY_INVOKED,
4580 CALLBACK_ID_USER_SELECTED,
4581 CALLBACK_ID_USER_UNSELECTED,
4582 CALLBACK_ID_IGUY_INTERACT,
4583 CALLBACK_ID_IGUY_INTERACT_WITH_SUBJECT,
4584 CALLBACK_ID_GUIDE_POSITION_ACQUIRED,
4585 CALLBACK_ID_GUIDE_POSITION_UNACQUIRED,
4586 CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED,
4587 CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED,
4588 CALLBACK_ID_GUIDE_ALTITUDE_ACQUIRED,
4589 CALLBACK_ID_GUIDE_ALTITUDE_UNACQUIRED,
4590 CALLBACK_ID_GUIDE_TARGET_LOST,
4591 CALLBACK_ID_CURRENT_TOUT_REACHED,
4592 CALLBACK_ID_POST_CREATE_GEOMETRY,
4593 CALLBACK_ID_PRE_DESTROY_GEOMETRY,
4594 CALLBACK_ID_END_OF_PATH_REACHED,
4595 CALLBACK_ID_CHARACTER_CLICKED,
4598 CALLBACK_ID_UI_PRE_TRANSLATION,
4599 CALLBACK_ID_UI_POST_TRANSLATION,
4600 CALLBACK_ID_UI_MOUSE_DOWN,
4601 CALLBACK_ID_UI_MOUSE_UP,
4602 CALLBACK_ID_UI_RIGHT_MOUSE_DOWN,
4603 CALLBACK_ID_UI_RIGHT_MOUSE_UP,
4604 CALLBACK_ID_UI_LEFT_CLICK,
4605 CALLBACK_ID_UI_RIGHT_CLICK,
4606 CALLBACK_ID_UI_DOUBLE_CLICK,
4607 CALLBACK_ID_UI_MIDDLE_CLICK,
4608 CALLBACK_ID_UI_SCROLL_UP,
4609 CALLBACK_ID_UI_SCROLL_DOWN,
4613 CALLBACK_ID_AGENT_NEW_BEHAVIOR,
4614 CALLBACK_ID_AGENT_NEW_PATH_SHAPE,
4615 CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER,
4616 CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS,
4617 CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS,
4618 CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED,
4619 CALLBACK_ID_AGENT_PURSUE_TARGET_LOST,
4620 CALLBACK_ID_AGENT_MINGLE_TARGET_REACHED,
4621 CALLBACK_ID_AGENT_MINGLE_TARGET_LOST,
4622 CALLBACK_ID_AGENT_WANDER_TARGET_REACHED,
4623 CALLBACK_ID_AGENT_WANDER_TARGET_LOST,
4624 CALLBACK_ID_AGENT_FLEE_AREA_LEFT,
4625 CALLBACK_ID_AGENT_FLEE_AREA_ENTERED,
4626 CALLBACK_ID_AGENT_TRAVEL_WAYPOINT_REACHED,
4627 CALLBACK_ID_AGENT_TRAVEL_FORWARD_DEST_REACHED,
4628 CALLBACK_ID_AGENT_TRAVEL_BACKWARD_DEST_REACHED,
4629 CALLBACK_ID_AGENT_TRAVEL_NEAR_FORWARD_DEST,
4630 CALLBACK_ID_AGENT_CROWD_MEMBER_KILLED,
4631 CALLBACK_ID_AGENT_CROWD_MEMBER_IMPACT,
4632 CALLBACK_ID_AGENT_NEARBY_SCENE_OBJECT_IMPACT,
4633 CALLBACK_ID_AGENT_NEARBY_WEAPON_FIRED,
4634 CALLBACK_ID_AGENT_VEHICLE_COLLISION,
4635 CALLBACK_ID_AGENT_VEHICLE_NEAR_COLLISION,
4636 CALLBACK_ID_AGENT_PATH_PLAN_COMPLETED,
4637 CALLBACK_ID_AGENT_MIND_CURRENT_STATE_CHANGED,
4638 CALLBACK_ID_AGENT_NON_ZERO_REPULSION,
4639 CALLBACK_ID_AGENT_ZERO_REPULSION
4642 #ifdef CPLUSPLUS_ONLY
4670 int add_callback(
int callback_id,
4672 void* callback_params = 0,
4673 void* callback_user_data = 0);
4691 int remove_callback(
int callback_id,
4711 int remove_callback_with_user_data(
int callback_id,
4712 void* callback_user_data);
4764 int add_callback_script(
int callback_id,
4765 const char* callback_script,
4766 const char* callback_script_type = NULL);
4807 int remove_callback_script(
int callback_id,
4808 const char* callback_script,
4809 const char* callback_script_type = NULL);
4850 int map_event_handler_to_callback_id(
int callback_id,
4851 const char* handler_name);
4870 int unmap_event_handler_from_callback_id(
int callback_id,
4871 const char* handler_name,
4872 int unmap_all_matches = 0);
4992 const char* transition_from_action_name,
4993 const char* fill_action_name,
4994 const char* transition_to_action_name);
5019 const char* transition_from_action_name,
5020 const char* fill_action_name,
5021 const char* transition_to_action_name);
5063 int create_and_force_bridge_path(
const char* destination_path_name,
5064 const char* destination_path_action_bead_name,
5065 const char* via_action_name);
5115 int create_and_force_bridge_path_to_point(
float x,
float y,
float z,
5117 const char* via_action_name,
5118 const char* next_local_path = NULL,
5119 float orientation = 0.0f);
5146 int get_num_paths();
5166 const char* get_path_name_at_index(
int index);
5185 int get_current_path_index();
5218 int get_current_traveled_path_is(
const char* path_name);
5239 int push_path(
const char* path_name);
5264 int force_path(
const char* path_name,
5265 float max_rampdown_interval = 0.5f);
5278 int force_partial_path(
const char* path_name,
5279 const char* beginning_action_bead_name,
5280 float max_rampdown_interval = 0.5f);
5316 int resume_interrupted_path(
float max_rampdown_interval = 0.5f);
5341 int use_character_orientation,
5342 float rotation = 0.0f,
5343 int clamp_path = 1);
5359 int set_initial_path(
const char* name);
5373 const char* get_initial_path();
5385 void translate_all_paths(
float tx,
float ty,
float tz,
5386 int reclamp_waypoints = 1);
5404 int rotate_all_paths_about_point(
float rz,
float rx,
float ry,
5405 float rotation_pt_x,
float rotation_pt_y,
float rotation_pt_z,
5406 int reclamp_waypoints = 1);
5423 int rotate_all_paths_about_current_waypoint(
float rz,
float rx,
float ry,
5424 int reclamp_waypoints = 1);
5446 int jump_to_action_bead(
const char* bead_name,
5447 float max_rampdown_interval = 0.5f);
5484 float how_far = 0.0f);
5505 float how_far = 0.0f);
5526 float how_far = 0.0f);
5547 float how_far = 0.0f);
5571 int set_distance_along_path(
float distance);
5583 float get_distance_along_path();
5617 int get_nearest_waypoint_index_in_path(
const char* path_name);
5624 float get_distance_to_path(
const char* path_name,
5625 const char* action_bead_name = NULL);
5660 int get_num_links();
5698 const char* get_link_name_at_index(
int link_index);
5709 int get_num_link_shapes(
const char* link_name);
5721 const char* get_link_shape_name_at_index(
const char* link_name,
5725 void set_link_visibility(
const char* link_or_connection_name,
int visible,
int shape_index = -1);
5728 int get_num_connection_points();
5732 const char * get_connection_point_name_at_index(
int index);
5735 bool get_connection_point_info_at_index(
int index,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5746 bool find_connection_point(
const char* name,
diguyGraphicsLink** link,
float* matrix_offset,
int transpose);
5752 int remove_shape(
const char* shape_name);
5769 int set_link_translation_override(
const char * link_name,
float x,
float y,
float z,
float ramp_time = .25f);
5773 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);
5776 int end_link_translation_override(
const char * link_name,
float ramp_time = .25f);
5779 int set_link_rotation_override(
const char * link_name,
float rz,
float rx,
float ry,
float ramp_time = .25f);
5780 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);
5783 int end_link_rotation_override(
const char * link_name,
float ramp_time = .25f);
5795 int get_num_articulated_parts();
5799 const char * get_articulated_part_link_name(
int index);
5802 int get_articulated_part_id(
int index);
5805 const char * map_articulated_part_id_to_link(
int id);
5830 #ifdef CPLUSPLUS_ONLY
5909 int set_altitude_function_enabled_in_free_position_mode(
int enabled);
5918 int get_altitude_function_enabled_in_free_position_mode();
5944 int set_altitude_function_enabled_in_path_position_mode(
int value);
5953 int get_altitude_function_enabled_in_path_position_mode();
5979 int set_altitude_update_rate(
int update_rate);
5982 int get_altitude_update_rate();
6006 void set_altitude_interpolation_rate(
float interpolation_rate);
6009 float get_altitude_interpolation_rate();
6133 int get_pose_array_size();
6135 #ifdef CPLUSPLUS_ONLY
6168 int get_pose_in_radians(
float* pose_array);
6171 int get_pose_in_quaternions(
float* pose_array);
6219 int get_num_pose_overrides();
6262 void destroy_complete_pose_override();
6303 int gaze_at_angle(
float azimuth,
6306 int is_new_gaze = 1);
6322 int gaze_at_angle_local(
float azimuth,
6324 float distance = 10000.0f,
6325 int is_new_gaze = 1);
6350 int gaze_at_point(
float tx,
6353 int is_new_gaze = 1);
6365 int gaze_at_point_local(
float tx,
6368 int is_new_gaze = 1);
6404 int gaze_at_character(
const char* target_character_name,
6405 const char* target_character_link_name = NULL,
6406 float offset_tx = 0.0f,
6407 float offset_ty = 0.0f,
6408 float offset_tz = 0.0f);
6415 int get_gaze_is_active();
6423 int get_gaze_point(
float* x,
float* y,
float* z);
6450 int get_gaze_is_acquired();
6477 int get_gaze_is_steady();
6514 int lpoint_at_angle(
float azimuth,
6517 int is_new_lpoint = 1,
6518 const char* base_gesture_name = 0);
6530 int lpoint_at_angle_local(
float azimuth,
6532 float distance = 10000.0f,
6533 int is_new_lpoint = 1,
6534 const char* base_gesture_name = 0);
6567 int lpoint_at_point(
float tx,
6570 int is_new_lpoint = 1,
6571 const char* base_gesture_name = 0);
6583 int lpoint_at_point_local(
float tx,
6586 int is_new_lpoint = 1,
6587 const char* base_gesture_name = 0);
6598 int lpoint_at_character(
const char* target_character_name,
6599 const char* target_character_link_name = NULL,
6600 float offset_tx = 0.0f,
6601 float offset_ty = 0.0f,
6602 float offset_tz = 0.0f);
6610 int get_lpoint_point(
float* x,
float* y,
float* z);
6617 const char* get_lpoint_base_gesture_name();
6624 int get_lpoint_is_active();
6634 int get_lpoint_is_acquired();
6644 int get_lpoint_is_steady();
6676 int set_gaze_params_to_defaults();
6707 int set_gaze_param_desired_locate_time(
float t);
6714 float get_gaze_param_desired_locate_time();
6748 int set_gaze_link_uses_desired_locate_time(
const char* link_name,
6749 int uses_desired_locate_time);
6756 int get_gaze_link_uses_desired_locate_time(
const char* link_name);
6783 int set_gaze_link_azimuth_limits(
const char* link_name,
float min,
float max);
6790 int get_gaze_link_azimuth_limits(
const char* link_name,
6819 int set_gaze_link_elevation_limits(
const char* link_name,
6824 int get_gaze_link_elevation_limits(
const char* link_name,
6863 int set_gaze_link_azimuth_tolerance(
const char* link_name,
6868 int get_gaze_link_azimuth_tolerance(
const char* link_name,
6896 int set_gaze_link_elevation_tolerance(
const char* link_name,
6901 int get_gaze_link_elevation_tolerance(
const char* link_name,
6928 int set_gaze_link_max_angular_vel(
const char* link_name,
float angular_vel);
6931 int get_gaze_link_max_angular_vel(
const char* link_name,
float* angular_vel);
6968 int set_gaze_link_scale_factor(
const char* link_name,
float scale_factor);
6971 int get_gaze_link_scale_factor(
const char* link_name,
float* scale_factor);
6997 int set_link_enabled_for_gaze(
const char* link_name,
int enabled);
7000 int get_link_enabled_for_gaze(
const char* link_name);
7018 int set_gaze_can_change_posture(
int enabled);
7021 int get_gaze_can_change_posture();
7039 int set_gaze_can_change_variant(
int enabled);
7042 int get_gaze_can_change_variant();
7068 int set_link_enabled_for_lpoint(
const char* link_name,
int enabled);
7071 int get_link_enabled_for_lpoint(
const char* link_name);
7097 int set_nod(
float azimuth,
7099 float duration = 0.5f);
7145 int nod_head(
float duration,
7147 float nod_elevation0 = 15.0f,
7148 float nod_elevation1 = 0.0f,
7149 float nod_elevation_out = 0.0f);
7177 int shake_head(
float duration,
7179 float shake_azimuth0 = -20.0f,
7180 float shake_azimuth1 = 20.0f,
7181 float shake_azimuth_out = 0.0f);
7189 float get_nod_azimuth();
7197 float get_nod_elevation();
7246 int set_aim(
float azimuth,
float elevation);
7284 int aim_at_angle(
float azimuth,
7287 int is_new_aim = 1);
7304 int aim_at_angle_local(
float azimuth,
7307 int is_new_aim = 1);
7319 int aim_at_angle_with_velocity(
float azimuth,
float elevation,
float az_vel,
float el_vel,
int local,
int is_new_aim = 1);
7345 int aim_at_point(
float x,
float y,
float z,
int is_new_aim = 1);
7358 int aim_at_point_local(
float x,
float y,
float z,
int is_new_aim = 1);
7398 int aim_at_character(
const char* target_character_name,
7399 const char* target_character_link_name = NULL,
7400 float offset_tx = 0.0f,
7401 float offset_ty = 0.0f,
7402 float offset_tz = 0.0f);
7414 const char * get_aim_at_character();
7417 float get_aim_azimuth();
7420 float get_aim_elevation();
7443 int get_aim_trajectory(
float* muzzle_x,
float* muzzle_y,
float* muzzle_z,
7444 float* far_x,
float* far_y,
float* far_z);
7457 int get_aim_is_possible();
7464 int get_aim_is_acquired();
7472 int get_aim_is_steady();
7480 int get_is_aiming();
7522 void set_aim_param_acquire_factor(
float factor);
7529 float get_aim_param_acquire_factor();
7546 void set_aim_param_new_aim_factor(
float factor);
7549 float get_aim_param_new_aim_factor();
7575 void set_aim_param_new_aim_duration(
float duration);
7578 float get_aim_param_new_aim_duration();
7593 void set_aim_param_max_per_frame_adj_factor(
float factor);
7596 float get_aim_param_max_per_frame_adj_factor();
7616 void set_aim_param_azimuth_acquired_range(
float range);
7619 float get_aim_param_azimuth_acquired_range();
7639 void set_aim_param_elevation_acquired_range(
float range);
7642 float get_aim_param_elevation_acquired_range();
7653 void set_aim_converge_every_frame(
int enabled );
7656 int get_aim_converge_every_frame();
7660 int set_aim_variable_interpolation_time(
float time);
7661 float get_aim_variable_interpolation_time();
7667 const char* get_aim_at_link();
7671 int get_aim_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7674 const char* get_gaze_at_link();
7677 int get_gaze_at_link_offset(
float* offset_x,
float* offset_y,
float* offset_z);
7749 int fire_weapon_n_times(
int count,
7751 const char* override_sound_name = NULL,
7769 int fire_screen_space_bullet(
diguyView* view,
float x,
float y);
7797 int set_default_weapon_muzzle(
diguyMuzzle muzzle);
7864 const char* get_weapon_muzzle_munition_type(
diguyMuzzle muzzle);
7867 const char* get_weapon_supplemental_data_name();
7870 const char* get_default_muzzle_munition_type();
7886 int set_weapon_munition_type_override(
const char* munition_type);
7889 const char* get_weapon_munition_type_override();
7912 int set_weapon_fires_live_rounds(
int weapon_fires_live_rounds);
7922 int get_weapon_fires_live_rounds();
7949 int set_weapon_sound_override(
const char* sound_name);
7964 const char* get_weapon_sound_override();
7989 int set_weapon_sound_gain_override(
float gain);
7992 float get_weapon_sound_gain_override();
8016 void set_weapon_spread(
float spread);
8038 void set_weapon_near_range(
float near_range);
8039 float get_weapon_near_range();
8054 void set_weapon_far_range(
float far_range);
8055 float get_weapon_far_range();
8067 void set_weapon_hit_ratio(
float hit_ratio);
8078 void set_weapon_max_impacts(
int val);
8085 int get_accessory1_state();
8092 int get_rifle_state();
8111 int set_weapon_projectile_is_visible(
diguyMuzzle muzzle,
int is_visible);
8127 int get_weapon_projectile_is_visible(
diguyMuzzle muzzle);
8161 int get_weapon_aim_vector(
float* muzzle_tx,
float* muzzle_ty,
float* muzzle_tz,
8162 float* end_pt_tx = NULL,
float* end_pt_ty = NULL,
float* end_pt_tz = NULL,
8163 float* muzzle_rz = NULL,
float* muzzle_rx = NULL,
float* muzzle_ry = NULL,
8164 int in_character_local_coordinates = 0,
8204 float* offset_x = NULL,
8205 float* offset_y = NULL,
8206 float* offset_z = NULL);
8223 int set_weapon_max_azimuth_error(
float h_error);
8226 float get_weapon_max_azimuth_error();
8233 int set_weapon_max_elevation_error(
float v_error);
8236 float get_weapon_max_elevation_error();
8252 int set_weapon_tracers_enabled(
int enabled);
8255 int get_weapon_tracers_enabled();
8262 int get_weapon_rounds_until_tracer(
diguyMuzzle muzzle);
8283 int trigger_detonation_on_character(
const char* munition_name,
8284 const char* attacker_name = NULL,
8285 float radius_override = -1.0f,
8286 int broadcast_on_network = 1);
8343 int set_face_expression(
const char* facex_name,
float blend_duration,
float strength = 1.0f);
8366 int set_orientation_eyes(
float azimuth,
8368 float blend_time = 0.0f);
8378 int get_orientation_eyes(
float* azimuth,
float* elevation);
8396 int set_eye_droop(
float droop_amount,
float blend_time = 0.0f);
8399 float get_eye_droop();
8426 int blink(
float duration_in = 0.1f,
8427 float duration_out = 0.2f,
8428 float target_in = 1.0f,
8429 float target_out = 0.0f,
8466 int set_automatic_blinks_enabled(
int enabled,
8467 float period = 6.0f,
8468 float period_variation = 3.0f);
8471 int get_automatic_blinks_enabled();
8487 void set_automatic_blink_duration_in(
float duration_in);
8490 float get_automatic_blink_duration_in();
8506 void set_automatic_blink_duration_out(
float duration_out);
8509 float get_automatic_blink_duration_out();
8525 void set_automatic_blink_target_in(
float target_in);
8528 float get_automatic_blink_target_in();
8544 void set_automatic_blink_target_out(
float target_out);
8547 float get_automatic_blink_target_out();
8565 int set_current_facefx_animation_group(
const char* anim_group);
8572 const char* get_current_facefx_animation_group();
8580 const char* get_facefx_actor();
8588 int facefx_mount_animset(
const char* file_name);
8598 int play_facefx_animation(
const char* animation,
8599 float magnitude_scale = 1.0f,
8600 float duration_scale = 1.0f,
8601 float blendin_time = 0.1f,
8602 float blendout_time = 0.1f,
8610 int stop_facefx_animations(
float blend_time = 0.25f,
int stop_sounds = 1);
8622 int get_num_facefx_nodes();
8630 const char* get_facefx_node_name(
int index);
8637 int find_facefx_node_index(
const char* node_name);
8646 int set_facefx_node_value(
int node_index,
8648 float blend_time = 0.25f);
8655 float get_facefx_node_value(
int node_index);
8790 int execute_gesture(
const char* gesture_name,
8837 int execute_1stage_gesture(
const char* gesture_name,
8880 int execute_2stage_gesture(
const char* gesture_name,
8931 int execute_3stage_gesture(
const char* gesture_name,
8980 int execute_table_gesture(
const char* gesture_name,
8982 const char* loop_action = NULL,
8983 const char* begin_action = NULL,
8984 const char* end_action = NULL);
9001 int set_executing_table_gesture_desired_action(
const char* gesture_name,
9002 const char* desired_action);
9026 int end_executing_gesture(
const char* gesture_name);
9058 int abort_executing_gesture(
const char* gesture_name,
9059 float max_rampdown_interval = .5f);
9079 int end_all_gestures();
9109 int abort_all_gestures(
float max_rampdown_interval);
9177 int play_sound(
const char* sound_name,
9178 float sound_gain = 1.0f,
9179 int sound_loops = 0);
9218 int play_3d_sound(
const char* sound_name,
9219 float sound_gain = 1.0f,
9220 int sound_loops = 0);
9296 int stop_all_sounds(
float rampdown_time = 0.0f);
9323 int stop_sound(
const char* sound_name,
float rampdown_time = 0.0f);
9330 int is_playing_sound(
const char* sound_name);
9401 int set_current_voice_actor(
const char* voice_actor);
9404 const char* get_current_voice_actor();
9476 int get_DIS_lifeform_state();
9497 int get_DIS_primary_weapon_position();
9518 int get_DIS_secondary_weapon_position();
9539 int set_network_marking(
const char* network_marking);
9561 const char* get_network_marking();
9585 int set_is_network_published(
int is_network_published);
9607 int get_is_network_published();
9616 DtEntityStateRepository * get_vrlink_entity_state_repository();
9637 int get_is_network_reflected();
9662 int get_is_network_paused();
9670 int set_is_network_paused(
int paused);
9691 int get_network_entity_number();
9753 const char* get_action_from_entity_state(
int damage_state,
9754 int life_form_state,
9755 int primary_weapon_state,
9780 void set_DIS_damage_state(
int state);
9784 int get_DIS_damage_state();
9792 const char * get_damage_state_appearance_name(
int state);
9816 void set_DIS_smoke_state(
int state);
9820 int get_DIS_smoke_state();
9841 void set_DIS_flames_state(
int state);
9845 int get_DIS_flames_state();
9866 void set_DIS_power_plant_state(
int state);
9870 int get_DIS_power_plant_state();
9874 void set_emissivity(
float r,
float g,
float b,
float lerp_time = .25);
9878 void get_emissivity(
float *r,
float *g,
float *b);
9900 void set_DIS_trailing_effect_state(
int state);
9904 int get_DIS_trailing_effect_state();
9907 void set_DIS_station_name(
int name);
9908 int get_DIS_station_name()
const;
9911 void set_DIS_station_number(
int number);
9912 int get_DIS_station_number()
const;
9916 void set_head_lights_state(
int state);
9919 int get_head_lights_state()
const;
9922 void set_tail_lights_state(
int state);
9925 int get_tail_lights_state()
const;
9967 int call_formation(
const char* formation_name,
9968 int snap_to_position_flag = 0,
9969 int break_existing_formations_flag = 1);
9988 int break_formation(
const char* formation_name = NULL);
10029 int automatically_disable_when_acquired = 0);
10057 const char* guide_algorithm,
10058 int automatically_disable_when_acquired = 0);
10079 const char* guide_algorithm,
10080 int automatically_disable_when_acquired = 0);
10114 int remove_guide_with_name(
const char* guide_name);
10141 int remove_all_guides();
10152 int remove_all_disabled_guides();
10202 int add_motion_texture(
const char* motex_name =
"default",
10203 float texture_gain = 1.0f,
10204 int end_previous_motex = 1,
10205 float rampup_interval = 0.2f);
10222 int end_motion_texture(
float rampdown_interval = 0.2f);
10247 int set_initial_motion_texture(
const char* motex_name);
10259 const char* get_initial_motion_texture();
10277 int set_initial_motion_texture_gain(
float motex_gain);
10289 float get_initial_motion_texture_gain();
10379 int set_history_size_t(
float t);
10391 float get_history_size_t();
10407 int set_history_size_increment_t(
float t);
10419 float get_history_size_increment_t();
10658 int match_posture_before_variant = 1,
10663 int return_random_match = 0);
10732 int match_posture_before_variant = 1,
10754 int get_num_variables();
10827 int variable_equal_to_int(
const char* varname,
int value);
10842 int variable_greater_than_int(
const char* varname,
int value);
10857 int variable_less_than_int(
const char* varname,
int value);
10872 int variable_equal_to_float(
const char* varname,
float value);
10887 int variable_greater_than_float(
const char* varname,
float value);
10902 int variable_less_than_float(
const char* varname,
float value);
10917 int variable_equal_to_string(
const char* varname,
const char* value);
10932 int variable_greater_than_string(
const char* varname,
const char* value);
10947 int variable_less_than_string(
const char* varname,
const char* value);
10965 int variable_decrement_value_as_int(
const char* varname,
int value = 1);
10983 int variable_increment_value_as_int(
const char* varname,
int value = 1);
11005 int variable_set_value_as_int(
const char* varname,
11007 int create_if_doesnt_exist = 1);
11014 int set_ivar(
const char* varname,
11016 int create_if_doesnt_exist = 1);
11038 int get_ivar(
const char* varname,
11039 int create_if_doesnt_exist = 1);
11047 int variable_set_value_as_float(
const char* varname,
11049 int create_if_doesnt_exist = 1);
11056 int set_fvar(
const char* varname,
11058 int create_if_doesnt_exist = 1);
11069 float get_fvar(
const char* varname,
11070 int create_if_doesnt_exist = 1);
11078 int variable_set_value_as_string(
const char* varname,
11080 int create_if_doesnt_exist = 1);
11087 int set_svar(
const char* varname,
11089 int create_if_doesnt_exist = 1);
11100 const char* get_svar(
const char* varname,
11101 int create_if_doesnt_exist = 1);
11149 int set_label_text(
const char* label_text);
11161 const char* get_label_text();
11181 int set_label_is_visible(
int is_visible);
11193 int get_label_is_visible();
11216 int set_label_text_color(
float r,
float g,
float b,
float a);
11223 int set_label_text_color_vec4(
const diguyVec4f & color);
11235 int get_label_text_color(
float* r,
float* g,
float* b,
float* a);
11265 int set_label_text_shadow_color(
float r,
float g,
float b,
float a);
11272 int set_label_text_shadow_color_vec4(
const diguyVec4f & color);
11284 int get_label_text_shadow_color(
float* r,
float* g,
float* b,
float* a);
11291 diguyVec4f get_label_text_shadow_color_vec4();
11306 int set_label_text_shadow_is_visible(
int is_visible);
11313 int get_label_text_shadow_is_visible();
11337 int set_label_background_color(
float r,
float g,
float b,
float a);
11344 int set_label_background_color_vec4(
const diguyVec4f & color);
11356 int get_label_background_color(
float* r,
float* g,
float* b,
float* a);
11363 diguyVec4f get_label_background_color_vec4();
11375 void set_label_link_offset_override(
float offset);
11382 float get_label_link_offset_override();
11399 int set_label_shows_character_state(
int show_state);
11407 int get_label_shows_character_state();
11436 int get_last_impact_number();
11443 int get_last_impact_been_processed();
11450 void set_last_impact_been_processed();
11464 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
11471 int get_max_unprocessed_impacts();
11478 const char* get_last_impact_link();
11485 int get_last_impact_link_is(
const char* link_name);
11493 int get_last_impact_is_from_vehicle();
11501 int get_last_impact_speed_is_greater_than(
float impact_speed);
11509 void set_is_immune_to_impacts(
int immune);
11517 int get_is_immune_to_impacts();
11583 int begin_appearance_effect(
const char* effect,
11584 const char* override_link = NULL,
11617 int end_appearance_effect(
const char* effect,
11618 const char* override_link = NULL);
11646 int stop_appearance_effect(
const char* effect,
11647 const char* override_link = NULL);
11654 int stop_all_appearance_effects();
11671 int appearance_effect_is_active(
const char* effect,
11672 const char* override_link = NULL);
11755 int get_vehicle_body_orientation(
float* rz,
float* rx,
float* ry);
11808 int set_render_mode_shader(
const char* shader_name,
11809 const char* render_mode = NULL);
11830 void reset_render_mode_shader_to_default(
const char* render_mode = NULL);
11848 const char* get_render_mode_shader(
const char* render_mode = NULL);
11898 int set_temporary_current_shader(
const char* shader_name);
11910 void reset_current_shader_to_default();
11919 void trigger_shader_refresh();
11945 void reset_shader_instance_variables_to_initial_values();
11953 void reset_shader_instance_variables_to_program_defaults();
12007 int agent_attack_character(
const char* character_name);
12036 int agent_attack_group(
const char* group_name);
12043 int agent_set_attack_zone_enabled(
int use_attack_zone);
12050 int agent_get_attack_zone_enabled();
12057 int agent_set_attack_zone(
float x,
float y,
float z,
float radius);
12064 int agent_get_attack_zone(
float* x,
float* y,
float* z,
float* radius);
12104 int agent_flee_character(
const char* character_name,
12106 int danger_level = 50);
12137 int agent_flee_group(
const char* group_name,
12139 int danger_level = 50);
12148 int agent_flee_crowd(
const char* crowd_name,
12150 int danger_level = 50);
12182 int agent_flee_location(
float x,
float y,
float z,
12184 int danger_level = 50);
12199 void agent_remove_all_flee_objects();
12240 int agent_mingle_in_region(
const char* region_name =
"(current)",
12241 const char* subregion_name =
"base");
12266 int agent_wander_region(
const char* region_name =
"(current)",
12267 const char* subregion_name =
"base");
12306 int agent_pursue_character(
const char* character_name);
12315 int agent_pursue_character_with_offset(
const char* character_name,
12346 int agent_pursue_group(
const char* group_name);
12358 int agent_call_formation(
const char* formation_name,
12398 int agent_travel_behavior_path(
const char* direction = NULL,
12399 const char* at_end = NULL,
12400 int waypoint_index = -1,
12401 float offset_y = 0.5f);
12409 int agent_travel_path_shape(
const char* path_shape_name,
12410 const char* direction = NULL,
12411 const char* at_end = NULL,
12412 int waypoint_index = -1,
12413 float offset_y = 0.5f);
12434 int agent_travel_region_border(
const char* region_name = NULL,
12435 const char* subregion_name =
"base");
12461 int agent_move_to_point(
float x,
float y,
float z,
12462 const char* via_region = NULL,
12463 const char* subregion_name =
"base");
12485 int agent_move_to_point_bg(
float x,
float y,
float z,
12486 const char* via_region = NULL,
12487 const char* subregion_name =
"base");
12554 int agent_move_to_point_via_subregions(
float x,
float y,
float z,
12555 const char* via_region = NULL,
12557 float cost_bias_for_preferred_regions = 0.25f,
12558 float cost_bias_for_neutral_regions = 1.1f,
12560 float cost_bias_for_repulsed_regions = 10.0f,
12561 int cost_rule = 0);
12581 int agent_move_to_point_via_subregions_bg(
float x,
float y,
float z,
12582 const char* via_region = NULL,
12584 float cost_bias_for_preferred_regions = 0.25f,
12585 float cost_bias_for_neutral_regions = 1.1f,
12587 float cost_bias_for_repulsed_regions = 10.0f,
12588 int cost_rule = 0);
12597 int get_path_planning_result();
12605 int get_is_path_planning();
12627 int agent_move_to_region(
const char* region,
12628 const char* subregion_name =
"base",
12629 const char* via_region = NULL);
12653 int agent_move_to_region_via_subregions(
const char* region_name,
12654 const char* subregion_name =
"base",
12655 const char* via_region = NULL,
12656 float cost_bias_for_preferred_regions = 0.25f,
12658 float cost_bias_for_neutral_regions = 1.1f,
12660 float cost_bias_for_repulsed_regions = 10.0f);
12696 int agent_path_follow(
const char* path_name);
12711 int agent_resume_path_follow();
12745 float agent_get_path_follow_path_t();
12752 int agent_get_path_follow_path_t_paused();
12779 int agent_begin_behavior(
const char* behavior_name);
12786 int agent_stop_behavior();
12814 int agent_set_current_focus_character(
const char* character_name);
12854 int agent_set_current_focus_group(
const char* group_name);
12908 const char* agent_get_current_params_profile_name();
12942 int agent_set_current_params_from_profile(
const char* profile_name,
12943 int retain_focus_objects = 1,
12944 int retain_navigation_values = 1,
12945 int retain_behavior = 0);
12953 int agent_set_initial_params_from_profile(
const char* profile_name);
12961 void agent_set_current_params_from_initial_params();
12982 void agent_set_current_behavior_region_border_is_solid(
int is_solid);
12993 void agent_move_on();
13006 int agent_set_auto_variant_selection(
int selection_enabled);
13013 int agent_get_auto_variant_selection();
13035 void agent_set_use_speed_zones_on_paths(
int enabled);
13042 int agent_get_use_speed_zones_on_paths();
13044 #ifdef CPLUSPLUS_ONLY
13159 int create_lua_mind(
const char* base_class,
const char* init_arg1 = NULL,
13160 const char* init_arg2 = NULL);
13168 const char *get_mind_name();
13183 const char* get_mind_current_state_name();
13195 void do_mind_current_state_changed_callback();
13209 int set_sleep_timer(
float sleep_length);
13217 float get_sleep_timer();
13230 int set_heartbeat_dt(
float heartbeat_dt);
13249 int add_secondary_heartbeat(
const char* function_name,
13250 float heartbeat_dt);
13267 int remove_secondary_heartbeat(
const char* function_name);
13285 int set_secondary_heartbeat_dt(
const char* function_name,
float heartbeat_dt);
13321 int add_wakeup_callback(
int callback);
13338 int remove_wakeup_callback(
int callback);
13350 int remove_all_wakeup_callbacks();
13362 int has_wakeup_callback(
int callback);
13381 int agent_accept_message(
const char* sender,
13382 const char* message_type,
13383 const char* message,
13384 const char* message_params = NULL);
13407 int agent_broadcast_message(
float radius,
13408 const char* message_type,
13409 const char* message,
13410 const char* message_params = NULL);
13435 int agent_broadcast_message_to_group(
const char* group_name,
13437 const char* message_type,
13438 const char* message,
13439 const char* message_params = NULL);
13448 const char* get_lua_object_name();
13455 void set_mind_field_as_string(
const char* field_name,
13456 const char* field_value);
13473 const char* get_mind_field_as_string(
const char* field_name,
13474 int warn_if_no_field = 1);
13482 void set_mind_field_as_float(
const char* field_name,
float field_value);
13494 float get_mind_field_as_float(
const char* field_name,
13495 int warn_if_no_field = 1,
13496 int* found_field = NULL);
13504 void set_mind_field_as_int(
const char* field_name,
int field_value);
13516 int get_mind_field_as_int(
const char* field_name,
13517 int warn_if_no_field = 1,
13518 int* found_field = NULL);
13545 const char* evaluate_mind_function(
const char* function_name,
13546 const char* argument = NULL,
13547 int has_return_string = 0);
13570 const char* get_ai_state_string(
int include_stack = 1,
int include_locals = 1);
13615 int los_check_type = 0);
13639 int check_point_visibility(
float x,
float y,
float z);
13660 #ifdef CPLUSPLUS_ONLY
13781 int get_num_ik_chains();
13785 const char * get_ik_chain_name_at_index(
int index);
13798 int set_ik_target_world(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13811 int set_ik_target_local(
int ik_chain_target,
float x,
float y,
float z,
float ramp_time = .25f);
13825 int set_ik_target_character(
int ik_chain_target,
diguyCharacter * target,
const char * link_name,
float ramp_time = .25f);
13830 int disable_ik_target(
int ik_chain_target,
float ramp_time = .25f);
13837 void set_distance_to_primary_camera(
float camera_dist);
13840 float get_distance_to_primary_camera();
14043 void set_stop_physics_sim_at_t(
float t);
14052 void set_stop_physics_sim_in_t_seconds(
float relative_t);
14059 float get_stop_physics_sim_at_t();
14077 void apply_impulse_to_physics_sim(
const char* link,
14078 float impulse_magnitude_x,
14079 float impulse_magnitude_y,
14080 float impulse_magnitude_z,
14081 float link_offset_x = 0.0f,
14082 float link_offset_y = 0.0f,
14083 float link_offset_z = 0.0f,
14084 int set_simulation_drives_character = 1);
14110 void apply_impulse_to_physics_sim_from_world_position(
const char* link,
14111 float impulse_magnitude_x,
14112 float impulse_magnitude_y,
14113 float impulse_magnitude_z,
14114 float impulse_generator_position_x,
14115 float impulse_generator_position_y,
14116 float impulse_generator_position_z,
14117 float max_distance = 20.0f,
14118 float impulse_rolloff = 0.0f,
14119 float link_offset_x = 0.0f,
14120 float link_offset_y = 0.0f,
14121 float link_offset_z = 0.0f,
14122 int set_simulation_drives_character = 1);
14153 static int set_max_shader_quality_level(
int quality_level);
14156 static int get_max_shader_quality_level();
14172 int set_animation_events_enabled(
int enable);
14173 int get_animation_events_enabled();
14192 int get_action_num_channels(
const char* action_name);
14214 int set_action_channel_weight(
const char* action_name,
14233 float get_action_channel_weight(
const char* action_name,
14249 float get_time_to_reach_desired_action();
14272 const char* get_type_map_field_using_string(
const char* field);
14276 float get_normalized_age()
const;
14300 int merge_object(
const char*
object);
14313 int is_active_character_in_group_visible(
const char* group_name,
14314 float max_distance_to_check = 100000.0f);
14331 int get_local_space_bounding_box(
float* x1,
float* y1,
float* z1,
14332 float* x2,
float* y2,
float* z2);
14344 void set_mind_always_updates(
int force_update);
14347 int get_mind_always_updates();
14353 float get_angle_to_path(
const char* path_name,
14354 const char* action_bead_name = NULL);
14359 void set_scene_graph_mask(
unsigned int mask);
14362 unsigned int get_scene_graph_mask();
14379 int set_local_to_world_orientation_matrix(
float rz,
float rx,
float ry);
14381 int set_local_to_world_orientation_matrix(
14382 float a0,
float a1,
float a2,
14383 float b0,
float b1,
float b2,
14384 float c0,
float c1,
float c2,
int transpose = 0);
14386 #ifdef CPLUSPLUS_ONLY
14387 const float * get_local_to_world_orientation_matrix();
14390 int set_current_IK_world_conversion_matrix(
14391 float a0,
float a1,
float a2,
14392 float b0,
float b1,
float b2,
14393 float c0,
float c1,
float c2,
int transpose = 0);
14395 void set_IK_use_vrv_swizzle(
bool);
14400 int set_always_update_regardless_of_dt(
int val);
14402 int get_always_update_regardless_of_dt();
14404 void set_shader_matrixes_out_of_date();
14406 void draw_debugging_visuals();
14426 int aim_converge(
int max_iterations = 30);
14429 void set_aim_algorithm(
int aim_algorithm);
14432 int get_aim_algorithm();
14566 #ifdef CPLUSPLUS_ONLY
14568 bdiScenarioCharacter* get_scripted_object();
14584 bdiScenarioCharacter* m_scripted_object;
14586 friend class bdiPublishedCharacter;
14587 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:39
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:41
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:11
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:82
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
4 Header files and forward declarations
Definition: simple_playback_ogl.cpp:56
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:47
A class that allows end users to override a character's animation on a joint level.
Definition: diguyCharacterPoseOverride.h:37
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h: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:43
A bead that sits on a character's spline path and triggers a new script evaluation.
Definition: diguyCharacterPathScriptBead.h:34
Definition: diguySoundInstance.h:29
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:47
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