39 #ifndef AMINO_RX_WAVEFRONT_H
40 #define AMINO_RX_WAVEFRONT_H
55 #define AA_RX_WF_OBJ_FACE_NONE -1
80 AA_API const struct aa_rx_wf_mtl *
95 AA_API struct aa_rx_wf_obj *
96 aa_rx_wf_parse(
const char *filename);
103 const double **verticies,
size_t *n );
110 const double **normals,
size_t *n );
117 const int32_t **v,
size_t *n );
124 const int32_t **v,
size_t *n );
130 const int32_t **v,
size_t *n );
137 const int32_t **v,
size_t *n );
146 struct aa_rx_wf_material;
148 AA_API struct aa_rx_wf_mtl *
149 aa_rx_wf_mtl_parse(
const char *mtl_name );
153 aa_rx_wf_mtl_destroy(
struct aa_rx_wf_mtl * );
156 aa_rx_wf_mtl_material_count(
const struct aa_rx_wf_mtl * mtl);
158 AA_API struct aa_rx_wf_material *
159 aa_rx_wf_mtl_get_material(
const struct aa_rx_wf_mtl * mtl,
size_t i);
162 aa_rx_wf_material_has_specular_weight(
const struct aa_rx_wf_material * material );
165 aa_rx_wf_material_has_specular(
const struct aa_rx_wf_material * material );
168 aa_rx_wf_material_has_ambient(
const struct aa_rx_wf_material * material );
171 aa_rx_wf_material_has_emission(
const struct aa_rx_wf_material * material );
174 aa_rx_wf_material_has_diffuse(
const struct aa_rx_wf_material * material );
177 aa_rx_wf_material_has_alpha(
const struct aa_rx_wf_material * material );
180 aa_rx_wf_material_has_ior(
const struct aa_rx_wf_material * material );
183 aa_rx_wf_material_get_name(
const struct aa_rx_wf_material * material );
186 aa_rx_wf_material_get_specular(
const struct aa_rx_wf_material * material );
189 aa_rx_wf_material_get_ambient(
const struct aa_rx_wf_material * material );
192 aa_rx_wf_material_get_emission(
const struct aa_rx_wf_material * material );
195 aa_rx_wf_material_get_diffuse(
const struct aa_rx_wf_material * material );
198 aa_rx_wf_material_get_alpha(
const struct aa_rx_wf_material * material );
201 aa_rx_wf_material_get_ior(
const struct aa_rx_wf_material * material );
203 #endif //AMINO_RX_WAVEFRONT_H
AA_API const char * aa_rx_wf_obj_get_mtl_filename(struct aa_rx_wf_obj *obj, size_t i)
Return the ith MTL filename.
AA_API void aa_rx_wf_obj_get_uv_indices(const struct aa_rx_wf_obj *obj, const int32_t **v, size_t *n)
Retrieve the uv indices.
AA_API void aa_rx_wf_obj_destroy(struct aa_rx_wf_obj *)
Destroy the object for a wavefront obj file.
AA_API void aa_rx_wf_obj_get_vertices(const struct aa_rx_wf_obj *obj, const double **verticies, size_t *n)
Retrieve the verticies.
AA_API const struct aa_rx_wf_mtl * aa_rx_wf_obj_get_mtl(struct aa_rx_wf_obj *obj, size_t i)
Return the ith MTL struct.
AA_API size_t aa_rx_wf_obj_mtl_count(struct aa_rx_wf_obj *obj)
Return the number of MTL files.
AA_API size_t aa_rx_wf_obj_material_count(struct aa_rx_wf_obj *obj)
Return the number of materials.
AA_API void aa_rx_wf_obj_get_vertex_indices(const struct aa_rx_wf_obj *obj, const int32_t **v, size_t *n)
Retrieve the vertex indices.
AA_API void aa_rx_wf_obj_get_texture_indices(const struct aa_rx_wf_obj *obj, const int32_t **v, size_t *n)
Retrieve the texture indices.
AA_API void aa_rx_wf_obj_get_normal_indices(const struct aa_rx_wf_obj *obj, const int32_t **v, size_t *n)
Retrieve the normal indices.
AA_API const char * aa_rx_wf_obj_get_material_name(struct aa_rx_wf_obj *obj, size_t i)
Return the name of the ith material.
#define AA_API
calling and name mangling convention for functions
AA_API void aa_rx_wf_obj_get_normals(const struct aa_rx_wf_obj *obj, const double **normals, size_t *n)
Retrieve the normals.