]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/picomodel/picointernal.h
eol style
[xonotic/netradiant.git] / libs / picomodel / picointernal.h
index 37686ce19101526f7f499f9c21c19eb38eeb9f96..8a3ee68defa51f56be1f924e2d757172ccd323e7 100644 (file)
-/* -----------------------------------------------------------------------------\r
-\r
-PicoModel Library\r
-\r
-Copyright (c) 2002, Randy Reddig & seaw0lf\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without modification,\r
-are permitted provided that the following conditions are met:\r
-\r
-Redistributions of source code must retain the above copyright notice, this list\r
-of conditions and the following disclaimer.\r
-\r
-Redistributions in binary form must reproduce the above copyright notice, this\r
-list of conditions and the following disclaimer in the documentation and/or\r
-other materials provided with the distribution.\r
-\r
-Neither the names of the copyright holders nor the names of its contributors may\r
-be used to endorse or promote products derived from this software without\r
-specific prior written permission.\r
-\r
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\r
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-\r
------------------------------------------------------------------------------ */\r
-\r
-\r
-\r
-/* marker */\r
-#ifndef PICOINTERNAL_H\r
-#define PICOINTERNAL_H\r
-\r
-#ifdef __cplusplus\r
-extern "C"\r
-{\r
-#endif\r
-\r
-\r
-/* dependencies */\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <stdarg.h>\r
-#include <string.h>\r
-#include <ctype.h>\r
-#include <math.h>\r
-\r
-#include "picomodel.h"\r
-\r
-\r
-/* os dependant replacements */\r
-#if WIN32 || _WIN32\r
-       #define _pico_stricmp stricmp\r
-       #define _pico_strnicmp strnicmp\r
-#else\r
-       #define _pico_stricmp strcasecmp\r
-       #define _pico_strnicmp strncasecmp\r
-#endif\r
-\r
-\r
-/* constants */\r
-#define        PICO_PI 3.14159265358979323846\r
-\r
-#define PICO_SEEK_SET    0\r
-#define PICO_SEEK_CUR    1\r
-#define PICO_SEEK_END    2\r
-\r
-#define PICO_IOEOF     1\r
-#define PICO_IOERR     2\r
-\r
-/* types */\r
-typedef struct picoParser_s\r
-{\r
-       char    *buffer;\r
-       int              bufSize;\r
-       char    *token;\r
-       int              tokenSize;\r
-       int              tokenMax;\r
-       char    *cursor;\r
-       char    *max;\r
-       int              curLine;\r
-}\r
-picoParser_t;\r
-\r
-typedef struct picoMemStream_s\r
-{\r
-       picoByte_t      *buffer;\r
-       int                     bufSize;\r
-       picoByte_t      *curPos;\r
-       int                     flag;\r
-}\r
-picoMemStream_t;\r
-\r
-\r
-/* variables */\r
-extern const picoModule_t      *picoModules[];\r
-\r
-extern void                                    *(*_pico_ptr_malloc)( size_t );\r
-extern void                                    (*_pico_ptr_free)( void* );\r
-extern void                                    (*_pico_ptr_load_file)( char*, unsigned char**, int* );\r
-extern void                                    (*_pico_ptr_free_file)( void* );\r
-extern void                                    (*_pico_ptr_print)( int, const char* );\r
-\r
-\r
-\r
-/* prototypes */\r
-\r
-/* memory */\r
-void                   *_pico_alloc( size_t size );\r
-void                   *_pico_calloc( size_t num, size_t size );\r
-void                   *_pico_realloc( void **ptr, size_t oldSize, size_t newSize );\r
-char                   *_pico_clone_alloc( char *str, int size );\r
-void                   _pico_free( void *ptr );\r
-\r
-/* files */\r
-void                   _pico_load_file( char *name, unsigned char **buffer, int *bufSize );\r
-void                   _pico_free_file( void *buffer );\r
-\r
-/* strings */\r
-char                   *_pico_strltrim( char *str );\r
-char                   *_pico_strrtrim( char *str );\r
-int                            _pico_strchcount( char *str, int ch );\r
-void                   _pico_printf( int level, const char *format, ... );\r
-char                   *_pico_stristr( char *str, const char *substr );\r
-void                   _pico_unixify( char *path );\r
-int                            _pico_nofname( const char *path, char *dest, int destSize );\r
-char                   *_pico_nopath( const char *path );\r
-char                   *_pico_setfext( char *path, const char *ext );\r
-int                            _pico_getline( char *buf, int bufsize, char *dest, int destsize );\r
-char                   *_pico_strlwr( char *str );\r
-\r
-/* vectors */\r
-void                   _pico_zero_bounds( picoVec3_t mins, picoVec3_t maxs );\r
-void                   _pico_expand_bounds( picoVec3_t p, picoVec3_t mins, picoVec3_t maxs );\r
-void                   _pico_zero_vec( picoVec3_t vec );\r
-void                   _pico_zero_vec2( picoVec2_t vec );\r
-void                   _pico_zero_vec4( picoVec4_t vec );\r
-void                   _pico_set_vec( picoVec3_t v, float a, float b, float c );\r
-void                   _pico_set_vec4( picoVec4_t v, float a, float b, float c, float d );\r
-void                   _pico_set_color( picoColor_t c, int r, int g, int b, int a );\r
-void                   _pico_copy_color( picoColor_t src, picoColor_t dest );\r
-void                   _pico_copy_vec( picoVec3_t src, picoVec3_t dest );\r
-void                   _pico_copy_vec2( picoVec2_t src, picoVec2_t dest );\r
-picoVec_t              _pico_normalize_vec( picoVec3_t vec );\r
-void                   _pico_add_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );\r
-void                   _pico_subtract_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );\r
-picoVec_t              _pico_dot_vec( picoVec3_t a, picoVec3_t b );\r
-void                   _pico_cross_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );\r
-picoVec_t              _pico_calc_plane( picoVec4_t plane, picoVec3_t a, picoVec3_t b, picoVec3_t c );\r
-void                   _pico_scale_vec( picoVec3_t v, float scale, picoVec3_t dest );\r
-void                   _pico_scale_vec4( picoVec4_t v, float scale, picoVec4_t dest );\r
-\r
-/* endian */\r
-int                    _pico_big_long( int src );\r
-short                  _pico_big_short( short src );\r
-float                  _pico_big_float( float src );\r
-\r
-int                    _pico_little_long( int src );\r
-short                  _pico_little_short( short src );\r
-float                  _pico_little_float( float src );\r
-\r
-/* pico ascii parser */\r
-picoParser_t   *_pico_new_parser( picoByte_t *buffer, int bufSize );\r
-void                   _pico_free_parser( picoParser_t *p );\r
-int                            _pico_parse_ex( picoParser_t *p, int allowLFs, int handleQuoted );\r
-char                   *_pico_parse_first( picoParser_t *p );\r
-char                   *_pico_parse( picoParser_t *p, int allowLFs );\r
-void                   _pico_parse_skip_rest( picoParser_t *p );\r
-int                            _pico_parse_skip_braced( picoParser_t *p );\r
-int                    _pico_parse_check( picoParser_t *p, int allowLFs, char *str );\r
-int                    _pico_parse_checki( picoParser_t *p, int allowLFs, char *str );\r
-int                    _pico_parse_int( picoParser_t *p, int *out );\r
-int                    _pico_parse_int_def( picoParser_t *p, int *out, int def );\r
-int                    _pico_parse_float( picoParser_t *p, float *out );\r
-int                    _pico_parse_float_def( picoParser_t *p, float *out, float def );\r
-int                    _pico_parse_vec( picoParser_t *p, picoVec3_t out);\r
-int                    _pico_parse_vec_def( picoParser_t *p, picoVec3_t out, picoVec3_t def);\r
-int                    _pico_parse_vec2( picoParser_t *p, picoVec2_t out );\r
-int                    _pico_parse_vec2_def( picoParser_t *p, picoVec2_t out, picoVec2_t def );\r
-int                    _pico_parse_vec4( picoParser_t *p, picoVec4_t out);\r
-int                    _pico_parse_vec4_def( picoParser_t *p, picoVec4_t out, picoVec4_t def);\r
-\r
-/* pico memory stream */\r
-picoMemStream_t        *_pico_new_memstream( picoByte_t *buffer, int bufSize );\r
-void                   _pico_free_memstream( picoMemStream_t *s );\r
-int                            _pico_memstream_read( picoMemStream_t *s, void *buffer, int len );\r
-int                            _pico_memstream_getc( picoMemStream_t *s );\r
-int                            _pico_memstream_seek( picoMemStream_t *s, long offset, int origin );\r
-long                   _pico_memstream_tell( picoMemStream_t *s );\r
-#define                        _pico_memstream_eof( _pico_memstream )          ((_pico_memstream)->flag & PICO_IOEOF)\r
-#define                        _pico_memstream_error( _pico_memstream )        ((_pico_memstream)->flag & PICO_IOERR)\r
-\r
-/* end marker */\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
+/* -----------------------------------------------------------------------------
+
+PicoModel Library
+
+Copyright (c) 2002, Randy Reddig & seaw0lf
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list
+of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+Neither the names of the copyright holders nor the names of its contributors may
+be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+----------------------------------------------------------------------------- */
+
+
+
+/* marker */
+#ifndef PICOINTERNAL_H
+#define PICOINTERNAL_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/* dependencies */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <math.h>
+
+#include "picomodel.h"
+
+
+/* os dependant replacements */
+#if WIN32 || _WIN32
+       #define _pico_stricmp stricmp
+       #define _pico_strnicmp strnicmp
+#else
+       #define _pico_stricmp strcasecmp
+       #define _pico_strnicmp strncasecmp
+#endif
+
+
+/* constants */
+#define        PICO_PI 3.14159265358979323846
+
+#define PICO_SEEK_SET    0
+#define PICO_SEEK_CUR    1
+#define PICO_SEEK_END    2
+
+#define PICO_IOEOF     1
+#define PICO_IOERR     2
+
+/* types */
+typedef struct picoParser_s
+{
+       char    *buffer;
+       int              bufSize;
+       char    *token;
+       int              tokenSize;
+       int              tokenMax;
+       char    *cursor;
+       char    *max;
+       int              curLine;
+}
+picoParser_t;
+
+typedef struct picoMemStream_s
+{
+       picoByte_t      *buffer;
+       int                     bufSize;
+       picoByte_t      *curPos;
+       int                     flag;
+}
+picoMemStream_t;
+
+
+/* variables */
+extern const picoModule_t      *picoModules[];
+
+extern void                                    *(*_pico_ptr_malloc)( size_t );
+extern void                                    (*_pico_ptr_free)( void* );
+extern void                                    (*_pico_ptr_load_file)( char*, unsigned char**, int* );
+extern void                                    (*_pico_ptr_free_file)( void* );
+extern void                                    (*_pico_ptr_print)( int, const char* );
+
+
+
+/* prototypes */
+
+/* memory */
+void                   *_pico_alloc( size_t size );
+void                   *_pico_calloc( size_t num, size_t size );
+void                   *_pico_realloc( void **ptr, size_t oldSize, size_t newSize );
+char                   *_pico_clone_alloc( char *str, int size );
+void                   _pico_free( void *ptr );
+
+/* files */
+void                   _pico_load_file( char *name, unsigned char **buffer, int *bufSize );
+void                   _pico_free_file( void *buffer );
+
+/* strings */
+char                   *_pico_strltrim( char *str );
+char                   *_pico_strrtrim( char *str );
+int                            _pico_strchcount( char *str, int ch );
+void                   _pico_printf( int level, const char *format, ... );
+char                   *_pico_stristr( char *str, const char *substr );
+void                   _pico_unixify( char *path );
+int                            _pico_nofname( const char *path, char *dest, int destSize );
+char                   *_pico_nopath( const char *path );
+char                   *_pico_setfext( char *path, const char *ext );
+int                            _pico_getline( char *buf, int bufsize, char *dest, int destsize );
+char                   *_pico_strlwr( char *str );
+
+/* vectors */
+void                   _pico_zero_bounds( picoVec3_t mins, picoVec3_t maxs );
+void                   _pico_expand_bounds( picoVec3_t p, picoVec3_t mins, picoVec3_t maxs );
+void                   _pico_zero_vec( picoVec3_t vec );
+void                   _pico_zero_vec2( picoVec2_t vec );
+void                   _pico_zero_vec4( picoVec4_t vec );
+void                   _pico_set_vec( picoVec3_t v, float a, float b, float c );
+void                   _pico_set_vec4( picoVec4_t v, float a, float b, float c, float d );
+void                   _pico_set_color( picoColor_t c, int r, int g, int b, int a );
+void                   _pico_copy_color( picoColor_t src, picoColor_t dest );
+void                   _pico_copy_vec( picoVec3_t src, picoVec3_t dest );
+void                   _pico_copy_vec2( picoVec2_t src, picoVec2_t dest );
+picoVec_t              _pico_normalize_vec( picoVec3_t vec );
+void                   _pico_add_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );
+void                   _pico_subtract_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );
+picoVec_t              _pico_dot_vec( picoVec3_t a, picoVec3_t b );
+void                   _pico_cross_vec( picoVec3_t a, picoVec3_t b, picoVec3_t dest );
+picoVec_t              _pico_calc_plane( picoVec4_t plane, picoVec3_t a, picoVec3_t b, picoVec3_t c );
+void                   _pico_scale_vec( picoVec3_t v, float scale, picoVec3_t dest );
+void                   _pico_scale_vec4( picoVec4_t v, float scale, picoVec4_t dest );
+
+/* endian */
+int                    _pico_big_long( int src );
+short                  _pico_big_short( short src );
+float                  _pico_big_float( float src );
+
+int                    _pico_little_long( int src );
+short                  _pico_little_short( short src );
+float                  _pico_little_float( float src );
+
+/* pico ascii parser */
+picoParser_t   *_pico_new_parser( picoByte_t *buffer, int bufSize );
+void                   _pico_free_parser( picoParser_t *p );
+int                            _pico_parse_ex( picoParser_t *p, int allowLFs, int handleQuoted );
+char                   *_pico_parse_first( picoParser_t *p );
+char                   *_pico_parse( picoParser_t *p, int allowLFs );
+void                   _pico_parse_skip_rest( picoParser_t *p );
+int                            _pico_parse_skip_braced( picoParser_t *p );
+int                    _pico_parse_check( picoParser_t *p, int allowLFs, char *str );
+int                    _pico_parse_checki( picoParser_t *p, int allowLFs, char *str );
+int                    _pico_parse_int( picoParser_t *p, int *out );
+int                    _pico_parse_int_def( picoParser_t *p, int *out, int def );
+int                    _pico_parse_float( picoParser_t *p, float *out );
+int                    _pico_parse_float_def( picoParser_t *p, float *out, float def );
+int                    _pico_parse_vec( picoParser_t *p, picoVec3_t out);
+int                    _pico_parse_vec_def( picoParser_t *p, picoVec3_t out, picoVec3_t def);
+int                    _pico_parse_vec2( picoParser_t *p, picoVec2_t out );
+int                    _pico_parse_vec2_def( picoParser_t *p, picoVec2_t out, picoVec2_t def );
+int                    _pico_parse_vec4( picoParser_t *p, picoVec4_t out);
+int                    _pico_parse_vec4_def( picoParser_t *p, picoVec4_t out, picoVec4_t def);
+
+/* pico memory stream */
+picoMemStream_t        *_pico_new_memstream( picoByte_t *buffer, int bufSize );
+void                   _pico_free_memstream( picoMemStream_t *s );
+int                            _pico_memstream_read( picoMemStream_t *s, void *buffer, int len );
+int                            _pico_memstream_getc( picoMemStream_t *s );
+int                            _pico_memstream_seek( picoMemStream_t *s, long offset, int origin );
+long                   _pico_memstream_tell( picoMemStream_t *s );
+#define                        _pico_memstream_eof( _pico_memstream )          ((_pico_memstream)->flag & PICO_IOEOF)
+#define                        _pico_memstream_error( _pico_memstream )        ((_pico_memstream)->flag & PICO_IOERR)
+
+/* end marker */
+#ifdef __cplusplus
+}
+#endif
+
+#endif