pcb 4.1.1
An interactive printed circuit board layout editor.

curve.h

Go to the documentation of this file.
00001 
00018 #ifndef CURVE_H
00019 #define CURVE_H
00020 
00021 #include "auxiliary.h"
00022 
00034 struct privcurve_s
00035 {
00036   int n; 
00037   int *tag; 
00038     dpoint_t (*c)[3];
00044   int alphacurve; 
00045   dpoint_t *vertex; 
00046   double *alpha; 
00047   double *alpha0;
00049   double *beta;
00050 };
00051 typedef struct privcurve_s privcurve_t;
00052 
00053 struct sums_s
00054 {
00055   double x;
00056   double y;
00057   double x2;
00058   double xy;
00059   double y2;
00060 };
00061 typedef struct sums_s sums_t;
00062 
00072 struct potrace_privpath_s
00073 {
00074   int len;
00075   point_t *pt; 
00076   int *lon; 
00077   int x0; 
00078   int y0; 
00079   sums_t *sums; 
00080   int m; 
00081   int *po; 
00082   privcurve_t curve; 
00083   privcurve_t ocurve; 
00084   privcurve_t *fcurve;
00087 };
00088 typedef struct potrace_privpath_s potrace_privpath_t;
00089 
00090 /* shorter names */
00091 typedef potrace_privpath_t privpath_t;
00092 typedef potrace_path_t path_t;
00093 
00094 path_t *path_new (void);
00095 void path_free (path_t * p);
00096 void pathlist_free (path_t * plist);
00097 int privcurve_init (privcurve_t * curve, int n);
00098 void privcurve_to_curve (privcurve_t * pc, potrace_curve_t * c);
00099 
00100 #endif /* CURVE_H */