1 #ifndef FONTFORGE_SPLINESTROKE_H
2 #define FONTFORGE_SPLINESTROKE_H
3 
4 #include "splinefont.h"
5 
6 enum ShapeType {
7 	Shape_Convex,
8 	Shape_CCWTurn,
9 	Shape_CCW,
10 	Shape_Quadratic,
11 	Shape_PointOnEdge,
12 	Shape_TooFewPoints,
13 	Shape_NotClosed,
14 	Shape_TinySpline,
15 	Shape_HalfLinear,
16 	Shape_BadCP_R1,
17 	Shape_BadCP_R2,
18 	Shape_BadCP_R3,
19 	Shape_SelfIntersects
20 };
21 
22 extern StrokeInfo *CVFreeHandInfo();
23 extern StrokeInfo *CVStrokeInfo();
24 extern int ConvexNibID(const char *tok);
25 extern int StrokeSetConvex(SplineSet *ss, int toknum);
26 extern SplineSet *StrokeGetConvex(int toknum, int cpy);
27 extern enum ShapeType NibIsValid(SplineSet *);
28 extern void SplineStrokeSimpleFixup(SplinePoint *tailp, BasePoint p);
29 extern const char *NibShapeTypeMsg(enum ShapeType st);
30 extern SplinePoint *AppendCubicSplinePortion(Spline *s, bigreal t_start,
31                                              bigreal t_end, SplinePoint *start);
32 extern SplinePoint *AppendCubicSplineSetPortion(Spline *s, bigreal t_start,
33                                                 Spline *s_end, bigreal t_end,
34                                                 SplinePoint *dst_start,
35                                                 int backward);
36 extern void SSAppendArc(SplineSet *cur, bigreal major, bigreal minor,
37                         BasePoint ang, BasePoint ut_fm, BasePoint ut_to,
38                         int bk, int limit);
39 extern SplineSet *SplineSetStroke(SplineSet *ss, StrokeInfo *si, int order2);
40 extern SplineSet *UnitShape(int n);
41 extern void FVStrokeItScript(void *_fv, StrokeInfo *si, int pointless_argument);
42 
43 #endif /* FONTFORGE_SPLINESTROKE_H */
44