38 #ifndef AMINO_RX_SCENE_GL_H 
   39 #define AMINO_RX_SCENE_GL_H 
   99     const struct aa_gl_globals *globals,
 
  100     size_t n_TF, 
const double *TF_abs, 
size_t ld_TF);
 
  107                   GLfloat M[AA_RESTRICT 16] );
 
  114                    GLfloat M[AA_RESTRICT 16] );
 
  122                        double znear, 
double zfar,
 
  129     GLenum shader_type, 
const char* source );
 
  148 AA_API struct aa_gl_globals *
 
  163     struct aa_gl_globals *globals,
 
  164     const double world_E_camera[7]);
 
  171     struct aa_gl_globals *globals,
 
  172     const double world_E_camera_home[7]);
 
  179     struct aa_gl_globals *globals );
 
  186     struct aa_gl_globals *globals,
 
  187     const double world_v_light[3]);
 
  194     struct aa_gl_globals *globals,
 
  202     struct aa_gl_globals *globals,
 
  213     struct aa_gl_globals *globals,
 
  214     const double color[3] );
 
  221     struct aa_gl_globals *globals,
 
  229     struct aa_gl_globals *globals,
 
  230     const double ambient[3] );
 
  237     struct aa_gl_globals *globals,
 
  245     struct aa_gl_globals *globals,
 
  246     int show_collision );
 
  273 struct aa_sg_gl_buffers;
 
  282 struct aa_gl_buffers;
 
AA_API void aa_gl_globals_set_camera(struct aa_gl_globals *globals, const double world_E_camera[7])
Set the camera transform. 
AA_API GLuint aa_gl_create_program(GLuint vert_shader, GLuint frag_shader)
Create a GLSL program and attach shaders. 
AA_API void aa_gl_globals_set_light_color(struct aa_gl_globals *globals, const double color[3])
Set the color of the light. 
AA_API void aa_gl_mat_perspective(double fovy, double aspect, double znear, double zfar, GLfloat M[16])
Create a OpenGL matrix for a perspective transform. 
Container for scene geometry. 
AA_API void aa_gl_qutr2glmat(const double E[AA_RESTRICT 7], GLfloat M[AA_RESTRICT 16])
Convert a quaternion-translation to an OpenGL matrix. 
AA_API void aa_gl_globals_set_show_collision(struct aa_gl_globals *globals, int show_collision)
Set flag to enable render of collision geometry. 
AA_API void aa_gl_globals_unmask_all(struct aa_gl_globals *globals)
Set the display mask value of all frames to false. 
AA_API const char * aa_gl_error_string(GLenum error)
Return a string describing the error. 
AA_API void aa_gl_globals_destroy(struct aa_gl_globals *globals)
Destroy a aa_gl_globals struct. 
AA_API void aa_geom_gl_buffers_init(struct aa_rx_geom *geom)
Initialize OpenGL buffers for geometry object. 
AA_API void aa_rx_sg_gl_init(struct aa_rx_sg *sg)
Initialize OpenGL objects in scene graph. 
AA_API void aa_gl_globals_set_light_power(struct aa_gl_globals *globals, double power)
Set the power (intensity) of the light. 
AA_API void aa_gl_globals_home_camera(struct aa_gl_globals *globals)
Set the camera transform to its "home" value. 
AA_API void aa_gl_globals_set_show_visual(struct aa_gl_globals *globals, int show_visual)
Set flag to enable render of visual geometry. 
AA_API void aa_gl_globals_set_light_position(struct aa_gl_globals *globals, const double world_v_light[3])
Set the position of the light. 
Opaque type for a scene_graph. 
AA_API GLuint aa_gl_create_shader(GLenum shader_type, const char *source)
Compile a shader from a text string. 
AA_API int aa_gl_globals_is_masked(const struct aa_gl_globals *globals, size_t i)
Return the display mask value of the i'th frame. 
AA_API void aa_gl_init()
Initialize GL engine. 
#define AA_RESTRICT
Defined restrict keyword based on language flavor. 
AA_API struct aa_gl_globals * aa_gl_globals_create()
Container for globals rendering info (Forward declaration) 
AA_API void aa_gl_globals_set_camera_home(struct aa_gl_globals *globals, const double world_E_camera_home[7])
Set the camera "home" transform. 
AA_API void aa_gl_buffers_cleanup(void)
Destroy previously schedule OpenGL buffers. 
#define AA_API
calling and name mangling convention for functions 
AA_API void aa_gl_globals_set_perspective(struct aa_gl_globals *globals, double fovy, double aspect, double znear, double zfar)
Set the camera perspective matrix. 
AA_API void aa_rx_sg_render(const struct aa_rx_sg *scenegraph, const struct aa_gl_globals *globals, size_t n_TF, const double *TF_abs, size_t ld_TF)
Render the scene graph to the current GL context. 
AA_API void aa_gl_buffers_destroy(struct aa_gl_buffers *buffers)
Destroy OpenGL buffers. 
AA_API void aa_gl_globals_set_ambient(struct aa_gl_globals *globals, const double ambient[3])
Set the light ambient color. 
AA_API void aa_gl_globals_set_aspect(struct aa_gl_globals *globals, double aspect)
Set the camera aspect ratio. 
AA_API void aa_gl_tfmat2glmat(const double T[AA_RESTRICT 12], GLfloat M[AA_RESTRICT 16])
Convert a condensed transformation matrix to an OpenGL matrix. 
AA_API void aa_gl_globals_mask(struct aa_gl_globals *globals, size_t i, int value)
Set the display mask value of the i'th frame to `value'. 
AA_API void aa_gl_buffers_schedule_destroy(struct aa_gl_buffers *buffers)
Schedule destruction of OpenGL buffers.