00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025
00026 #ifndef __FLGR_DATA_TOOLS_PSTACK_H
00027 #define __FLGR_DATA_TOOLS_PSTACK_H
00028
00029 #include <flgrCoreDll.h>
00030 #include <flgrCoreTypes.h>
00031 #include <flgrCoreErrors.h>
00032 #include <flgrCoreVector.h>
00033
00039 typedef struct FLGR_StackLink FLGR_StackLink;
00040
00041 struct FLGR_StackLink {
00042 FLGR_StackLink *lower;
00043 int x;
00044 int y;
00045 int z;
00046 };
00047
00048
00049 typedef struct FLGR_Stack FLGR_Stack;
00050
00051 struct FLGR_Stack{
00052 int size;
00053 FLGR_StackLink *top;
00054 void *label;
00055 FLGR_Stack *next;
00056 FLGR_Stack *previous;
00057 };
00058
00059
00060
00061 EXPORT_LIB void flgr_stack_init(FLGR_Stack *stack);
00062
00063 EXPORT_LIB int flgr_stack_push(FLGR_Stack *stack, int x, int y, int z);
00064 EXPORT_LIB int flgr_stack_pop(FLGR_Stack *stack, int *x, int *y, int *z);
00065
00066 EXPORT_LIB void flgr_stack_flush(FLGR_Stack *stack);
00067
00068 EXPORT_LIB FLGR_Stack* flgr_stack_get_next(FLGR_Stack *stack);
00069 EXPORT_LIB FLGR_Stack* flgr_stack_get_previous(FLGR_Stack *stack);
00070
00071 EXPORT_LIB int flgr_stack_get_size(FLGR_Stack *stack);
00072
00073
00075
00076 #endif
00077
00078 #ifdef __cplusplus
00079 }
00080 #endif