Adobe.com
Contents Suites Classes Class Index Member Index

AIGeometry.h

Go to the documentation of this file.
00001 #ifndef __AIGeometry__
00002 #define __AIGeometry__
00003 
00004 /*
00005  *        Name: AIGeometry.h
00006  *     Purpose: Adobe Illustrator Geometry Suite
00007  *
00008  * ADOBE SYSTEMS INCORPORATED
00009  * Copyright 1996-2007 Adobe Systems Incorporated.
00010  * All rights reserved.
00011  *
00012  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00013  * in accordance with the terms of the Adobe license agreement 
00014  * accompanying it. If you have received this file from a source other 
00015  * than Adobe, then your use, modification, or distribution of it 
00016  * requires the prior written permission of Adobe.
00017  *
00018  */
00019 
00020 /*******************************************************************************
00021  **
00022  **     Imports
00023  **
00024  **/
00025 
00026 #include "AIArt.h"
00027 #include "AIPathStyle.h"
00028 #include "AIRaster.h"
00029 
00030 
00031 #include "AIHeaderBegin.h"
00032 
00035 /*******************************************************************************
00036  **
00037  ** Constants
00038  **
00039  **/
00040 
00041 #define kAIGeometrySuite                "AI Geometry Suite"
00042 #define kAIGeometryVersion6             AIAPI_VERSION(6)
00043 #define kAIGeometrySuiteVersion kAIGeometryVersion6
00044 
00045 
00047 #define kCancelledErr                   kCanceledErr
00048 
00049 #define kFormatErr                              'FRM!'
00050 
00051 
00056 typedef enum {
00058         kAIGeometryOrganizeNull = 0,
00060         kAIGeometryOrganizePath,
00062         kAIGeometryOrganizeGroup,
00064         kAIGeometryOrganizeCompound,
00066         kAIGeometryOrganizePlaced,
00068         kAIGeometryOrganizeRaster,
00071         kAIGeometryOrganizeText,
00075         kAIGeometryOrganizeTextPath,
00078         kAIGeometryOrganizeTextLine,
00080         kAIGeometryOrganizeClipGroup,
00082         kAIGeometryOrganizeMask,
00084         kAIGeometryOrganizeMesh,
00086         kAIGeometryOrganizeSymbol,
00089         kAIGeometryOrganizeForeignObject,
00092         kAIGeometryOrganizeLegacyText,
00094         kAIGeometryOrganizeChart,
00097         kAIGeometryOrganizePluginArt,
00099         kAIGeometryOrganizeGraph,
00101     kAIGeometryOrganizeRepeat,
00103         kAIGeometryOrganizeDummy = 0xFFFFFFFF
00104 
00105 } AIGeometryOrganizationType;
00106 
00107 
00108 /*******************************************************************************
00109  **
00110  **     Types
00111  **
00112  **/
00113 
00117 typedef void *AIGeometryUserData;
00118 
00126 typedef ai::int16 (*AIGeometryBeginProc)(AIGeometryUserData userData, AIArtHandle object);
00127 
00135 typedef ai::int16 (*AIGeometryEndProc)(AIGeometryUserData userData, AIArtHandle object);
00136 
00144 typedef ai::int16 (*AIGeometryMoveToProc)(AIGeometryUserData userData, AIRealPoint *p);
00145 
00153 typedef ai::int16 (*AIGeometryLineToProc)(AIGeometryUserData userData, AIRealPoint *p);
00154 
00164 typedef ai::int16 (*AIGeometryCurveToProc)(AIGeometryUserData userData, AIRealPoint *p1, AIRealPoint *p2, AIRealPoint *p3);
00165 
00172 typedef ai::int16 (*AIGeometryClosePathProc)(AIGeometryUserData userData);
00173 
00180 typedef ai::int16 (*AIGeometryFillProc)(AIGeometryUserData userData);
00181 
00188 typedef ai::int16 (*AIGeometryStrokeProc)(AIGeometryUserData userData);
00189 
00196 typedef ai::int16 (*AIGeometryClipProc)(AIGeometryUserData userData);
00197 
00205 typedef ai::int16 (*AIGeometryImageProc)(AIGeometryUserData userData, AIArtHandle raster);
00206 
00214 typedef ai::int16 (*AIGeometryImageMaskProc)(AIGeometryUserData userData, AIArtHandle raster);
00215 
00223 typedef ai::int16 (*AIGeometrySetGrayProc)(AIGeometryUserData userData, AIReal gray);
00224 
00235 typedef ai::int16 (*AIGeometrySetCMYKColorProc)(AIGeometryUserData userData, AIReal cyan, AIReal magenta, AIReal yellow, AIReal black);
00236 
00246 typedef ai::int16 (*AIGeometrySetRGBColorProc)(AIGeometryUserData userData, AIReal red, AIReal green, AIReal blue);
00247 
00255 typedef ai::int16 (*AIGeometrySetAlphaProc)(AIGeometryUserData userData, AIReal alpha);
00256 
00265 typedef ai::int16 (*AIGeometrySetCustomColorProc)(AIGeometryUserData userData, AICustomColorHandle customColor, AIReal tint);
00266 
00281 typedef ai::int16 (*AIGeometrySetGradientColorProc)(AIGeometryUserData userData,
00282                                                                                                 AIGradientHandle gradient,
00283                                                                                                 AIRealPoint *gradientOrigin,
00284                                                                                                 AIReal gradientAngle,
00285                                                                                                 AIReal gradientLength,
00286                                                                                                 AIReal hiliteAngle,
00287                                                                                                 AIReal hiliteLength,
00288                                                                                                 AIRealMatrix *matrix);
00289 
00306 typedef ai::int16 (*AIGeometrySetPatternColorProc)(AIGeometryUserData userData,
00307                                                                                            AIPatternHandle pattern,
00308                                                                                            AIReal shiftDistance,
00309                                                                                            AIReal shiftAngle,
00310                                                                                            AIRealPoint *scale,
00311                                                                                            AIReal rotateAngle,
00312                                                                                            AIBoolean reflect,
00313                                                                                            AIReal reflectAngle,
00314                                                                                            AIReal shearAngle,
00315                                                                                            AIReal shearAxis,
00316                                                                                            AIRealMatrix *matrix);
00324 typedef ai::int16 (*AIGeometryImageCallback)(AIGeometryUserData userData,
00325                                                                                  AIArtHandle raster,
00326                                                                                  AISlice *artSlice,
00327                                                                                  AITile *workTile,
00328                                                                                  AISlice *workSlice);
00329 
00337 typedef ai::int16 (*AIGeometrySetLineWidthProc)(AIGeometryUserData userData, AIReal lineWidth);
00338 
00346 typedef ai::int16 (*AIGeometrySetLineCapProc)(AIGeometryUserData userData, AILineCap lineCap);
00347 
00355 typedef ai::int16 (*AIGeometrySetLineJoinProc)(AIGeometryUserData userData, AILineJoin lineJoin);
00356 
00364 typedef ai::int16 (*AIGeometrySetMiterLimitProc)(AIGeometryUserData userData, AIReal miterLimit);
00365 
00375 typedef ai::int16 (*AIGeometrySetDashProc)(AIGeometryUserData userData, AIReal offset, ai::int16 length, AIReal array[]);
00376 
00382 typedef struct {
00383 
00385         AIGeometryOrganizationType type;
00387         AIGeometryBeginProc begin;
00389         AIGeometryEndProc end;
00390 
00391 } AIGeometryOrganizationProcs;
00392 
00397 typedef struct {
00398         AIGeometryMoveToProc moveTo;
00399         AIGeometryLineToProc lineTo;
00400         AIGeometryCurveToProc curveTo;
00401         AIGeometryClosePathProc closePath;
00402 
00403 } AIGeometryConstructionProcs;
00404 
00413 typedef struct {
00414 
00415         AIGeometryFillProc fill;
00416         AIGeometryFillProc eofill;
00417         AIGeometryStrokeProc stroke;
00418         AIGeometryClipProc clip;
00419         AIGeometryClipProc eoclip;
00420         AIGeometryImageProc image;
00421         AIGeometryImageMaskProc imageMask;
00422 
00423 } AIGeometryPaintingProcs;
00424 
00429 typedef struct {
00430 
00431         AIGeometrySetGrayProc setWhiteColor;
00432         AIGeometrySetGrayProc setBlackColor;
00433         AIGeometrySetGrayProc setGrayColor;
00434         AIGeometrySetCMYKColorProc setCMYKColor;
00435         AIGeometrySetRGBColorProc setRGBColor; /* unimplemented */
00436         AIGeometrySetAlphaProc setAlpha; /* unimplemented */
00437         AIGeometrySetCustomColorProc setCustomColor;
00438         AIGeometrySetGradientColorProc setGradientColor;
00439         AIGeometrySetPatternColorProc setPatternColor;
00440 
00441         AIGeometrySetLineWidthProc setLineWidth;
00442         AIGeometrySetLineCapProc setLineCap;
00443         AIGeometrySetLineJoinProc setLineJoin;
00444         AIGeometrySetMiterLimitProc setMiterLimit;
00445         AIGeometrySetDashProc setDash;
00446 
00447 } AIGeometryStateProcs;
00448 
00449 
00450 /*******************************************************************************
00451  **
00452  **     Suite
00453  **
00454  **/
00455 
00477 typedef struct {
00478 
00496         ASAPI AIErr (*GeometryIterate) ( AIArtHandle art,
00497                                                                          AIGeometryOrganizationProcs *organizationProcs,
00498                                                                          AIGeometryConstructionProcs *constructionProcs,
00499                                                                          AIGeometryPaintingProcs *paintingProcs,
00500                                                                          AIGeometryStateProcs *stateProcs,
00501                                                                          AIGeometryUserData userData,
00502                                                                          ai::int32 skipArtTypes);
00503 
00504 } AIGeometrySuite;
00505 
00506 
00507 #include "AIHeaderEnd.h"
00508 
00509 
00510 #endif


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2014 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks