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