1/*
2 * Author:      William Chia-Wei Cheng (bill.cheng@acm.org)
3 *
4 * Copyright (C) 2001-2009, William Chia-Wei Cheng.
5 *
6 * This file may be distributed under the terms of the Q Public License
7 * as defined by Trolltech AS of Norway and appearing in the file
8 * LICENSE.QPL included in the packaging of this file.
9 *
10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING
11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12 * PURPOSE.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 *
18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/spline.e,v 1.25 2011/05/16 16:21:59 william Exp $
19 */
20
21#ifndef _SPLINE_E_
22#define _SPLINE_E_
23
24extern int	intSplineTension;
25extern int	splineTol;
26extern int	tighterStructSplines;
27
28extern double	splineFactor3;
29extern double	splineFactor4;
30extern double	curveToFactor;
31
32#ifdef _INCLUDE_FROM_SPLINE_C_
33#undef extern
34#define extern
35#endif /*_INCLUDE_FROM_SPLINE_C_*/
36
37extern int	ReadSplineTightness ARGS_DECL((char*));
38extern void	CalcAutoRetractedArrowAttrBend ARGS_DECL((int Style,
39				int X0, int Y0, int X2, int Y2, int *X1,
40				int *Y1));
41extern IntPoint	*GetStructuredSplinePolyTickMarkVs ARGS_DECL((int *pn_N,
42				struct ObjRec *, struct PolyRec *,
43				struct PolygonRec *));
44extern IntPoint	*GetStructuredSplinePolygonTickMarkVs ARGS_DECL((int *pn_N,
45				int NumVs, IntPoint *Vs));
46extern IntPoint	*MakeStructuredSplinePolyVertex ARGS_DECL((int *pn_N,
47				char **ppszSmooth, int NumVs, IntPoint *Vs));
48extern IntPoint	*MakeStructuredSplinePolygonVertex ARGS_DECL((int *pn_N,
49				char **ppszSmooth, int NumVs, IntPoint *Vs));
50extern XPoint	*MakeSplinePolyVertex ARGS_DECL((int Level, int Curved, int *N,
51				int XOff, int YOff, int NumVs, IntPoint *));
52extern XPoint	*MakeMultiSplinePolyVertex ARGS_DECL((int Curved, int *N,
53				char *Smooth, int XOff, int YOff, int NumVs,
54				IntPoint *));
55extern XPoint	*MakeSplinePolygonVertex ARGS_DECL((int Level, int Curved,
56				int *N, int XOff, int YOff, int NumVs,
57				IntPoint *));
58extern XPoint	*MakeMultiSplinePolygonVertex ARGS_DECL((int Curved, int *N,
59				char *Smooth, int XOff, int YOff, int NumVs,
60				IntPoint*));
61extern XPoint	*MakeIntSplinePolyVertex ARGS_DECL((int *N, int *CntrlN,
62				IntPoint **CntrlVs, int XOff, int YOff,
63				int NumVs, IntPoint *));
64extern XPoint	*MakeIntSplinePolygonVertex ARGS_DECL((int *N, int *CntrlN,
65				IntPoint **CntrlVs, int XOff, int YOff,
66				int NumVs, IntPoint*));
67extern XPoint	*MakeDoubleIntSplinePolygonVertex ARGS_DECL((int *N,
68				int *CntrlN, DoublePoint**CntrlVs, int XOff,
69				int YOff, int NumVs, DoublePoint*));
70extern void	DumpCurvedPolyPoints ARGS_DECL((FILE*, int Curved, int NumPts,
71				IntPoint*, int Indent));
72extern void	DumpCurvedPolygonPoints ARGS_DECL((FILE*, int Curved,
73				int NumPts, IntPoint*, int Indent));
74extern void	DumpMultiCurvedPolyPoints ARGS_DECL((FILE*, char *Smooth,
75				int Style, int Curved, int NumPts, IntPoint*,
76				int Indent));
77extern void	DumpMultiCurvedPolygonPoints ARGS_DECL((FILE*, char *Smooth,
78				int Curved, int NumPts, IntPoint*, int Indent));
79
80#ifdef _INCLUDE_FROM_SPLINE_C_
81#undef extern
82#ifndef _NO_RECURSIVE_EXTERN
83#define extern extern
84#endif /* ~_NO_RECURSIVE_EXTERN */
85#endif /*_INCLUDE_FROM_SPLINE_C_*/
86
87#endif /*_SPLINE_E_*/
88