1 /*
2   Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4 
5   You may not use this file except in compliance with the License.  You may
6   obtain a copy of the License at
7 
8     https://imagemagick.org/script/license.php
9 
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15 
16   MagickWand drawing wand methods.
17 */
18 #ifndef MAGICKWAND_DRAWING_WAND_H
19 #define MAGICKWAND_DRAWING_WAND_H
20 
21 #include "wand/pixel-wand.h"
22 
23 #if defined(__cplusplus) || defined(c_plusplus)
24 extern "C" {
25 #endif
26 
27 typedef struct _DrawingWand
28   DrawingWand;
29 
30 extern WandExport AlignType
31   DrawGetTextAlignment(const DrawingWand *);
32 
33 extern WandExport char
34   *DrawGetClipPath(const DrawingWand *),
35   *DrawGetDensity(const DrawingWand *),
36   *DrawGetException(const DrawingWand *,ExceptionType *),
37   *DrawGetFont(const DrawingWand *),
38   *DrawGetFontFamily(const DrawingWand *),
39   *DrawGetTextEncoding(const DrawingWand *),
40   *DrawGetVectorGraphics(DrawingWand *);
41 
42 extern WandExport ClipPathUnits
43   DrawGetClipUnits(const DrawingWand *) magick_attribute((__pure__));
44 
45 extern WandExport DecorationType
46   DrawGetTextDecoration(const DrawingWand *) magick_attribute((__pure__));
47 
48 extern WandExport DirectionType
49   DrawGetTextDirection(const DrawingWand *);
50 
51 extern WandExport double
52   DrawGetFillOpacity(const DrawingWand *) magick_attribute((__pure__)),
53   DrawGetFontSize(const DrawingWand *) magick_attribute((__pure__)),
54   DrawGetOpacity(const DrawingWand *) magick_attribute((__pure__)),
55   *DrawGetStrokeDashArray(const DrawingWand *,size_t *),
56   DrawGetStrokeDashOffset(const DrawingWand *) magick_attribute((__pure__)),
57   DrawGetStrokeOpacity(const DrawingWand *) magick_attribute((__pure__)),
58   DrawGetStrokeWidth(const DrawingWand *) magick_attribute((__pure__)),
59   DrawGetTextKerning(DrawingWand *) magick_attribute((__pure__)),
60   DrawGetTextInterlineSpacing(DrawingWand *) magick_attribute((__pure__)),
61   DrawGetTextInterwordSpacing(DrawingWand *) magick_attribute((__pure__));
62 
63 extern WandExport DrawInfo
64   *PeekDrawingWand(const DrawingWand *);
65 
66 extern WandExport DrawingWand
67   *AcquireDrawingWand(const DrawInfo *,Image *),
68   *CloneDrawingWand(const DrawingWand *),
69   *DestroyDrawingWand(DrawingWand *),
70   *NewDrawingWand(void);
71 
72 extern WandExport ExceptionType
73   DrawGetExceptionType(const DrawingWand *);
74 
75 extern WandExport FillRule
76   DrawGetClipRule(const DrawingWand *) magick_attribute((__pure__)),
77   DrawGetFillRule(const DrawingWand *) magick_attribute((__pure__));
78 
79 extern WandExport GravityType
80   DrawGetGravity(const DrawingWand *) magick_attribute((__pure__));
81 
82 extern WandExport LineCap
83   DrawGetStrokeLineCap(const DrawingWand *) magick_attribute((__pure__));
84 
85 extern WandExport LineJoin
86   DrawGetStrokeLineJoin(const DrawingWand *) magick_attribute((__pure__));
87 
88 extern WandExport MagickBooleanType
89   DrawClearException(DrawingWand *),
90   DrawComposite(DrawingWand *,const CompositeOperator,const double,const double,
91     const double,const double,MagickWand *),
92   DrawGetFontResolution(const DrawingWand *,double *,double *),
93   DrawGetStrokeAntialias(const DrawingWand *) magick_attribute((__pure__)),
94   DrawGetTextAntialias(const DrawingWand *) magick_attribute((__pure__)),
95   DrawPopPattern(DrawingWand *),
96   DrawPushPattern(DrawingWand *,const char *,const double,const double,
97     const double,const double),
98   DrawRender(DrawingWand *),
99   DrawSetClipPath(DrawingWand *,const char *),
100   DrawSetDensity(DrawingWand *,const char *),
101   DrawSetFillPatternURL(DrawingWand *,const char *),
102   DrawSetFont(DrawingWand *,const char *),
103   DrawSetFontFamily(DrawingWand *,const char *),
104   DrawSetFontResolution(DrawingWand *,const double,const double),
105   DrawSetStrokeDashArray(DrawingWand *,const size_t,const double *),
106   DrawSetStrokePatternURL(DrawingWand *,const char *),
107   DrawSetVectorGraphics(DrawingWand *,const char *),
108   IsDrawingWand(const DrawingWand *),
109   PopDrawingWand(DrawingWand *),
110   PushDrawingWand(DrawingWand *);
111 
112 extern WandExport StretchType
113   DrawGetFontStretch(const DrawingWand *);
114 
115 extern WandExport StyleType
116   DrawGetFontStyle(const DrawingWand *);
117 
118 extern WandExport size_t
119   DrawGetFontWeight(const DrawingWand *) magick_attribute((__pure__)),
120   DrawGetStrokeMiterLimit(const DrawingWand *) magick_attribute((__pure__));
121 
122 extern WandExport void
123   ClearDrawingWand(DrawingWand *),
124   DrawAffine(DrawingWand *,const AffineMatrix *),
125   DrawAnnotation(DrawingWand *,const double,const double,const unsigned char *),
126   DrawArc(DrawingWand *,const double,const double,const double,const double,
127     const double,const double),
128   DrawBezier(DrawingWand *,const size_t,const PointInfo *),
129   DrawGetBorderColor(const DrawingWand *,PixelWand *),
130   DrawCircle(DrawingWand *,const double,const double,const double,const double),
131   DrawColor(DrawingWand *,const double,const double,const PaintMethod),
132   DrawComment(DrawingWand *,const char *),
133   DrawEllipse(DrawingWand *,const double,const double,const double,const double,
134     const double,const double),
135   DrawGetFillColor(const DrawingWand *,PixelWand *),
136   DrawGetStrokeColor(const DrawingWand *,PixelWand *),
137   DrawSetTextKerning(DrawingWand *,const double),
138   DrawSetTextInterlineSpacing(DrawingWand *,const double),
139   DrawSetTextInterwordSpacing(DrawingWand *,const double),
140   DrawGetTextUnderColor(const DrawingWand *,PixelWand *),
141   DrawLine(DrawingWand *,const double, const double,const double,const double),
142   DrawMatte(DrawingWand *,const double,const double,const PaintMethod),
143   DrawPathClose(DrawingWand *),
144   DrawPathCurveToAbsolute(DrawingWand *,const double,const double,const double,
145     const double,const double,const double),
146   DrawPathCurveToRelative(DrawingWand *,const double,const double,const double,
147     const double,const double, const double),
148   DrawPathCurveToQuadraticBezierAbsolute(DrawingWand *,const double,
149     const double,const double,const double),
150   DrawPathCurveToQuadraticBezierRelative(DrawingWand *,const double,
151     const double,const double,const double),
152   DrawPathCurveToQuadraticBezierSmoothAbsolute(DrawingWand *,const double,
153     const double),
154   DrawPathCurveToQuadraticBezierSmoothRelative(DrawingWand *,const double,
155     const double),
156   DrawPathCurveToSmoothAbsolute(DrawingWand *,const double,const double,
157     const double,const double),
158   DrawPathCurveToSmoothRelative(DrawingWand *,const double,const double,
159     const double,const double),
160   DrawPathEllipticArcAbsolute(DrawingWand *,const double,const double,
161     const double,const MagickBooleanType,const MagickBooleanType,const double,
162     const double),
163   DrawPathEllipticArcRelative(DrawingWand *,const double,const double,
164     const double,const MagickBooleanType,const MagickBooleanType,const double,
165     const double),
166   DrawPathFinish(DrawingWand *),
167   DrawPathLineToAbsolute(DrawingWand *,const double,const double),
168   DrawPathLineToRelative(DrawingWand *,const double,const double),
169   DrawPathLineToHorizontalAbsolute(DrawingWand *,const double),
170   DrawPathLineToHorizontalRelative(DrawingWand *,const double),
171   DrawPathLineToVerticalAbsolute(DrawingWand *,const double),
172   DrawPathLineToVerticalRelative(DrawingWand *,const double),
173   DrawPathMoveToAbsolute(DrawingWand *,const double,const double),
174   DrawPathMoveToRelative(DrawingWand *,const double,const double),
175   DrawPathStart(DrawingWand *),
176   DrawPoint(DrawingWand *,const double,const double),
177   DrawPolygon(DrawingWand *,const size_t,const PointInfo *),
178   DrawPolyline(DrawingWand *,const size_t,const PointInfo *),
179   DrawPopClipPath(DrawingWand *),
180   DrawPopDefs(DrawingWand *),
181   DrawPushClipPath(DrawingWand *,const char *),
182   DrawPushDefs(DrawingWand *),
183   DrawRectangle(DrawingWand *,const double,const double,const double,
184     const double),
185   DrawResetVectorGraphics(DrawingWand *),
186   DrawRotate(DrawingWand *,const double),
187   DrawRoundRectangle(DrawingWand *,double,double,double,double,double,double),
188   DrawScale(DrawingWand *,const double,const double),
189   DrawSetBorderColor(DrawingWand *,const PixelWand *),
190   DrawSetClipRule(DrawingWand *,const FillRule),
191   DrawSetClipUnits(DrawingWand *,const ClipPathUnits),
192   DrawSetFillColor(DrawingWand *,const PixelWand *),
193   DrawSetFillOpacity(DrawingWand *,const double),
194   DrawSetFillRule(DrawingWand *,const FillRule),
195   DrawSetFontSize(DrawingWand *,const double),
196   DrawSetFontStretch(DrawingWand *,const StretchType),
197   DrawSetFontStyle(DrawingWand *,const StyleType),
198   DrawSetFontWeight(DrawingWand *,const size_t),
199   DrawSetGravity(DrawingWand *,const GravityType),
200   DrawSetOpacity(DrawingWand *,const double),
201   DrawSetStrokeAntialias(DrawingWand *,const MagickBooleanType),
202   DrawSetStrokeColor(DrawingWand *,const PixelWand *),
203   DrawSetStrokeDashOffset(DrawingWand *,const double dashoffset),
204   DrawSetStrokeLineCap(DrawingWand *,const LineCap),
205   DrawSetStrokeLineJoin(DrawingWand *,const LineJoin),
206   DrawSetStrokeMiterLimit(DrawingWand *,const size_t),
207   DrawSetStrokeOpacity(DrawingWand *, const double),
208   DrawSetStrokeWidth(DrawingWand *,const double),
209   DrawSetTextAlignment(DrawingWand *,const AlignType),
210   DrawSetTextAntialias(DrawingWand *,const MagickBooleanType),
211   DrawSetTextDecoration(DrawingWand *,const DecorationType),
212   DrawSetTextDirection(DrawingWand *,const DirectionType),
213   DrawSetTextEncoding(DrawingWand *,const char *),
214   DrawSetTextUnderColor(DrawingWand *,const PixelWand *),
215   DrawSetViewbox(DrawingWand *,ssize_t,ssize_t,ssize_t,ssize_t),
216   DrawSkewX(DrawingWand *,const double),
217   DrawSkewY(DrawingWand *,const double),
218   DrawTranslate(DrawingWand *,const double,const double);
219 
220 #if defined(__cplusplus) || defined(c_plusplus)
221 }
222 #endif
223 
224 #endif
225