/***************************************************************************** ** Copyright (C) 1998-2005 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 of the License, or (at your option) any later version. ** ** This library is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_H #define _G2_H /* g2 version */ #define G2_VERSION "0.70" #if defined(__cplusplus) extern "C" { #endif /* Common Library header for DLL and application */ #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #pragma message( "Building DLL library") #define G2L __declspec( dllexport) #else /* Use DLL */ #define G2L __declspec( dllimport) #endif #else /* Use static win32 */ #define G2L #endif #else /* Use non-win32 */ #define G2L #endif #define G2LD g2_ld() #if defined(SWIG) #if defined(DO_X11) %include "X11/g2_X11.h" #endif #if defined(DO_PS) %include "PS/g2_PS.h" #endif #if defined(DO_GD) %include "GD/g2_gd.h" #endif #if defined(DO_WIN32) %include "WIN32/g2_win32.h" #endif %module g2 %include typemaps.i %{ #include "g2.h" #if defined(DO_X11) #include "g2_X11.h" #endif #if defined(DO_PS) #include "g2_PS.h" #endif #if defined(DO_GD) #include "g2_gd.h" #endif #if defined(DO_WIN32) #include "WIN32/g2_win32.h" #endif %} #endif /* end SWIG */ enum QPshape { QPrect, /**< rectangular quasi pixel */ QPcirc /**< circle as a quasi pixel */ }; /* compatibility with old versions */ #define g2_draw_string(dev, x, y, text) g2_string((dev), (x), (y), (text)) G2L int g2_open_vd(void); G2L void g2_attach(int vd_dev, int dev); G2L void g2_detach(int vd_dev, int dev); G2L void g2_close(int dev); G2L void g2_set_auto_flush(int dev, int on_off); G2L void g2_flush(int dev); G2L void g2_save(int dev); G2L void g2_set_coordinate_system(int dev, double x_origin, double y_origin, double x_mul, double y_mul); G2L int g2_ld(); G2L void g2_set_ld(int dev); G2L int g2_ink(int pd_dev, double red, double green, double blue); G2L void g2_pen(int dev, int color); G2L void g2_set_dash(int dev, int N, double *dashes); G2L void g2_set_font_size(int dev, double size); G2L void g2_set_line_width(int dev, double w); G2L void g2_clear_palette(int dev); G2L void g2_reset_palette(int dev); G2L void g2_allocate_basic_colors(int dev); G2L void g2_clear(int dev); G2L void g2_set_background(int dev, int color); G2L void g2_move(int dev, double x, double y); G2L void g2_move_r(int dev, double dx, double dy); G2L void g2_plot(int dev, double x, double y); G2L void g2_plot_r(int dev, double dx, double dy); G2L void g2_line(int dev, double x1, double y1, double x2, double y2); G2L void g2_line_r(int dev, double dx, double dy); G2L void g2_line_to(int dev, double x, double y); G2L void g2_poly_line(int dev, int N_pt, double *points); G2L void g2_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3); G2L void g2_filled_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3); G2L void g2_rectangle(int dev, double x1, double y1, double x2, double y2); G2L void g2_filled_rectangle(int dev, double x1, double y1, double x2, double y2); G2L void g2_polygon(int dev, int N_pt, double *points); G2L void g2_filled_polygon(int dev, int N_pt, double *points); G2L void g2_circle(int dev, double x, double y, double r); G2L void g2_filled_circle(int dev, double x, double y, double r); G2L void g2_ellipse(int dev, double x, double y, double r1, double r2); G2L void g2_filled_ellipse(int dev, double x, double y, double r1, double r2); G2L void g2_arc(int dev, double x, double y, double r1, double r2, double a1, double a2); G2L void g2_filled_arc(int dev, double x, double y, double r1, double r2, double a1, double a2); G2L void g2_string(int dev, double x, double y, const char *text); G2L void g2_image(int dev, double x, double y, int x_size, int y_size, int *pens); G2L void g2_set_QP(int dev, double d, enum QPshape shape); G2L void g2_plot_QP(int dev, double x, double y); #if !defined(SWIG) G2L void g2_query_pointer(int dev, double *x, double *y, unsigned int *button); #else extern void g2_query_pointer(int dev, double *OUTPUT,double *OUTPUT,unsigned int *OUTPUT); #endif /* Tijs Michels */ /* 06/16/99 */ G2L void g2_spline(int id, int n, double *points, int o); G2L void g2_b_spline(int id, int n, double *points, int o); G2L void g2_raspln(int id, int n, double *points, double tn); G2L void g2_para_3(int id, int n, double *points); G2L void g2_para_5(int id, int n, double *points); G2L void g2_filled_spline(int id, int n, double *points, int o); G2L void g2_filled_b_spline(int id, int n, double *points, int o); G2L void g2_filled_raspln(int id, int n, double *points, double tn); G2L void g2_filled_para_3(int id, int n, double *points); G2L void g2_filled_para_5(int id, int n, double *points); /** Actualy private function, but... **/ G2L int g2_device_exist(int dix); /** Use only if you know what are you doing **/ #define G2_PD_HANDLES_SIZE 32 G2L void g2_get_pd_handles(int pd, void *handles[G2_PD_HANDLES_SIZE]); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_H */