00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _MAGICKCORE_GEOMETRY_H
00019 #define _MAGICKCORE_GEOMETRY_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 typedef enum
00026 {
00027 #undef NoValue
00028 NoValue = 0x0000,
00029 #undef XValue
00030 PsiValue = 0x0001,
00031 XValue = 0x0001,
00032 #undef YValue
00033 XiValue = 0x0002,
00034 YValue = 0x0002,
00035 #undef WidthValue
00036 RhoValue = 0x0004,
00037 WidthValue = 0x0004,
00038 #undef HeightValue
00039 SigmaValue = 0x0008,
00040 HeightValue = 0x0008,
00041 ChiValue = 0x0010,
00042 XiNegative = 0x0020,
00043 #undef XNegative
00044 XNegative = 0x0020,
00045 PsiNegative = 0x0040,
00046 #undef YNegative
00047 YNegative = 0x0040,
00048 ChiNegative = 0x0080,
00049 PercentValue = 0x1000,
00050 AspectValue = 0x2000,
00051 LessValue = 0x4000,
00052 GreaterValue = 0x8000,
00053 MinimumValue = 0x10000,
00054 AreaValue = 0x20000,
00055 DecimalValue = 0x40000,
00056 #undef AllValues
00057 AllValues = 0x7fffffff
00058 } GeometryFlags;
00059
00060 #if defined(ForgetGravity)
00061 #undef ForgetGravity
00062 #undef NorthWestGravity
00063 #undef NorthGravity
00064 #undef NorthEastGravity
00065 #undef WestGravity
00066 #undef CenterGravity
00067 #undef EastGravity
00068 #undef SouthWestGravity
00069 #undef SouthGravity
00070 #undef SouthEastGravity
00071 #undef StaticGravity
00072 #endif
00073
00074 typedef enum
00075 {
00076 UndefinedGravity,
00077 ForgetGravity = 0,
00078 NorthWestGravity = 1,
00079 NorthGravity = 2,
00080 NorthEastGravity = 3,
00081 WestGravity = 4,
00082 CenterGravity = 5,
00083 EastGravity = 6,
00084 SouthWestGravity = 7,
00085 SouthGravity = 8,
00086 SouthEastGravity = 9,
00087 StaticGravity = 10
00088 } GravityType;
00089
00090 typedef struct _AffineMatrix
00091 {
00092 double
00093 sx,
00094 rx,
00095 ry,
00096 sy,
00097 tx,
00098 ty;
00099 } AffineMatrix;
00100
00101 typedef struct _GeometryInfo
00102 {
00103 double
00104 rho,
00105 sigma,
00106 xi,
00107 psi,
00108 chi;
00109 } GeometryInfo;
00110
00111 typedef struct _RectangleInfo
00112 {
00113 unsigned long
00114 width,
00115 height;
00116
00117 long
00118 x,
00119 y;
00120 } RectangleInfo;
00121
00122 extern MagickExport char
00123 *GetPageGeometry(const char *);
00124
00125 extern MagickExport MagickBooleanType
00126 IsGeometry(const char *),
00127 IsSceneGeometry(const char *,const MagickBooleanType);
00128
00129 extern MagickExport MagickStatusType
00130 GetGeometry(const char *,long *,long *,unsigned long *,unsigned long *),
00131 ParseAbsoluteGeometry(const char *,RectangleInfo *),
00132 ParseAffineGeometry(const char *,AffineMatrix *),
00133 ParseGeometry(const char *,GeometryInfo *),
00134 ParseGravityGeometry(Image *,const char *,RectangleInfo *),
00135 ParseMetaGeometry(const char *,long *,long *,unsigned long *,unsigned long *),
00136 ParsePageGeometry(Image *,const char *,RectangleInfo *),
00137 ParseSizeGeometry(Image *,const char *,RectangleInfo *);
00138
00139 extern MagickExport void
00140 GravityAdjustGeometry(const unsigned long,const unsigned long,
00141 const GravityType,RectangleInfo *),
00142 SetGeometry(const Image *,RectangleInfo *),
00143 SetGeometryInfo(GeometryInfo *);
00144
00145 #if defined(__cplusplus) || defined(c_plusplus)
00146 }
00147 #endif
00148
00149 #endif