13 #ifndef __diguyViewCamera_H
14 #define __diguyViewCamera_H
19 #define CPLUSPLUS_ONLY
62 const char* get_name();
74 const char* get_type_name();
85 void set_near_plane(
float near_plane);
92 float get_near_plane();
103 void set_far_plane(
float far_plane);
110 float get_far_plane();
121 void set_fov(
float fov);
133 void set_max_fov(
float fov);
145 void set_min_fov(
float fov);
177 void set_aspect(
float aspect);
195 void set_position(
float x,
float y,
float z);
202 float get_position_x();
209 float get_position_y();
216 float get_position_z();
228 void set_desired_position(
float x,
float y,
float z,
bool preserve_fix =
false);
244 void set_orientation(
float yaw,
float roll,
float pitch);
255 void set_orientation_roll(
float roll);
262 float get_orientation_yaw();
269 float get_orientation_roll();
276 float get_orientation_pitch();
290 void set_pitch_lower_limit(
float limit);
297 float get_pitch_lower_limit();
311 void set_pitch_upper_limit(
float limit);
318 float get_pitch_upper_limit();
325 int get_pitch_has_limits();
337 void set_distance(
float distance);
349 void set_max_track_distance(
float distance);
361 void set_min_track_distance(
float distance);
368 float get_distance();
376 float get_min_track_distance();
384 float get_max_track_distance();
396 void set_fix(
float x,
float y,
float z);
429 void set_desired_fix(
float x,
float y,
float z);
486 int set_speed(
float speed);
506 int increase_speed();
519 int decrease_speed();
576 int load_settings(
const char* settings_name);
604 void apply_settings();
697 void set_position_double(
double x,
double y,
double z);
713 void get_position_double(
double* x,
double* y,
double* z);
732 void get_segment_origin(
float* x,
float* y,
float* z);
747 void get_position_segment_offset(
float* x,
float* y,
float* z);
762 void get_fix_segment_offset(
float* x,
float* y,
float* z);
778 void set_fix_double(
double x,
double y,
double z);
832 void set_track_name(
const char* track_name);
839 const char* get_track_name();
851 void set_track_group_name(
const char* track_name);
858 const char* get_track_group_name();
872 void set_track_link_name(
const char* track_link_name);
879 const char* get_track_link_name();
896 void set_track_offset(
float x,
float y,
float z);
903 float get_track_offset_x();
910 float get_track_offset_y();
917 float get_track_offset_z();
932 void set_track_offset_is_in_world_coordinates(
int value);
939 int get_track_offset_is_in_world_coordinates();
953 void set_dolly_name(
const char* dolly_name);
967 const char* get_dolly_name();
984 void set_dolly_offset(
float x,
float y,
float z);
991 float get_dolly_offset_x();
998 float get_dolly_offset_y();
1005 float get_dolly_offset_z();
1018 void set_dolly_link_name(
const char* dolly_link_name);
1025 const char* get_dolly_link_name();
1040 void set_dolly_offset_is_in_world_coordinates(
int value);
1048 int get_dolly_offset_is_in_world_coordinates();
1056 int get_symbolic_view();
1078 CALLBACK_ID_SETTINGS_CHANGED = 1
1081 #ifdef CPLUSPLUS_ONLY
1120 int add_callback(
int callback_id,
1122 void* callback_params = 0,
1123 void* callback_user_data = 0);
1141 int remove_callback(
int callback_id,
1160 int remove_callback_with_user_data(
int callback_id,
1161 void* callback_user_data);
1198 int add_callback_script(
int callback_id,
1199 const char* callback_script,
1200 const char* callback_script_type = NULL);
1231 int remove_callback_script(
int callback_id,
1232 const char* callback_script,
1233 const char* callback_script_type = NULL);
1265 void set_speed_fov_degrees_per_wheel_click(
float fov_change);
1277 float get_speed_fov_degrees_per_wheel_click();
1288 void set_speed_meters_per_second(
float speed);
1299 float get_speed_meters_per_second();
1311 void set_require_smooth_servo(
int require);
1323 int get_require_smooth_servo();
1336 void set_servo_time_modifier(
float modifier );
1344 float get_servo_time_modifier();
1356 void set_track_camera_avoids_obstacles(
int avoid);
1369 int get_track_camera_avoids_obstacles();
1381 void set_ignore_mouse_drags(
int ignore);
1392 int get_ignore_mouse_drags();
1394 #ifdef CPLUSPLUS_ONLY
1405 void update_frustum(
float* proj_matrix,
float* model_matrix);
1413 #ifdef CPLUSPLUS_ONLY
1415 bdiCamera* get_scripted_object() {
return m_camera;}
1427 bdiCamera* m_camera;
1429 friend class bdiCamera;