38 #ifndef AMINO_RX_SCENE_GEOM_H
39 #define AMINO_RX_SCENE_GEOM_H
56 struct aa_rx_geom_opt;
61 AA_API struct aa_rx_geom_opt*
75 struct aa_rx_geom_opt *opt,
144 struct aa_rx_geom_opt *opt,
145 double red,
double blue,
double green );
152 struct aa_rx_geom_opt *opt,
162 struct aa_rx_geom_opt *opt,
172 struct aa_rx_geom_opt *opt,
180 struct aa_rx_geom_opt *opt,
181 double red,
double green,
double blue );
189 struct aa_rx_geom_opt *opt,
197 const struct aa_rx_geom_opt *opt );
293 struct aa_rx_geom_opt *opt,
294 const double dimension[3] );
301 struct aa_rx_geom_opt *opt,
309 struct aa_rx_geom_opt *opt,
318 struct aa_rx_geom_opt *opt,
328 struct aa_rx_geom_opt *opt,
329 const double dimension[2],
330 const double delta[2],
336 AA_API const struct aa_rx_geom_opt*
342 AA_API struct aa_rx_cl_geom *
370 struct aa_rx_mesh *mesh,
size_t n,
371 const float *vectors,
int copy );
377 const struct aa_rx_mesh *mesh,
size_t *size );
383 const struct aa_rx_mesh *mesh,
size_t *size );
389 struct aa_rx_mesh *mesh,
size_t n,
390 const float *normals,
int copy );
396 struct aa_rx_mesh *mesh,
size_t n,
397 const unsigned *indices,
int copy );
403 struct aa_rx_mesh *mesh,
404 size_t width,
size_t height,
405 const uint8_t *rgba,
int copy );
411 struct aa_rx_mesh *mesh,
412 size_t n,
const float *uv,
int copy );
418 struct aa_rx_mesh *mesh,
419 const struct aa_rx_geom_opt *opt );
426 struct aa_rx_geom_opt *opt,
427 struct aa_rx_mesh *mesh );
AA_API double aa_rx_geom_opt_get_specular_blue(const struct aa_rx_geom_opt *opt)
Get blue specular value.
AA_API void aa_rx_geom_set_collision(struct aa_rx_geom *geom, struct aa_rx_cl_geom *)
Set the collision object for the geometry object.
AA_API void aa_rx_mesh_destroy(struct aa_rx_mesh *mesh)
Destroy the mesh.
AA_API void aa_rx_mesh_set_indices(struct aa_rx_mesh *mesh, size_t n, const unsigned *indices, int copy)
Set the mesh indices.
AA_API double aa_rx_geom_opt_get_alpha(const struct aa_rx_geom_opt *opt)
Get alpha value.
Container for scene geometry.
aa_rx_geom_shape
Enumeration of geometry shape types.
AA_API const struct aa_rx_geom_opt * aa_rx_geom_get_opt(const struct aa_rx_geom *geom)
Return the options for the geometry object.
AA_API struct aa_rx_geom * aa_rx_geom_box(struct aa_rx_geom_opt *opt, const double dimension[3])
Create a box.
AA_API void aa_rx_geom_opt_set_no_shadow(struct aa_rx_geom_opt *opt, int no_shadow)
Set no-shadow option.
AA_API int aa_rx_geom_opt_get_no_shadow(const struct aa_rx_geom_opt *opt)
Get no-shadow option.
AA_API void aa_rx_geom_destroy(struct aa_rx_geom *geom)
Destroy a geometry struct.
AA_API void aa_rx_mesh_set_uv(struct aa_rx_mesh *mesh, size_t n, const float *uv, int copy)
Set the mesh colors and uv values.
AA_API unsigned aa_rx_geom_refcount(const struct aa_rx_geom *g)
Return the reference count value of `g'.
AA_API void aa_rx_geom_opt_set_specular3(struct aa_rx_geom_opt *opt, double red, double green, double blue)
Set specular reflection.
AA_API int aa_rx_geom_opt_get_collision(const struct aa_rx_geom_opt *opt)
Get collision option.
AA_API double aa_rx_geom_opt_get_color_green(const struct aa_rx_geom_opt *opt)
Get green color value.
AA_API double aa_rx_geom_opt_get_color_blue(const struct aa_rx_geom_opt *opt)
Get blue color value.
AA_API void aa_rx_mesh_set_vertices(struct aa_rx_mesh *mesh, size_t n, const float *vectors, int copy)
Set the mesh vertices.
AA_API double aa_rx_geom_opt_get_scale(const struct aa_rx_geom_opt *opt)
Get mesh scaling.
AA_API const float * aa_rx_mesh_get_vertices(const struct aa_rx_mesh *mesh, size_t *size)
Get the mesh vertices.
AA_API struct aa_rx_geom * aa_rx_geom_sphere(struct aa_rx_geom_opt *opt, double radius)
Create a sphere.
AA_API void aa_rx_geom_opt_set_scale(struct aa_rx_geom_opt *opt, double scale)
Set mesh scaling.
Opaque type for a scene_graph.
AA_API void aa_rx_mesh_set_normals(struct aa_rx_mesh *mesh, size_t n, const float *normals, int copy)
Set the mesh normals.
AA_API const char * aa_rx_geom_shape_str(enum aa_rx_geom_shape shape)
Return a string for the shape type.
AA_API struct aa_rx_geom * aa_rx_geom_cone(struct aa_rx_geom_opt *opt, double height, double start_radius, double end_radius)
Create a cone.
AA_API struct aa_rx_geom * aa_rx_geom_cylinder(struct aa_rx_geom_opt *opt, double height, double radius)
Create a cylinder.
AA_API struct aa_rx_cl_geom * aa_rx_geom_get_collision(const struct aa_rx_geom *geom)
Return the collision object for the geometry object.
AA_API const unsigned * aa_rx_mesh_get_indices(const struct aa_rx_mesh *mesh, size_t *size)
Get the mesh indices.
AA_API struct aa_rx_geom * aa_rx_geom_copy(struct aa_rx_geom *src)
Copy a geometry struct.
AA_API void aa_rx_geom_attach(struct aa_rx_sg *sg, const char *frame, struct aa_rx_geom *geom)
Attach geometry to the scene graph.
AA_API struct aa_rx_geom_opt * aa_rx_geom_opt_create()
Create a geometry option struct.
AA_API void aa_rx_geom_opt_set_visual(struct aa_rx_geom_opt *opt, int visual)
Set visual flag.
#define AA_API
calling and name mangling convention for functions
AA_API int aa_rx_geom_opt_get_visual(const struct aa_rx_geom_opt *opt)
Get visual option.
AA_API double aa_rx_geom_opt_get_specular_green(const struct aa_rx_geom_opt *opt)
Get green specular value.
AA_API struct aa_rx_geom * aa_rx_geom_mesh(struct aa_rx_geom_opt *opt, struct aa_rx_mesh *mesh)
Attach a mesh to frame.
AA_API struct aa_rx_geom * aa_rx_geom_grid(struct aa_rx_geom_opt *opt, const double dimension[2], const double delta[2], double width)
Create a grid.
AA_API void aa_rx_mesh_set_texture(struct aa_rx_mesh *mesh, const struct aa_rx_geom_opt *opt)
Set the mesh texture parameters.
AA_API struct aa_rx_mesh * aa_rx_mesh_create()
Create a mesh.
AA_API void aa_rx_mesh_set_rgba(struct aa_rx_mesh *mesh, size_t width, size_t height, const uint8_t *rgba, int copy)
Set the mesh colors and alpha.
AA_API void aa_rx_geom_opt_set_color3(struct aa_rx_geom_opt *opt, double red, double blue, double green)
Set color option.
AA_API double aa_rx_geom_opt_get_color_red(const struct aa_rx_geom_opt *opt)
Get red color value.
AA_API void aa_rx_geom_opt_set_alpha(struct aa_rx_geom_opt *opt, double alpha)
Set alpha (transparency) option.
AA_API void aa_rx_geom_opt_destroy(struct aa_rx_geom_opt *)
Destroy a geometry option struct.
AA_API void aa_rx_geom_opt_set_collision(struct aa_rx_geom_opt *opt, int collision)
Set collision flag.
AA_API unsigned aa_rx_mesh_refcount(const struct aa_rx_mesh *sg)
Return the reference count value of `m'.
AA_API double aa_rx_geom_opt_get_specular_red(const struct aa_rx_geom_opt *opt)
Get red specular value.