#include <vfont/fixpoint.h>

#ifndef CURVE_H
#define CURVE_H

#define CF_CONTOUR	    0x01        /* Draw only the countour of the line. */
#define CF_BORDER       0x02        /* Draw as it is, do not bend the line. */
#define CF_LINE         0x04        /* Draw as a line with two endpoint. */
#define CF_CURVE        0x08        /* Draw as a curve, with no endpoints. */
#define CF_DOTTED       0x10        /* Plot the verticies of the curve only. */
#define CF_STRAIGHT     0x20        /* Draw as a border. */

#define MaxVerticies    (256)


typedef struct  Curve {
    SHORT   LeftEdge,   TopEdge;
    UBYTE   FrontPen,   BackPen;
    UBYTE   DrawMode;
    UBYTE   Count;
    Point   *Verticies;    
    struct  Curve   *NextCurve;    
    UBYTE   Flags;                  /* Flags for different types of curves. */
    FIX     ScaleX;                 /* Horisontal scale. Fix point. */
    FIX     ScaleY;                 /* Vertical scale. Fix point. */
    SHORT   RX;                     /* Horisontal offset for rotation. */
    SHORT   RY;                     /* Vertical offset for rotation. */
    FIX     Angle;                  /* Angle factor. Fix point. */
    SHORT   Radie;                  /* Roundness of vertix. */
    UBYTE   EFactor;                /* Edgeness of curves. Range: 0 - 30 deg */
    UBYTE   Thick;                  /* Thickness of curve. Range: 1 - 255 */
} Curve;    


typedef struct line {
    Point from,to;
} line;


typedef struct Points {
    Point *Verticies;
    ULONG Size;
    ULONG Used;
} Points;

typedef struct BigPoint {
    LONG x;
    LONG y;
} BigPoint;

#endif CURVE_H
