00001
00028 #ifndef INC_MI32_DRAWGEN_H
00029 #define INC_MI32_DRAWGEN_H
00030
00031 #ifndef INC_MI32_DELEGATE_H
00032 #include <mi32/delegate.h>
00033 #endif
00034
00035
00036 #ifdef GEOMDLL
00037 #define GEOMLIBEXPORT MI_DLLEXPORT
00038 #else
00039 #define GEOMLIBEXPORT MI_DLLIMPORT
00040 #endif
00041
00042 #ifndef GENERATING_DOXYGEN_OUTPUT
00043 class MISTATUSMANAGER;
00044 #endif
00045
00046
00048
00049
00052
00053 #if defined(__cplusplus)
00054 extern "C" {
00055 #endif
00056
00058 typedef fastdelegate::FastDelegate<ERRVALUE(INT32,INT32)> DELEGATE_DRAWGEN_POINT;
00059
00061 typedef fastdelegate::FastDelegate<ERRVALUE(INT32,INT32,INT32)> DELEGATE_DRAWGEN_SPAN;
00062
00064 typedef fastdelegate::FastDelegate<int(INT32,INT32)> DELEGATE_DRAWGEN_TEST;
00065
00067 typedef int (*GDrawHSpanL)(INT32,INT32,INT32,void*);
00068
00070 typedef int (*GDrawPointL)(INT32,INT32,void*);
00071
00073 typedef int (*GTestPointL)(INT32,INT32,void*);
00074
00075 #define DRAWGEN_Closed 0x0002
00076 #define DRAWGEN_NoLastPixel 0x0040
00077 #define DRAWGEN_4Connected 0x0080
00078
00079 #define TRACEGEN_8Connected 0x0001
00080
00082 ERRVALUE DrawGenCircleFilled (
00083 INT32 x,
00084 INT32 y,
00085 INT32 radius,
00086 DELEGATE_DRAWGEN_SPAN DelegateSpan
00087 );
00088
00090 GEOMLIBEXPORT int DrawLineGen (
00091 INT32 x1,
00092 INT32 y1,
00093 INT32 x2,
00094 INT32 y2,
00095 GDrawPointL gdrawpoint,
00096 void *userdata,
00097 UINT32 flags
00098
00099 );
00100
00102 GEOMLIBEXPORT int DrawLinesGen (
00103 LPOINT2D *points,
00104 int numpoints,
00105 GDrawPointL gdrawpoint,
00106 void *userdata,
00107 UINT32 flags
00108
00109
00110 );
00111
00113 GEOMLIBEXPORT int DrawLineWideGen (
00114 INT32 x1,
00115 INT32 y1,
00116 INT32 x2,
00117 INT32 y2,
00118 double width,
00119 GDrawHSpanL gdrawhspan,
00120 GDrawPointL gdrawpoint,
00121 void *userdata,
00122 UINT32 flags
00123
00124 );
00125
00127 GEOMLIBEXPORT int FillPolygonsGen (
00128 int numpolys,
00129 LPOLYGON *polys,
00130 GDrawHSpanL gdrawhspan,
00131 GDrawPointL gdrawpoint,
00132 void *userdata,
00133 UINT32 flags = 0,
00134 MISTATUSMANAGER *pStatusMgr = 0
00135 );
00136
00138 int FillSeededGenL (
00139 INT32 SeedX,
00140 INT32 SeedY,
00141 GTestPointL TestInside,
00142 GDrawHSpanL gdrawhspan,
00143 LPOINT2D* boundpt,
00144 void *userdata,
00145 UINT32 flags
00146 );
00147
00149 int TraceBoundaryL (
00150 INT32 xstart,
00151 INT32 ystart,
00152 LPOLYGON *poly,
00153 GTestPointL testfunc,
00154 void *userdata,
00155 UINT32 flags
00156
00157 );
00158
00159 #if defined(__cplusplus)
00160 }
00161 #endif
00162
00164
00165 #endif
00166