#ifndef STLFILE_H #define STLFILE_H #include #include #include #include enum { KW_INVALID = -1, KW_UNKNOWN, KW_SOLID_BEGIN, KW_SOLID_END, KW_FACET_BEGIN, KW_FACET_END, KW_LOOP_BEGIN, KW_LOOP_END, KW_VERTEX }; enum { STATE_SOLID, STATE_FACET, STATE_LOOP }; enum { TYPE_ASCII, TYPE_BIN }; struct stack { int *data; size_t count, cap; }; struct parseinfo { char extra[80]; unsigned int loopcount; float bbmin[3], bbmax[3]; int type, valid; char *namehash, *infopath, *stlpath; }; int parse_file(struct parseinfo *info, char *buf, size_t len); void free_info(struct parseinfo *info); #endif /* STLFILE_H */