14 #ifndef __diguyGraphicsLink_H
15 #define __diguyGraphicsLink_H
20 #define CPLUSPLUS_ONLY
66 const char* get_name();
106 int get_num_shapes();
181 int get_offset_translation(
float* tx,
float* ty,
float* tz);
203 int get_offset_rotation(
float* rz,
float* rx,
float* ry);
230 int get_translation(
float* tx,
float* ty,
float* tz);
253 int get_translation_double(
double* tx,
double* ty,
double* tz);
273 int get_translation_is_static();
288 const char* get_var_name_tx();
303 const char* get_var_name_ty();
318 const char* get_var_name_tz();
341 int get_rotation(
float* rz,
float* rx,
float* ry);
364 int get_rotation_euler(
float* rz,
float* rx,
float* ry);
387 int get_rotation_quat(
float* qx,
float* qy,
float* qz,
float* qw);
406 int get_rotation_is_static();
417 const char* get_var_name_rz();
428 const char* get_var_name_rx();
439 const char* get_var_name_ry();
462 int get_scale(
float* sz,
float* sx,
float* sy);
481 int get_scale_is_static();
492 const char* get_var_name_sx();
503 const char* get_var_name_sy();
514 const char* get_var_name_sz();
564 int get_is_position_link();
576 int get_num_child_links();
604 #ifdef CPLUSPLUS_ONLY
629 int get_transformation_matrix(
float matrix_array[4][4],
int transpose = 0);
638 int get_transformation_matrix_4x4_ptr(
float* matrix,
int transpose = 0);
664 int get_local_transformation_matrix(
float matrix_array[4][4],
int transpose = 0);
673 int get_local_transformation_matrix_4x4_ptr(
float* matrix,
int transpose = 0);
700 int get_link_transformation_matrix(
float matrix_array[4][4],
int transpose = 0);
709 int get_link_transformation_matrix_4x4_ptr(
float* matrix,
int transpose = 0);
715 #ifdef CPLUSPLUS_ONLY
749 const float* get_data_ptr();
765 const float* get_quat_data_ptr();
792 int get_translation_data_index();
817 int get_rotation_data_index();
845 int get_quat_data_index();
870 int get_scale_data_index();
890 int get_unique_color(
unsigned char* r,
907 #ifdef CPLUSPLUS_ONLY
957 virtual void build();
983 virtual void post_build();
1010 virtual void unbuild();
1036 virtual void attach_to_scene();
1059 virtual void detach_from_scene();
1079 virtual void instancing_state_changed(
int instanced);
1109 virtual void update();
1133 virtual void push();
1180 virtual void draw();
1242 virtual void begin_character_draw();
1266 virtual void end_character_draw();
1298 static void set_use_linear_traversal_draw(
int mode);
1305 static int get_use_linear_traversal_draw();
1320 int get_inverse_rotation_matrix(
float matrix_array[4][4],
int transpose = 0,
1321 int include_translation = 1);
1324 int get_inverse_rotation_matrix_4x4_ptr(
float* matrix_array,
int transpose = 0,
1325 int include_translation = 1);
1350 int get_is_base_link();
1357 int get_shader_matrix_index();
1367 #ifdef CPLUSPLUS_ONLY
1369 bdiLink* get_scripted_object() {
return m_scripted_object;}
1390 bdiLink* m_scripted_object;
1392 friend class bdiLink;
1393 friend class bdiGraphicsFactory;