20#if !defined(Magick_Drawable_header)
21#define Magick_Drawable_header
23#include "Magick++/Include.h"
29#include "Magick++/Color.h"
30#include "Magick++/Geometry.h"
32#if defined(MagickDLLExplicitTemplate)
33# if defined(MAGICK_PLUSPLUS_IMPLEMENTATION)
34# define MagickDrawableExtern
36# pragma warning( disable: 4231 )
37# define MagickDrawableExtern extern
40# define MagickDrawableExtern
62 void x(
double x_) { _x=x_; }
63 double x(
void)
const {
return _x; }
65 void y(
double y_) { _y=y_; }
66 double y(
void)
const {
return _y; }
73 typedef std::vector<Magick::Coordinate> CoordinateList;
75#if defined(MagickDLLExplicitTemplate)
77 MagickDrawableExtern
template class MagickPPExport
78 std::allocator<Magick::Coordinate>;
83 extern MagickPPExport
int operator ==
85 extern MagickPPExport
int operator !=
87 extern MagickPPExport
int operator >
89 extern MagickPPExport
int operator <
91 extern MagickPPExport
int operator >=
93 extern MagickPPExport
int operator <=
110 virtual void operator()(MagickCore::DrawingWand *)
const;
140 void operator()(MagickCore::DrawingWand *)
const;
146 typedef std::vector<Magick::Drawable> DrawableList;
148#if defined(MagickDLLExplicitTemplate)
150 MagickDrawableExtern
template class MagickPPExport
151 std::allocator<Magick::Drawable>;
173 virtual void operator()( MagickCore::DrawingWand *context_ )
const = 0;
203 void operator()( MagickCore::DrawingWand *context_ )
const;
209typedef std::vector<Magick::VPath> VPathList;
211#if defined(MagickDLLExplicitTemplate)
213MagickDrawableExtern
template class MagickPPExport
214std::allocator<Magick::VPath>;
230 double rx_,
double ry_,
231 double tx_,
double ty_ );
238 void operator()( MagickCore::DrawingWand *context_ )
const;
244 void sx(
const double sx_ )
248 double sx(
void )
const
253 void sy(
const double sy_ )
257 double sy(
void )
const
262 void rx(
const double rx_ )
266 double rx(
void )
const
271 void ry(
const double ry_ )
275 double ry(
void )
const
280 void tx(
const double tx_ )
284 double tx(
void )
const
289 void ty(
const double ty_ )
293 double ty(
void )
const
299 MagickCore::AffineMatrix _affine;
310 _paintMethod(paintMethod_)
317 void operator()(MagickCore::DrawingWand *context_)
const;
342 void paintMethod(PaintMethod paintMethod_)
344 _paintMethod=paintMethod_;
347 PaintMethod paintMethod(
void)
const
349 return(_paintMethod);
356 PaintMethod _paintMethod;
364 double endX_,
double endY_,
365 double startDegrees_,
double endDegrees_ )
370 _startDegrees(startDegrees_),
371 _endDegrees(endDegrees_)
377 void operator()( MagickCore::DrawingWand *context_ )
const;
382 void startX(
double startX_ )
386 double startX(
void )
const
391 void startY(
double startY_ )
395 double startY(
void )
const
400 void endX(
double endX_ )
404 double endX(
void )
const
409 void endY(
double endY_ )
413 double endY(
void )
const
418 void startDegrees(
double startDegrees_ )
420 _startDegrees = startDegrees_;
422 double startDegrees(
void )
const
424 return _startDegrees;
427 void endDegrees(
double endDegrees_ )
429 _endDegrees = endDegrees_;
431 double endDegrees(
void )
const
441 double _startDegrees;
459 void operator()( MagickCore::DrawingWand *context_ )
const;
465 CoordinateList _coordinates;
480 void operator()(MagickCore::DrawingWand *context_)
const;
482 void color(
const Color &color_);
483 Color color(
void)
const;
502 void operator()(MagickCore::DrawingWand *context_)
const;
504 void fillRule(
const FillRule fillRule_);
505 FillRule fillRule(
void)
const;
524 void operator()(MagickCore::DrawingWand *context_)
const;
526 void units(
const ClipPathUnits units_);
527 ClipPathUnits units(
void)
const;
533 ClipPathUnits _units;
548 void operator()( MagickCore::DrawingWand *context_ )
const;
568 void operator()( MagickCore::DrawingWand *context_ )
const;
587 void operator()( MagickCore::DrawingWand *context_ )
const;
592 void clip_path(
const std::string &id_ )
596 std::string clip_path(
void )
const
610 double perimX_,
double perimY_ )
611 : _originX(originX_),
621 void operator()( MagickCore::DrawingWand *context_ )
const;
626 void originX(
double originX_ )
630 double originX(
void )
const
635 void originY(
double originY_ )
639 double originY(
void )
const
644 void perimX(
double perimX_ )
648 double perimX(
void )
const
653 void perimY(
double perimY_ )
657 double perimY(
void )
const
674 PaintMethod paintMethod_ )
677 _paintMethod(paintMethod_)
683 void operator()( MagickCore::DrawingWand *context_ )
const;
692 double x(
void )
const
701 double y(
void )
const
706 void paintMethod( PaintMethod paintMethod_ )
708 _paintMethod = paintMethod_;
710 PaintMethod paintMethod(
void )
const
718 PaintMethod _paintMethod;
722class MagickPPExport
Image;
727 const std::string &filename_ );
730 const Image &image_ );
733 double width_,
double height_,
734 const std::string &filename_ );
737 double width_,
double height_,
738 const Image &image_ );
741 double width_,
double height_,
742 const std::string &filename_,
743 CompositeOperator composition_ );
746 double width_,
double height_,
748 CompositeOperator composition_ );
761 void operator()( MagickCore::DrawingWand *context_ )
const;
766 void composition( CompositeOperator composition_ )
768 _composition = composition_;
770 CompositeOperator composition(
void )
const
775 void filename(
const std::string &image_ );
776 std::string filename(
void )
const;
782 double x(
void )
const
791 double y(
void )
const
796 void width(
double width_ )
800 double width(
void )
const
805 void height(
double height_ )
809 double height(
void )
const
814 void image(
const Image &image_ );
818 void magick( std::string magick_ );
819 std::string magick(
void );
822 CompositeOperator _composition;
841 void operator()(MagickCore::DrawingWand *context_)
const;
846 std::string _density;
854 double radiusX_,
double radiusY_,
855 double arcStart_,
double arcEnd_ )
856 : _originX(originX_),
860 _arcStart(arcStart_),
867 void operator()( MagickCore::DrawingWand *context_ )
const;
872 void originX(
double originX_ )
876 double originX(
void )
const
881 void originY(
double originY_ )
885 double originY(
void )
const
890 void radiusX(
double radiusX_ )
894 double radiusX(
void )
const
899 void radiusY(
double radiusY_ )
903 double radiusY(
void )
const
908 void arcStart(
double arcStart_ )
910 _arcStart = arcStart_;
912 double arcStart(
void )
const
917 void arcEnd(
double arcEnd_ )
921 double arcEnd(
void )
const
946 void operator()( MagickCore::DrawingWand *context_ )
const;
951 void color(
const Color &color_ )
955 Color color(
void )
const
979 void operator()(MagickCore::DrawingWand *context_)
const;
981 void url(
const std::string &url_);
982 std::string url(
void)
const;
996 : _fillRule(fillRule_)
1003 void operator()( MagickCore::DrawingWand *context_ )
const;
1008 void fillRule(
const FillRule fillRule_ )
1010 _fillRule = fillRule_;
1012 FillRule fillRule(
void )
const
1027 : _opacity(opacity_)
1034 void operator()(MagickCore::DrawingWand *context_)
const;
1039 void opacity(
double opacity_)
1044 double opacity(
void)
const
1061 const unsigned int weight_,
1062 StretchType stretch_ );
1068 void operator()( MagickCore::DrawingWand *context_ )
const;
1073 void font(
const std::string &font_ )
1077 std::string font(
void )
const
1084 std::string _family;
1086 unsigned int _weight;
1087 StretchType _stretch;
1095 : _gravity(gravity_)
1102 void operator()( MagickCore::DrawingWand *context_ )
const;
1107 void gravity( GravityType gravity_ )
1109 _gravity = gravity_;
1111 GravityType gravity(
void )
const
1117 GravityType _gravity;
1125 double endX_,
double endY_ )
1135 void operator()( MagickCore::DrawingWand *context_ )
const;
1140 void startX(
double startX_ )
1144 double startX(
void )
const
1149 void startY(
double startY_ )
1153 double startY(
void )
const
1158 void endX(
double endX_ )
1162 double endX(
void )
const
1167 void endY(
double endY_ )
1171 double endY(
void )
const
1194 void operator()( MagickCore::DrawingWand *context_ )
const;
1215 void operator()( MagickCore::DrawingWand *context_ )
const;
1224 double x(
void )
const
1233 double y(
void )
const
1248 : _pointSize(pointSize_)
1254 void operator()( MagickCore::DrawingWand *context_ )
const;
1259 void pointSize(
double pointSize_ )
1261 _pointSize = pointSize_;
1263 double pointSize(
void )
const
1283 void operator()( MagickCore::DrawingWand *context_ )
const;
1289 CoordinateList _coordinates;
1303 void operator()( MagickCore::DrawingWand *context_ )
const;
1309 CoordinateList _coordinates;
1324 void operator()( MagickCore::DrawingWand *context_ )
const;
1345 void operator()( MagickCore::DrawingWand *context_ )
const;
1366 void operator()( MagickCore::DrawingWand *context_ )
const;
1380 size_t width_,
size_t height_ );
1387 void operator()( MagickCore::DrawingWand *context_ )
const;
1405 double lowerRightX_,
double lowerRightY_ )
1406 : _upperLeftX(upperLeftX_),
1407 _upperLeftY(upperLeftY_),
1408 _lowerRightX(lowerRightX_),
1409 _lowerRightY(lowerRightY_)
1415 void operator()( MagickCore::DrawingWand *context_ )
const;
1420 void upperLeftX(
double upperLeftX_ )
1422 _upperLeftX = upperLeftX_;
1424 double upperLeftX(
void )
const
1429 void upperLeftY(
double upperLeftY_ )
1431 _upperLeftY = upperLeftY_;
1433 double upperLeftY(
void )
const
1438 void lowerRightX(
double lowerRightX_ )
1440 _lowerRightX = lowerRightX_;
1442 double lowerRightX(
void )
const
1444 return _lowerRightX;
1447 void lowerRightY(
double lowerRightY_ )
1449 _lowerRightY = lowerRightY_;
1451 double lowerRightY(
void )
const
1453 return _lowerRightY;
1459 double _lowerRightX;
1460 double _lowerRightY;
1474 void operator()( MagickCore::DrawingWand *context_ )
const;
1479 void angle(
double angle_ )
1483 double angle(
void )
const
1497 double lowerRightX_,
double lowerRightY_,
1498 double cornerWidth_,
double cornerHeight_ )
1499 : _upperLeftX(upperLeftX_),
1500 _upperLeftY(upperLeftY_),
1501 _lowerRightX(lowerRightX_),
1502 _lowerRightY(lowerRightY_),
1503 _cornerWidth(cornerWidth_),
1504 _cornerHeight(cornerHeight_)
1510 void operator()( MagickCore::DrawingWand *context_ )
const;
1515#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1517 void centerX(
double centerX_ )
1519 _upperLeftX = centerX_;
1521 double centerX(
void )
const
1526 void centerY(
double centerY_ )
1528 _upperLeftY = centerY_;
1530 double centerY(
void )
const
1535 void width(
double width_ )
1537 _lowerRightX = width_;
1539 double width(
void )
const
1541 return _lowerRightX;
1544 void hight(
double hight_ )
1546 _lowerRightY = hight_;
1548 double hight(
void )
const
1550 return _lowerRightY;
1555 void upperLeftX(
double upperLeftX_ )
1557 _upperLeftX = upperLeftX_;
1559 double upperLeftX(
void )
const
1564 void upperLeftY(
double upperLeftY_ )
1566 _upperLeftY = upperLeftY_;
1568 double upperLeftY(
void )
const
1573 void lowerRightX(
double lowerRightX_ )
1575 _lowerRightX = lowerRightX_;
1577 double lowerRightX(
void )
const
1579 return _lowerRightX;
1582 void lowerRightY(
double lowerRightY_ )
1584 _lowerRightY = lowerRightY_;
1586 double lowerRightY(
void )
const
1588 return _lowerRightY;
1591 void cornerWidth(
double cornerWidth_ )
1593 _cornerWidth = cornerWidth_;
1595 double cornerWidth(
void )
const
1597 return _cornerWidth;
1600 void cornerHeight(
double cornerHeight_ )
1602 _cornerHeight = cornerHeight_;
1604 double cornerHeight(
void )
const
1606 return _cornerHeight;
1612 double _lowerRightX;
1613 double _lowerRightY;
1614 double _cornerWidth;
1615 double _cornerHeight;
1630 void operator()( MagickCore::DrawingWand *context_ )
const;
1639 double x(
void )
const
1648 double y(
void )
const
1669 void operator()( MagickCore::DrawingWand *context_ )
const;
1674 void angle(
double angle_ )
1678 double angle(
void )
const
1698 void operator()( MagickCore::DrawingWand *context_ )
const;
1703 void angle(
double angle_ )
1707 double angle(
void )
const
1732 void operator()(MagickCore::DrawingWand *context_)
const;
1737 void dasharray(
const double* dasharray_);
1738 const double* dasharray(
void)
const;
1759 void operator()(MagickCore::DrawingWand *context_)
const;
1764 void offset(
const double offset_);
1765 double offset(
void)
const;
1776 : _linecap(linecap_)
1782 void operator()( MagickCore::DrawingWand *context_ )
const;
1787 void linecap( LineCap linecap_ )
1789 _linecap = linecap_;
1791 LineCap linecap(
void )
const
1805 : _linejoin(linejoin_)
1811 void operator()( MagickCore::DrawingWand *context_ )
const;
1816 void linejoin( LineJoin linejoin_ )
1818 _linejoin = linejoin_;
1820 LineJoin linejoin(
void )
const
1834 : _miterlimit(miterlimit_)
1840 void operator()( MagickCore::DrawingWand *context_ )
const;
1845 void miterlimit(
size_t miterlimit_ )
1847 _miterlimit = miterlimit_;
1849 size_t miterlimit(
void )
const
1870 void operator()(MagickCore::DrawingWand *context_)
const;
1872 void url(
const std::string &url_);
1873 std::string url(
void)
const;
1893 void operator()( MagickCore::DrawingWand *context_ )
const;
1898 void flag(
bool flag_ )
1902 bool flag(
void )
const
1922 void operator()( MagickCore::DrawingWand *context_ )
const;
1927 void color(
const Color& color_ )
1931 Color color(
void )
const
1946 : _opacity(opacity_)
1953 void operator()(MagickCore::DrawingWand *context_)
const;
1958 void opacity(
double opacity_)
1963 double opacity(
void)
const
1983 void operator()( MagickCore::DrawingWand *context_ )
const;
1988 void width(
double width_ )
1992 double width(
void )
const
2006 const std::string &text_ );
2008 const std::string &text_,
const std::string &encoding_);
2015 void operator()( MagickCore::DrawingWand *context_ )
const;
2020 void encoding(
const std::string &encoding_)
2022 _encoding = encoding_;
2029 double x(
void )
const
2038 double y(
void )
const
2043 void text(
const std::string &text_ )
2047 std::string text(
void )
const
2056 std::string _encoding;
2071 void operator()(MagickCore::DrawingWand *context_)
const;
2073 void alignment(AlignType alignment_);
2074 AlignType alignment(
void)
const;
2080 AlignType _alignment;
2094 void operator()( MagickCore::DrawingWand *context_ )
const;
2099 void flag(
bool flag_ )
2103 bool flag(
void )
const
2123 void operator()( MagickCore::DrawingWand *context_ )
const;
2128 void decoration( DecorationType decoration_ )
2130 _decoration = decoration_;
2132 DecorationType decoration(
void )
const
2138 DecorationType _decoration;
2150 void operator()(MagickCore::DrawingWand *context_)
const;
2152 void direction(DirectionType direction_);
2153 DirectionType direction(
void)
const;
2158 DirectionType _direction;
2170 void operator()(MagickCore::DrawingWand *context_)
const;
2172 void spacing(
double spacing_);
2173 double spacing(
void)
const;
2190 void operator()(MagickCore::DrawingWand *context_)
const;
2192 void spacing(
double spacing_);
2193 double spacing(
void)
const;
2210 void operator()(MagickCore::DrawingWand *context_)
const;
2212 void kerning(
double kerning_);
2213 double kerning(
void)
const;
2232 void operator()( MagickCore::DrawingWand *context_ )
const;
2237 void color(
const Color& color_ )
2241 Color color(
void )
const
2262 void operator()( MagickCore::DrawingWand *context_ )
const;
2271 double x(
void )
const
2280 double y(
void )
const
2295 ::ssize_t x2_, ::ssize_t y2_)
2304 void operator()( MagickCore::DrawingWand *context_ )
const;
2310 void x1( ::ssize_t x1_ )
2314 ::ssize_t x1(
void )
const
2319 void y1( ::ssize_t y1_ )
2323 ::ssize_t y1(
void )
const
2328 void x2( ::ssize_t x2_ )
2332 ::ssize_t x2(
void )
const
2337 void y2( ::ssize_t y2_ )
2341 ::ssize_t y2(
void )
const
2362 double xAxisRotation_,
bool largeArcFlag_,
2363 bool sweepFlag_,
double x_,
double y_ );
2369 void radiusX(
double radiusX_ )
2371 _radiusX = radiusX_;
2373 double radiusX(
void )
const
2378 void radiusY(
double radiusY_ )
2380 _radiusY = radiusY_;
2382 double radiusY(
void )
const
2387 void xAxisRotation(
double xAxisRotation_ )
2389 _xAxisRotation = xAxisRotation_;
2391 double xAxisRotation(
void )
const
2393 return _xAxisRotation;
2396 void largeArcFlag(
bool largeArcFlag_ )
2398 _largeArcFlag = largeArcFlag_;
2400 bool largeArcFlag(
void )
const
2402 return _largeArcFlag;
2405 void sweepFlag(
bool sweepFlag_ )
2407 _sweepFlag = sweepFlag_;
2409 bool sweepFlag(
void )
const
2418 double x(
void )
const
2427 double y(
void )
const
2435 double _xAxisRotation;
2443extern MagickPPExport
int operator == (
const PathArcArgs& left_,
2445extern MagickPPExport
int operator != (
const PathArcArgs& left_,
2447extern MagickPPExport
int operator > (
const PathArcArgs& left_,
2449extern MagickPPExport
int operator < (
const PathArcArgs& left_,
2451extern MagickPPExport
int operator >= (
const PathArcArgs& left_,
2453extern MagickPPExport
int operator <= (
const PathArcArgs& left_,
2456typedef std::vector<Magick::PathArcArgs> PathArcArgsList;
2458#if defined(MagickDLLExplicitTemplate)
2460MagickDrawableExtern
template class MagickPPExport
2461std::allocator<Magick::PathArcArgs>;
2476 PathArcAbs (
const PathArcArgsList &coordinates_ );
2485 void operator()( MagickCore::DrawingWand *context_ )
const;
2491 PathArcArgsList _coordinates;
2500 PathArcRel (
const PathArcArgsList &coordinates_ );
2507 void operator()( MagickCore::DrawingWand *context_ )
const;
2513 PathArcArgsList _coordinates;
2528 void operator()( MagickCore::DrawingWand *context_ )
const;
2546 double x2_,
double y2_,
2547 double x_,
double y_ );
2553 void x1(
double x1_ )
2557double x1(
void )
const
2562void y1(
double y1_ )
2566double y1(
void )
const
2571void x2(
double x2_ )
2575double x2(
void )
const
2580void y2(
double y2_ )
2584double y2(
void )
const
2593double x(
void )
const
2602double y(
void )
const
2630typedef std::vector<Magick::PathCurvetoArgs> PathCurveToArgsList;
2632#if defined(MagickDLLExplicitTemplate)
2634MagickDrawableExtern
template class MagickPPExport
2635std::allocator<Magick::PathCurvetoArgs>;
2658 void operator()( MagickCore::DrawingWand *context_ )
const;
2664 PathCurveToArgsList _args;
2681 void operator()( MagickCore::DrawingWand *context_ )
const;
2687 PathCurveToArgsList _args;
2704 void operator()( MagickCore::DrawingWand *context_ )
const;
2711 CoordinateList _coordinates;
2729 void operator()( MagickCore::DrawingWand *context_ )
const;
2736 CoordinateList _coordinates;
2748 double x_,
double y_ );
2754 void x1(
double x1_ )
2758 double x1(
void )
const
2763 void y1(
double y1_ )
2767 double y1(
void )
const
2776 double x(
void )
const
2785 double y(
void )
const
2811typedef std::vector<Magick::PathQuadraticCurvetoArgs> PathQuadraticCurvetoArgsList;
2813#if defined(MagickDLLExplicitTemplate)
2815MagickDrawableExtern
template class MagickPPExport
2816std::allocator<Magick::PathQuadraticCurvetoArgs>;
2839 void operator()( MagickCore::DrawingWand *context_ )
const;
2845 PathQuadraticCurvetoArgsList _args;
2863 void operator()( MagickCore::DrawingWand *context_ )
const;
2869 PathQuadraticCurvetoArgsList _args;
2887 void operator()( MagickCore::DrawingWand *context_ )
const;
2893 CoordinateList _coordinates;
2911 void operator()( MagickCore::DrawingWand *context_ )
const;
2917 CoordinateList _coordinates;
2939 void operator()( MagickCore::DrawingWand *context_ )
const;
2945 CoordinateList _coordinates;
2963 void operator()( MagickCore::DrawingWand *context_ )
const;
2969 CoordinateList _coordinates;
2984 void operator()( MagickCore::DrawingWand *context_ )
const;
2993 double x(
void )
const
3012 void operator()( MagickCore::DrawingWand *context_ )
const;
3021 double x(
void )
const
3042 void operator()( MagickCore::DrawingWand *context_ )
const;
3051 double y(
void )
const
3070 void operator()( MagickCore::DrawingWand *context_ )
const;
3079 double y(
void )
const
3105 void operator()( MagickCore::DrawingWand *context_ )
const;
3111 CoordinateList _coordinates;
3129 void operator()( MagickCore::DrawingWand *context_ )
const;
3135 CoordinateList _coordinates;