00001 #ifndef CD_H
00002 #define CD_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <stdio.h>
00025 #include "cddll.h"
00026
00027
00028
00029
00030 #define cdMaxColors 256
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #define CDSTARTLISTSIZE 4096
00042
00043
00044
00045
00046
00047
00048
00049 #define CDGROWLISTSIZE 2048
00050
00051
00052
00053
00054
00055
00056 #if defined ( __cplusplus ) || defined ( c_plusplus )
00057 extern "C" {
00058 #endif
00059
00060 typedef struct cdImageStruct
00061 {
00062
00063 unsigned char * elemlist;
00064 short int state;
00065 int red[cdMaxColors];
00066 int green[cdMaxColors];
00067 int blue[cdMaxColors];
00068 int open[cdMaxColors];
00069 int colorsTotal;
00070
00071
00072 int picnum;
00073
00074
00075 unsigned char *desc;
00076 unsigned char *fontlist;
00077 short int numfonts;
00078 FILE *outfile;
00079
00080
00081 int linespec;
00082 int edgespec;
00083 int markerspec;
00084 int sx;
00085 int sy;
00086
00087
00088 int ltype;
00089 int lwidth;
00090 int lcolor;
00091
00092
00093 int shapestyle;
00094
00095
00096 int shapecolor;
00097
00098
00099
00100 int shapehatch;
00101
00102
00103 int edgetype;
00104 int edgewidth;
00105 int edgecolor;
00106 int edgevis;
00107
00108
00109 int textfont;
00110 int textcolor;
00111 int textheight;
00112 int textpath;
00113
00114 int mtype;
00115 int msize;
00116 int mcolor;
00117
00118 long int bytestoend;
00119 long int listlen;
00120 unsigned char * curelemlist;
00121 } cdImage;
00122
00123 typedef cdImage * cdImagePtr;
00124
00125
00126
00127
00128 typedef struct cdPointStruct
00129 {
00130 int x, y, e;
00131 } cdPoint, *cdPointPtr;
00132
00133
00134
00135
00136
00137 CDDLLIMPEXP cdImagePtr cdImageCreate( int sx, int sy );
00138 CDDLLIMPEXP int cdCgmNewPic( cdImagePtr im, int sticky );
00139 CDDLLIMPEXP int cdImageCgm( cdImagePtr im, FILE * );
00140 CDDLLIMPEXP int cdImageDestroy( cdImagePtr im );
00141
00142
00143 CDDLLIMPEXP int cdLine( cdImagePtr im, int x1, int y1, int x2, int y2 );
00144
00145
00146 CDDLLIMPEXP int cdRectangle( cdImagePtr im, int x1, int y1, int x2, int y2 );
00147
00148 CDDLLIMPEXP int cdCircle( cdImagePtr im, int cx, int cy, int r );
00149
00150 CDDLLIMPEXP int cdArc3Pt( cdImagePtr im, int sx, int sy, int ix, int iy, int ex, int ey );
00151
00152 CDDLLIMPEXP int cdArc3PtClose( cdImagePtr im, int sx, int sy, int ix, int iy, int ex, int ey, int cl );
00153 CDDLLIMPEXP int cdEllipse( cdImagePtr im, int cx, int cy, int d1x, int d1y, int d2x, int d2y );
00154 CDDLLIMPEXP int cdMarker( cdImagePtr im, int x, int y );
00155
00156 CDDLLIMPEXP int cdPolygon( cdImagePtr im, cdPointPtr p, int n );
00157 CDDLLIMPEXP int cdPolygonSet( cdImagePtr im, cdPointPtr p, int n );
00158 CDDLLIMPEXP int cdPolyLine( cdImagePtr im, cdPointPtr p, int n );
00159 CDDLLIMPEXP int cdPolyMarker( cdImagePtr im, cdPointPtr p, int n );
00160
00161
00162 CDDLLIMPEXP int cdImageLine( cdImagePtr im, int x1, int y1, int x2, int y2, int color );
00163 CDDLLIMPEXP int cdImageRectangle( cdImagePtr im, int x1, int y1, int x2, int y2, int color );
00164
00165
00166 CDDLLIMPEXP int cdImageBoundsSafe( cdImagePtr im, int x, int y );
00167
00168
00169 CDDLLIMPEXP int cdText( cdImagePtr im, int x, int y, const char * );
00170
00171
00172
00173 CDDLLIMPEXP int cdImageColorAllocate( cdImagePtr im, int r, int g, int b );
00174 CDDLLIMPEXP int cdImageColorClosest( cdImagePtr im, int r, int g, int b );
00175 CDDLLIMPEXP int cdImageColorExact( cdImagePtr im, int r, int g, int b );
00176 CDDLLIMPEXP int cdImageColorDeallocate( cdImagePtr , int );
00177
00178 CDDLLIMPEXP int cdImageColor16( cdImagePtr im );
00179
00180
00181 CDDLLIMPEXP int cdSetLineAttrib( cdImagePtr im, int lntype, int lnwidth, int lncolor );
00182 CDDLLIMPEXP int cdSetShapeFillAttrib( cdImagePtr im, int instyle, int incolor, int inhatch );
00183 CDDLLIMPEXP int cdSetShapeEdgeAttrib( cdImagePtr im, int edtype, int edwidth, int edcolor, int edvis );
00184 CDDLLIMPEXP int cdSetTextAttrib( cdImagePtr im, int font, int color, int height );
00185 CDDLLIMPEXP int cdSetMarkerAttrib( cdImagePtr im, int mtype, int msize, int mcolor );
00186
00187
00188 CDDLLIMPEXP int cdSetLineType( cdImagePtr im, int lntype );
00189 CDDLLIMPEXP int cdSetLineWidth( cdImagePtr im, int lnwidth );
00190 CDDLLIMPEXP int cdSetLineColor( cdImagePtr im, int lncolor );
00191 CDDLLIMPEXP int cdSetFillStyle( cdImagePtr im, int instyle );
00192 CDDLLIMPEXP int cdSetFillColor( cdImagePtr im, int incolor );
00193 CDDLLIMPEXP int cdSetFillHatch( cdImagePtr im, int inhatch );
00194 CDDLLIMPEXP int cdSetEdgeType( cdImagePtr im, int edtype );
00195 CDDLLIMPEXP int cdSetEdgeWidth( cdImagePtr im, int edwidth );
00196 CDDLLIMPEXP int cdSetEdgeColor( cdImagePtr im, int edcolor );
00197 CDDLLIMPEXP int cdSetEdgeVis( cdImagePtr im, int edvis );
00198 CDDLLIMPEXP int cdSetTextFont( cdImagePtr im, int font );
00199 CDDLLIMPEXP int cdSetTextColor( cdImagePtr im, int color );
00200 CDDLLIMPEXP int cdSetTextHeight( cdImagePtr im, int height );
00201
00202 CDDLLIMPEXP int cdSetTextPath( cdImagePtr im, int tpath );
00203 CDDLLIMPEXP int cdSetTextOrient( cdImagePtr im, int xup, int yup, int xbase, int ybase );
00204 CDDLLIMPEXP int cdSetMarkerType( cdImagePtr im, int mtype );
00205 CDDLLIMPEXP int cdSetMarkerSize( cdImagePtr im, int msize );
00206 CDDLLIMPEXP int cdSetMarkerColor( cdImagePtr im, int mcolor );
00207
00208
00209 CDDLLIMPEXP int cdImageSetSize( cdImagePtr im, int x, int y );
00210 CDDLLIMPEXP int cdImageSetLineSpec( cdImagePtr im, int specmode );
00211 CDDLLIMPEXP int cdImageSetMarkerSpec( cdImagePtr im, int specmode );
00212 CDDLLIMPEXP int cdImageSetEdgeSpec( cdImagePtr im, int specmode );
00213 CDDLLIMPEXP int cdImageSetOutput( cdImagePtr im, FILE *output );
00214 CDDLLIMPEXP int cdImageAddFont( cdImagePtr im, const char *fontname );
00215 CDDLLIMPEXP int cdImageClearFonts( cdImagePtr im );
00216 CDDLLIMPEXP cdImagePtr cdImageStartCgm();
00217 CDDLLIMPEXP int cdCgmHeader( cdImagePtr );
00218 CDDLLIMPEXP int cdCgmPic( cdImagePtr, int );
00219 CDDLLIMPEXP int cdImageSetDefaults( cdImagePtr im );
00220 CDDLLIMPEXP int cdImageEndPic( cdImagePtr im );
00221 CDDLLIMPEXP int cdImageEndCgm( cdImagePtr im );
00222
00223
00224
00225 #define cdImageSX( im ) ( ( im )->sx )
00226 #define cdImageSY( im ) ( ( im )->sy )
00227 #define cdImageColorsTotal( im ) ( ( im )->colorsTotal )
00228 #define cdImageRed( im, c ) ( ( im )->red[( c )] )
00229 #define cdImageGreen( im, c ) ( ( im )->green[( c )] )
00230 #define cdImageBlue( im, c ) ( ( im )->blue[( c )] )
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240 #define SIZEOF( object ) ( (size_t) sizeof ( object ) )
00241
00242
00243
00244 CDDLLIMPEXP int cdImageColorClear( cdImagePtr im );
00245
00246 #if defined ( __cplusplus ) || defined ( c_plusplus )
00247 }
00248 #endif
00249
00250
00251 #endif