00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _nr_gvx_point_h_
00014 #define _nr_gvx_point_h_
00015
00016 #include <stdio.h>
00017 #include <stdlib.h>
00018 #include <string.h>
00019 #include <unistd.h>
00020 #include <math.h>
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 struct nr_gvx_point {
00027 double x ;
00028 double y ;
00029 double z ;
00030 struct nr_gvx_point * next;
00031 };
00032 typedef struct nr_gvx_point *nr_gvx_point_t;
00033
00034 nr_gvx_point_t new_nr_gvx_point(void);
00035 nr_gvx_point_t make_nr_gvx_point(double _x, double _y, double _z);
00036 nr_gvx_point_t copy_nr_gvx_point(nr_gvx_point_t c);
00037 void kill_nr_gvx_point(nr_gvx_point_t c);
00038
00039 #define _nr_gvx_point_x(c) ((c)->x)
00040 #define _nr_gvx_point_y(c) ((c)->y)
00041 #define _nr_gvx_point_z(c) ((c)->z)
00042 #define _nr_gvx_point_next(c) ((c)->next)
00043
00044
00045 struct nr_gvx_polygon {
00046 int nmb_nr_gvx_point;
00047 nr_gvx_point_t * nr_gvx_point_table;
00048 };
00049 typedef struct nr_gvx_polygon * nr_gvx_polygon_t;
00050
00051 nr_gvx_polygon_t new_nr_gvx_polygon(void);
00052 nr_gvx_polygon_t make_nr_gvx_polygon(int _nmb_nr_gvx_point);
00053 nr_gvx_polygon_t copy_nr_gvx_polygon(nr_gvx_polygon_t c);
00054 void kill_nr_gvx_polygon(nr_gvx_polygon_t c);
00055
00056 #define _nr_gvx_polygon_nmb(c) ((c)->nmb_nr_gvx_point)
00057 #define _nr_gvx_polygon_nth(c, n) ((c)->nr_gvx_point_table[n])
00058
00059 #ifdef __cplusplus
00060 }
00061 #endif
00062
00063 #endif
00064