- Main Page
- Modules
- Files
- Related Pages

# g2_physical_device.h

    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 */