38 #ifndef AMINO_RX_SCENE_GEOM_H
39 #define AMINO_RX_SCENE_GEOM_H
55 struct aa_rx_geom_opt;
60 AA_API struct aa_rx_geom_opt*
74 struct aa_rx_geom_opt *opt,
143 struct aa_rx_geom_opt *opt,
144 double red,
double blue,
double green );
151 struct aa_rx_geom_opt *opt,
161 struct aa_rx_geom_opt *opt,
171 struct aa_rx_geom_opt *opt,
179 struct aa_rx_geom_opt *opt,
180 double red,
double green,
double blue );
188 struct aa_rx_geom_opt *opt,
196 const struct aa_rx_geom_opt *opt );
292 struct aa_rx_geom_opt *opt,
293 const double dimension[3] );
300 struct aa_rx_geom_opt *opt,
308 struct aa_rx_geom_opt *opt,
317 struct aa_rx_geom_opt *opt,
327 struct aa_rx_geom_opt *opt,
328 const double dimension[2],
329 const double delta[2],
351 struct aa_rx_mesh *mesh,
size_t n,
352 const float *vectors,
int copy );
358 struct aa_rx_mesh *mesh,
size_t n,
359 const float *normals,
int copy );
365 struct aa_rx_mesh *mesh,
size_t n,
366 const unsigned *indices,
int copy );
372 struct aa_rx_mesh *mesh,
373 size_t width,
size_t height,
374 const uint8_t *rgba,
int copy );
380 struct aa_rx_mesh *mesh,
381 size_t n,
const float *uv,
int copy );
387 struct aa_rx_mesh *mesh,
388 const struct aa_rx_geom_opt *opt );
395 struct aa_rx_geom_opt *opt,
396 struct aa_rx_mesh *mesh );
409 aa_rx_geom_refcount (
const struct aa_rx_geom *g );
412 aa_rx_mesh_refcount (
struct aa_rx_mesh *sg );
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_color_red(struct aa_rx_geom_opt *opt)
Get red color value.
Container for scene geometry.
AA_API int aa_rx_geom_opt_get_no_shadow(struct aa_rx_geom_opt *opt)
Get no-shadow option.
aa_rx_geom_shape
Enumeration of geometry shape types.
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 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 void aa_rx_geom_opt_set_specular3(struct aa_rx_geom_opt *opt, double red, double green, double blue)
Set specular reflection.
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 double aa_rx_geom_opt_get_color_blue(struct aa_rx_geom_opt *opt)
Get blue color value.
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.
AA_API double aa_rx_geom_opt_get_specular_blue(struct aa_rx_geom_opt *opt)
Get blue specular value.
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 double aa_rx_geom_opt_get_specular_red(struct aa_rx_geom_opt *opt)
Get red specular value.
AA_API struct aa_rx_geom * aa_rx_geom_copy(struct aa_rx_geom *src)
Copy a geometry struct.
AA_API double aa_rx_geom_opt_get_color_green(struct aa_rx_geom_opt *opt)
Get green color value.
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 int aa_rx_geom_opt_get_collision(struct aa_rx_geom_opt *opt)
Get collision option.
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 double aa_rx_geom_opt_get_specular_green(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 int aa_rx_geom_opt_get_visual(struct aa_rx_geom_opt *opt)
Get visual option.
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 void aa_rx_geom_opt_set_alpha(struct aa_rx_geom_opt *opt, double alpha)
Set alpha (transparency) option.
AA_API double aa_rx_geom_opt_get_alpha(struct aa_rx_geom_opt *opt)
Get alpha value.
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.