/*
 GerberConversion
 Copyright (C) 2010 Martin Štrympl
 
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 3.0 of the License, or (at your option) any later version.
 
 This program 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
 General Public License for more details.
 
 You should have received a copy of the GNU General Public
 License along with this program.
 
 Martin Štrympl
 xstrym00@stud.feec.vutbr.cz
 */

/*
 *  Draw.h
 *  GerberConversion
 *
 *  Created by Martin Štrympl on 11/3/10.
 *  Copyright 2010 School. All rights reserved.
 *
 */

#include "Headers.h"

#ifndef DRAW_H_INCLUDED
#define DRAW_H_INCLUDED

struct sGerber_Point
{
  long double ld_x, ld_y;
};

typedef int (*fGerber_Draw_LineSegment)(void *v_mem, struct sGerber_Point *ps_From, struct sGerber_Point *ps_To, bool b_positive,
                                        bool b_incut);
typedef int (*fGerber_Draw_OvalSegment)(void *v_mem, struct sGerber_Point *ps_centre, long double ld_radiusX, long double ld_radiusY,
                                          long double ld_aglefrom, long double ld_agleto, bool b_positive,
                                          bool b_incut);

#define Mac_Head_Gerber_Draw_LineSegment void *v_mem, struct sGerber_Point *ps_From, struct sGerber_Point *ps_To, bool b_positive,\
                                          bool b_incut
#define Mac_Head_Gerber_Draw_OvalSegment void *v_mem, struct sGerber_Point *ps_centre, long double ld_radiusX, long double ld_radiusY,\
                                            long double ld_aglefrom, long double ld_agleto, bool b_positive,\
                                            bool b_incut

#define Mac_Fun_Gerber_Draw_LineSegment(name) int name(Mac_Head_Gerber_Draw_LineSegment)
#define Mac_Fun_Gerber_Draw_OvalSegment(name) int name(Mac_Head_Gerber_Draw_OvalSegment)

// standart draw functions draw to text

#endif //DRAW_H_INCLUDED
