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         kAIGeometryOrganizeDummy = 0xFFFFFFFF
00102 
00103 } AIGeometryOrganizationType;
00104 
00105 
00106 /*******************************************************************************
00107  **
00108  **     Types
00109  **
00110  **/
00111 
00115 typedef void *AIGeometryUserData;
00116 
00124 typedef ai::int16 (*AIGeometryBeginProc)(AIGeometryUserData userData, AIArtHandle object);
00125 
00133 typedef ai::int16 (*AIGeometryEndProc)(AIGeometryUserData userData, AIArtHandle object);
00134 
00142 typedef ai::int16 (*AIGeometryMoveToProc)(AIGeometryUserData userData, AIRealPoint *p);
00143 
00151 typedef ai::int16 (*AIGeometryLineToProc)(AIGeometryUserData userData, AIRealPoint *p);
00152 
00162 typedef ai::int16 (*AIGeometryCurveToProc)(AIGeometryUserData userData, AIRealPoint *p1, AIRealPoint *p2, AIRealPoint *p3);
00163 
00170 typedef ai::int16 (*AIGeometryClosePathProc)(AIGeometryUserData userData);
00171 
00178 typedef ai::int16 (*AIGeometryFillProc)(AIGeometryUserData userData);
00179 
00186 typedef ai::int16 (*AIGeometryStrokeProc)(AIGeometryUserData userData);
00187 
00194 typedef ai::int16 (*AIGeometryClipProc)(AIGeometryUserData userData);
00195 
00203 typedef ai::int16 (*AIGeometryImageProc)(AIGeometryUserData userData, AIArtHandle raster);
00204 
00212 typedef ai::int16 (*AIGeometryImageMaskProc)(AIGeometryUserData userData, AIArtHandle raster);
00213 
00221 typedef ai::int16 (*AIGeometrySetGrayProc)(AIGeometryUserData userData, AIReal gray);
00222 
00233 typedef ai::int16 (*AIGeometrySetCMYKColorProc)(AIGeometryUserData userData, AIReal cyan, AIReal magenta, AIReal yellow, AIReal black);
00234 
00244 typedef ai::int16 (*AIGeometrySetRGBColorProc)(AIGeometryUserData userData, AIReal red, AIReal green, AIReal blue);
00245 
00253 typedef ai::int16 (*AIGeometrySetAlphaProc)(AIGeometryUserData userData, AIReal alpha);
00254 
00263 typedef ai::int16 (*AIGeometrySetCustomColorProc)(AIGeometryUserData userData, AICustomColorHandle customColor, AIReal tint);
00264 
00279 typedef ai::int16 (*AIGeometrySetGradientColorProc)(AIGeometryUserData userData,
00280                                                                                                 AIGradientHandle gradient,
00281                                                                                                 AIRealPoint *gradientOrigin,
00282                                                                                                 AIReal gradientAngle,
00283                                                                                                 AIReal gradientLength,
00284                                                                                                 AIReal hiliteAngle,
00285                                                                                                 AIReal hiliteLength,
00286                                                                                                 AIRealMatrix *matrix);
00287 
00304 typedef ai::int16 (*AIGeometrySetPatternColorProc)(AIGeometryUserData userData,
00305                                                                                            AIPatternHandle pattern,
00306                                                                                            AIReal shiftDistance,
00307                                                                                            AIReal shiftAngle,
00308                                                                                            AIRealPoint *scale,
00309                                                                                            AIReal rotateAngle,
00310                                                                                            AIBoolean reflect,
00311                                                                                            AIReal reflectAngle,
00312                                                                                            AIReal shearAngle,
00313                                                                                            AIReal shearAxis,
00314                                                                                            AIRealMatrix *matrix);
00322 typedef ai::int16 (*AIGeometryImageCallback)(AIGeometryUserData userData,
00323                                                                                  AIArtHandle raster,
00324                                                                                  AISlice *artSlice,
00325                                                                                  AITile *workTile,
00326                                                                                  AISlice *workSlice);
00327 
00335 typedef ai::int16 (*AIGeometrySetLineWidthProc)(AIGeometryUserData userData, AIReal lineWidth);
00336 
00344 typedef ai::int16 (*AIGeometrySetLineCapProc)(AIGeometryUserData userData, AILineCap lineCap);
00345 
00353 typedef ai::int16 (*AIGeometrySetLineJoinProc)(AIGeometryUserData userData, AILineJoin lineJoin);
00354 
00362 typedef ai::int16 (*AIGeometrySetMiterLimitProc)(AIGeometryUserData userData, AIReal miterLimit);
00363 
00373 typedef ai::int16 (*AIGeometrySetDashProc)(AIGeometryUserData userData, AIReal offset, ai::int16 length, AIReal array[]);
00374 
00380 typedef struct {
00381 
00383         AIGeometryOrganizationType type;
00385         AIGeometryBeginProc begin;
00387         AIGeometryEndProc end;
00388 
00389 } AIGeometryOrganizationProcs;
00390 
00395 typedef struct {
00396         AIGeometryMoveToProc moveTo;
00397         AIGeometryLineToProc lineTo;
00398         AIGeometryCurveToProc curveTo;
00399         AIGeometryClosePathProc closePath;
00400 
00401 } AIGeometryConstructionProcs;
00402 
00411 typedef struct {
00412 
00413         AIGeometryFillProc fill;
00414         AIGeometryFillProc eofill;
00415         AIGeometryStrokeProc stroke;
00416         AIGeometryClipProc clip;
00417         AIGeometryClipProc eoclip;
00418         AIGeometryImageProc image;
00419         AIGeometryImageMaskProc imageMask;
00420 
00421 } AIGeometryPaintingProcs;
00422 
00427 typedef struct {
00428 
00429         AIGeometrySetGrayProc setWhiteColor;
00430         AIGeometrySetGrayProc setBlackColor;
00431         AIGeometrySetGrayProc setGrayColor;
00432         AIGeometrySetCMYKColorProc setCMYKColor;
00433         AIGeometrySetRGBColorProc setRGBColor; /* unimplemented */
00434         AIGeometrySetAlphaProc setAlpha; /* unimplemented */
00435         AIGeometrySetCustomColorProc setCustomColor;
00436         AIGeometrySetGradientColorProc setGradientColor;
00437         AIGeometrySetPatternColorProc setPatternColor;
00438 
00439         AIGeometrySetLineWidthProc setLineWidth;
00440         AIGeometrySetLineCapProc setLineCap;
00441         AIGeometrySetLineJoinProc setLineJoin;
00442         AIGeometrySetMiterLimitProc setMiterLimit;
00443         AIGeometrySetDashProc setDash;
00444 
00445 } AIGeometryStateProcs;
00446 
00447 
00448 /*******************************************************************************
00449  **
00450  **     Suite
00451  **
00452  **/
00453 
00475 typedef struct {
00476 
00494         ASAPI AIErr (*GeometryIterate) ( AIArtHandle art,
00495                                                                          AIGeometryOrganizationProcs *organizationProcs,
00496                                                                          AIGeometryConstructionProcs *constructionProcs,
00497                                                                          AIGeometryPaintingProcs *paintingProcs,
00498                                                                          AIGeometryStateProcs *stateProcs,
00499                                                                          AIGeometryUserData userData,
00500                                                                          ai::int32 skipArtTypes);
00501 
00502 } AIGeometrySuite;
00503 
00504 
00505 #include "AIHeaderEnd.h"
00506 
00507 
00508 #endif


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