00001 /***************************************************************************** 00002 ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner 00003 ** This file is part of the g2 library 00004 ** 00005 ** This library is free software; you can redistribute it and/or 00006 ** modify it under the terms of the GNU Lesser General Public 00007 ** License as published by the Free Software Foundation; either 00008 ** version 2.1 of the License, or (at your option) any later version. 00009 ** 00010 ** This library is distributed in the hope that it will be useful, 00011 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 ** Lesser General Public License for more details. 00014 ** 00015 ** You should have received a copy of the GNU Lesser General Public 00016 ** License along with this library; if not, write to the Free Software 00017 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 ******************************************************************************/ 00019 #ifndef _G2_PHYSICAL_DEVICE_H 00020 #define _G2_PHYSICAL_DEVICE_H 00021 00022 #include "g2.h" 00023 #include "g2_funix.h" 00024 00025 00026 typedef enum _g2_coor { /* coord. type */ 00027 g2_IntCoor, g2_DoubleCoor 00028 } g2_coor; 00029 00030 00031 typedef struct _g2_funix_fun { /* funix--function paar */ 00032 g2_funix fx; /* function index */ 00033 int (*fun)(); /* pointer to function */ 00034 } g2_funix_fun; 00035 00036 00037 typedef struct _g2_physical_device { 00038 int pid; /* physical device id */ 00039 void *pdp; /* pointer to something in phys. dev. */ 00040 g2_coor coor_type; /* coordinate type */ 00041 g2_funix_fun *ff; /* list of funix-function pairs */ 00042 double a11, a22; /* coordinate transformation (ud->pd) */ 00043 double b1, b2; /* Ar + B */ 00044 00045 double x_origin; /* User coordinates specification */ 00046 double y_origin; 00047 double x_mul; 00048 double y_mul; 00049 } g2_physical_device; 00050 00051 00052 00053 g2_physical_device *g2_create_physical_device(int pid, 00054 void *pdp, 00055 g2_coor ct, 00056 const g2_funix_fun *ff, 00057 double a11, double a22, 00058 double b1, double b2); 00059 void g2_destroy_physical_device(g2_physical_device *pd); 00060 00061 #endif /* _G2_PHYSICAL_DEVICE_H */