diff --git a/.gitattributes b/.gitattributes index d1a52fb07cb7296162ae0f47692c3f9e22415ad7..79c0f9ed2fc0c3dd0db07eb534234f7fc06526b8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -183,6 +183,7 @@ testfont binary /src/modules/Image/pattern.c foreign_ident /src/modules/Image/pnm.c foreign_ident /src/modules/Image/polyfill.c foreign_ident +/src/modules/Image/polygon.c foreign_ident /src/modules/Image/togif.c foreign_ident /src/modules/Image/x.c foreign_ident /src/modules/MIME/Makefile.in foreign_ident diff --git a/src/modules/Image/polygon.c b/src/modules/Image/polygon.c new file mode 100644 index 0000000000000000000000000000000000000000..3f033cfc354ec1e14e7c146c36ce324547b93535 --- /dev/null +++ b/src/modules/Image/polygon.c @@ -0,0 +1,104 @@ +#include "global.h" +#include <config.h> + +/* $Id: polygon.c,v 1.1 1998/05/21 13:01:48 grubba Exp $ */ + +/* +**! module Image +**! note +**! $Id: polygon.c,v 1.1 1998/05/21 13:01:48 grubba Exp $ +**! class polygon +**! +**! This object keep polygon information, +**! for quick polygon operations. +**! +**! see also: Image, Image.image, Image.image->polyfill +*/ + +#undef COLORTABLE_DEBUG +#undef COLORTABLE_REDUCE_DEBUG + +RCSID("$Id: polygon.c,v 1.1 1998/05/21 13:01:48 grubba Exp $"); + +#include <math.h> + +#include "config.h" + +#include "stralloc.h" +#include "pike_macros.h" +#include "object.h" +#include "constants.h" +#include "interpret.h" +#include "svalue.h" +#include "array.h" +#include "threads.h" +#include "builtin_functions.h" + +#include "image.h" +#include "polygon.h" +#include "dmalloc.h" + +struct program *image_polygon_program; +extern struct program *image_program; + + +#ifdef THIS +#undef THIS /* Needed for NT */ +#endif +#define THIS ((struct polygon *)(fp->current_storage)) +#define THISOBJ (fp->current_object) + +/***************** init & exit *********************************/ + +static void free_polygon_struct(struct polygon *nct) +{ +} + +static void polygon_init_stuff(struct polygon *nct) +{ +} + +static void init_polygon_struct(struct object *obj) +{ + polygon_init_stuff(THIS); +} + +static void exit_polygon_struct(struct object *obj) +{ + free_polygon_struct(THIS); +} + +/***************** internal stuff ******************************/ + +/***************** called stuff ********************************/ + +static void image_polygon_create(INT32 args) +{ +} + +/***************** global init etc *****************************/ + +void init_polygon_programs(void) +{ + start_new_program(); + add_storage(sizeof(struct polygon)); + + set_init_callback(init_polygon_struct); + set_exit_callback(exit_polygon_struct); + + add_function("create",image_polygon_create, + "function(object|array(int|float) ...:void)",0); + + image_polygon_program=end_program(); + add_program_constant("polygon",image_polygon_program, 0); +} + +void exit_polygon(void) +{ + if(image_polygon_program) + { + free_program(image_polygon_program); + image_polygon_program=0; + } +} + diff --git a/src/modules/Image/polygon.h b/src/modules/Image/polygon.h new file mode 100644 index 0000000000000000000000000000000000000000..dcee2f3af62498163acd093eb52da6246d1a8e1b --- /dev/null +++ b/src/modules/Image/polygon.h @@ -0,0 +1,21 @@ + +#ifdef PCOORD +#undef PCOORD +#endif +#ifdef PFLOAT +#undef PFLOAT +#endif + +#define PCOORD struct polygon_coord +#define PFLOAT double + +struct polygon_coord { PFLOAT x,y; }; + +struct polygon +{ + PCOORD min,max; +}; + + +void init_polygon_programs(void); +void exit_polygon(void);