gmio/src/c/libstl/stlb_read.h

31 lines
1.1 KiB
C
Raw Normal View History

2013-03-06 17:27:37 +08:00
#ifndef FOUG_DATAX_C_LIBSTL_STLB_READ_H
#define FOUG_DATAX_C_LIBSTL_STLB_READ_H
#include "stl_global.h"
#include "stlb_triangle.h"
#include "../endian.h"
2013-03-06 18:49:53 +08:00
#include "../transfer.h"
/* foug_stlb_geom_input */
typedef struct foug_stlb_geom_input foug_stlb_geom_input_t;
struct foug_stlb_geom_input
{
void* cookie;
2013-03-06 18:49:53 +08:00
void (*process_header_func) (foug_stlb_geom_input_t*, const uint8_t*);
void (*begin_triangles_func) (foug_stlb_geom_input_t*, uint32_t);
void (*process_next_triangle_func)(foug_stlb_geom_input_t*, const foug_stlb_triangle_t*);
2013-03-06 18:49:53 +08:00
void (*end_triangles_func) (foug_stlb_geom_input_t*);
};
2013-03-06 18:49:53 +08:00
/* foug_stlb_read() */
FOUG_DATAX_LIBSTL_EXPORT int foug_stlb_read(foug_stlb_geom_input_t* geom,
foug_transfer_t* trsf,
foug_endianness_t byte_order);
2013-03-06 18:49:53 +08:00
/* Specific error codes returned by foug_stlb_read() */
#define FOUG_STLB_READ_HEADER_WRONG_SIZE_ERROR 1
#define FOUG_STLB_READ_FACET_COUNT_ERROR 2
#define FOUG_STLB_READ_UNSUPPORTED_BYTE_ORDER 3
2013-03-06 17:27:37 +08:00
#endif /* FOUG_DATAX_C_LIBSTL_STLB_READ_H */