33 #ifndef __diguyViewCamera_H
34 #define __diguyViewCamera_H
39 #define CPLUSPLUS_ONLY
82 const char* get_name();
94 const char* get_type_name();
105 void set_near_plane(
float near_plane);
112 float get_near_plane();
123 void set_far_plane(
float far_plane);
130 float get_far_plane();
141 void set_fov(
float fov);
153 void set_max_fov(
float fov);
165 void set_min_fov(
float fov);
197 void set_aspect(
float aspect);
215 void set_position(
float x,
float y,
float z);
222 float get_position_x();
229 float get_position_y();
236 float get_position_z();
248 void set_desired_position(
float x,
float y,
float z,
bool preserve_fix =
false);
264 void set_orientation(
float yaw,
float roll,
float pitch);
275 void set_orientation_roll(
float roll);
282 float get_orientation_yaw();
289 float get_orientation_roll();
296 float get_orientation_pitch();
310 void set_pitch_lower_limit(
float limit);
317 float get_pitch_lower_limit();
331 void set_pitch_upper_limit(
float limit);
338 float get_pitch_upper_limit();
345 int get_pitch_has_limits();
357 void set_distance(
float distance);
369 void set_max_track_distance(
float distance);
381 void set_min_track_distance(
float distance);
388 float get_distance();
396 float get_min_track_distance();
404 float get_max_track_distance();
416 void set_fix(
float x,
float y,
float z);
449 void set_desired_fix(
float x,
float y,
float z);
506 int set_speed(
float speed);
526 int increase_speed();
539 int decrease_speed();
596 int load_settings(
const char* settings_name);
624 void apply_settings();
717 void set_position_double(
double x,
double y,
double z);
733 void get_position_double(
double* x,
double* y,
double* z);
752 void get_segment_origin(
float* x,
float* y,
float* z);
767 void get_position_segment_offset(
float* x,
float* y,
float* z);
782 void get_fix_segment_offset(
float* x,
float* y,
float* z);
798 void set_fix_double(
double x,
double y,
double z);
852 void set_track_name(
const char* track_name);
859 const char* get_track_name();
871 void set_track_group_name(
const char* track_name);
878 const char* get_track_group_name();
892 void set_track_link_name(
const char* track_link_name);
899 const char* get_track_link_name();
916 void set_track_offset(
float x,
float y,
float z);
923 float get_track_offset_x();
930 float get_track_offset_y();
937 float get_track_offset_z();
952 void set_track_offset_is_in_world_coordinates(
int value);
959 int get_track_offset_is_in_world_coordinates();
973 void set_dolly_name(
const char* dolly_name);
987 const char* get_dolly_name();
1004 void set_dolly_offset(
float x,
float y,
float z);
1011 float get_dolly_offset_x();
1018 float get_dolly_offset_y();
1025 float get_dolly_offset_z();
1038 void set_dolly_link_name(
const char* dolly_link_name);
1045 const char* get_dolly_link_name();
1060 void set_dolly_offset_is_in_world_coordinates(
int value);
1068 int get_dolly_offset_is_in_world_coordinates();
1076 int get_symbolic_view();
1098 CALLBACK_ID_SETTINGS_CHANGED = 1
1101 #ifdef CPLUSPLUS_ONLY
1140 int add_callback(
int callback_id,
1142 void* callback_params = 0,
1143 void* callback_user_data = 0);
1161 int remove_callback(
int callback_id,
1180 int remove_callback_with_user_data(
int callback_id,
1181 void* callback_user_data);
1218 int add_callback_script(
int callback_id,
1219 const char* callback_script,
1220 const char* callback_script_type = NULL);
1251 int remove_callback_script(
int callback_id,
1252 const char* callback_script,
1253 const char* callback_script_type = NULL);
1285 void set_speed_fov_degrees_per_wheel_click(
float fov_change);
1297 float get_speed_fov_degrees_per_wheel_click();
1308 void set_speed_meters_per_second(
float speed);
1319 float get_speed_meters_per_second();
1331 void set_require_smooth_servo(
int require);
1343 int get_require_smooth_servo();
1356 void set_servo_time_modifier(
float modifier );
1364 float get_servo_time_modifier();
1376 void set_track_camera_avoids_obstacles(
int avoid);
1389 int get_track_camera_avoids_obstacles();
1401 void set_ignore_mouse_drags(
int ignore);
1412 int get_ignore_mouse_drags();
1414 #ifdef CPLUSPLUS_ONLY
1425 void update_frustum(
float* proj_matrix,
float* model_matrix);
1433 #ifdef CPLUSPLUS_ONLY
1435 bdiCamera* get_scripted_object() {
return m_camera;}
1447 bdiCamera* m_camera;
1449 friend class bdiCamera;