Adobe.com
Contents Suites Classes Class Index Member Index

AIPathfinder.h

Go to the documentation of this file.
00001 #ifndef __AIPathfinder__
00002 #define __AIPathfinder__
00003 
00004 /*
00005  *        Name: AIPathfinder.h
00006  *   $Revision: 7 $
00007  *      Author:
00008  *        Date:
00009  *     Purpose: Adobe Illustrator Pathfinder Suite.
00010  *
00011  * ADOBE SYSTEMS INCORPORATED
00012  * Copyright 1986-2007 Adobe Systems Incorporated.
00013  * All rights reserved.
00014  *
00015  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00016  * in accordance with the terms of the Adobe license agreement 
00017  * accompanying it. If you have received this file from a source other 
00018  * than Adobe, then your use, modification, or distribution of it 
00019  * requires the prior written permission of Adobe.
00020  *
00021  */
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
00027  **
00028  **/
00029 
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033 
00034 #ifndef __AIArt__
00035 #include "AIArt.h"
00036 #endif
00037 
00038 #ifndef __AIFilter__
00039 #include "AIFilter.h"
00040 #endif
00041 
00042 #ifndef __AIMenu__
00043 #include "AIMenu.h"
00044 #endif
00045 
00046 #ifndef __AIPlugin__
00047 #include "AIPlugin.h"
00048 #endif
00049 
00050 
00051 #include "AIHeaderBegin.h"
00052 
00053 
00057 /*******************************************************************************
00058  **
00059  ** Constants
00060  **
00061  **/
00063 #define kAIPathfinderSuite                      "AI Pathfinder Suite"
00064 
00065 #define kAIPathfinderSuiteVersion6      AIAPI_VERSION(6)
00066 
00067 #define kAIPathfinderSuiteVersion       kAIPathfinderSuiteVersion6
00068 
00069 #define kAIPathfinderVersion            kAIPathfinderSuiteVersion
00070 
00072 #define kDefaultPrecision                               10.0
00073 
00074 #define kRemoveRedundantPointsDefault   0
00075 
00076 #define kExtractUnpaintedArtworkDefault 0
00077 
00078 #define kAllowEmptyOutputDefault                0
00079 
00080 #define kIgnoreEvenOddFillRuleDefault   0
00081 
00083 #define kSoftRateDefault                                0.5
00084 
00085 #define kMixConvertCustomColorsDefault  1
00086 
00087 // Trap parameters
00089 #define kTrapThicknessDefault                   0.25
00090 
00091 #define kHeightWidthAspectRatioDefault  1.0
00092 
00093 #define kTrapTintDefault                                0.4
00094 
00095 #define kMaximumTintDefault                     1.0
00096 
00097 #define kTintToleranceDefault                   0.05
00098 
00099 #define kReverseTrapDefault                             0
00100 
00101 #define kTrapConvertCustomColorsDefault 0
00102 
00103 
00105 #define pointsPerMicron (72.0 / 25400.0)
00106 
00108 enum AIOptionsFlagValues {
00110         kExtractUnpaintedArtwork        = 0x00001,
00116         kAllowEmptyOutput                       = 0x10000,
00119         kIgnoreEvenOddFillRule          = 0x20000,
00122         kSuppressProgressDialog         = 0x40000,
00125         kDeselectResultArts                     = 0x80000
00126 
00127 };
00128 
00129 /*******************************************************************************
00130  **
00131  ** Types
00132  **
00133  **/
00134 
00136 typedef double                  dbl;
00137 
00139 typedef struct {
00143         double                          ipmPrecision;
00145         ai::int32                               removeRedundantPoints;
00147         ai::int32                       flags;
00148 } AIOptions;
00149 
00151 typedef struct {
00154         double                          softRate;
00157         ai::int32                               convertCustomColors;
00158 } AIMixParameters;
00159 
00164 typedef struct {
00167         double                          trapThickness;
00170         double                          heightWidthAspectRatio;
00173         double                          trapTint;
00176         double                          maximumTint;
00179         double                          tintTolerance;
00182         ai::int32                               reverseTrap;
00185         ai::int32                               convertCustomColors;
00186 } AITrapParameters;
00187 
00189 typedef struct {
00191         AIMixParameters         mixParameters;
00193         AITrapParameters                trapParameters;
00194 } AIParameters;
00195 
00197 typedef struct {
00199         AIOptions                               options;
00201         AIParameters                    parameters;
00204         AIArtHandle                                     *fSelectedArt;
00206         ai::int32                                               fSelectedArtCount;
00208         ai::int32                                       fAlertInfoID;
00209 } AIPathfinderData;
00210 
00211 
00213 typedef struct {
00215         SPMessageData                           d;
00217         AIPathfinderData                        pathfinderData;
00218 } AIPathfinderMessage;
00219 
00223 typedef enum AIShapeMode
00224 {
00226         kAIShapeModeAdd = 0,
00228         kAIShapeModeSubtract,
00230         kAIShapeModeIntersect,
00232         kAIShapeModeExclude
00233 } AIShapeMode;
00234 
00235 
00236 /*******************************************************************************
00237  **
00238  **     Suite
00239  **
00240  **/
00241 
00256 typedef struct {
00257 
00262         AIAPI AIErr (*DoUniteEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00263 
00268         AIAPI AIErr (*DoIntersectEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00269 
00274         AIAPI AIErr (*DoExcludeEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00275 
00280         AIAPI AIErr (*DoBackMinusFrontEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00281 
00286         AIAPI AIErr (*DoFrontMinusBackEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00287 
00292         AIAPI AIErr (*DoDivideEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00293 
00298         AIAPI AIErr (*DoOutlineEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00299 
00304         AIAPI AIErr (*DoTrimEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00305 
00310         AIAPI AIErr (*DoMergeEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00311 
00316         AIAPI AIErr (*DoCropEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00317 
00322         AIAPI AIErr (*DoHardEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00323 
00328         AIAPI AIErr (*DoSoftEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00329 
00334         AIAPI AIErr (*DoTrapEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00335 
00340         AIAPI AIErr (*GetHardEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00341 
00346         AIAPI AIErr (*GetSoftEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00347 
00352         AIAPI AIErr (*GetTrapEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00353 
00358         AIAPI AIErr (*GetGlobalOptions) ( AIPathfinderData *data, AIFilterMessage *message );
00359 
00360         // New in AI 10.0: Compound Shapes
00366         AIAPI AIShapeMode (*GetShapeMode) ( AIArtHandle art );
00367 
00373         AIAPI AIErr (*SetShapeMode) ( AIArtHandle art, AIShapeMode mode );
00374 
00382         AIAPI AIErr (*NewCompoundShape) ( ai::int16 paintOrder, AIArtHandle prep, AIArtHandle *newArt );
00383 
00388         AIAPI AIErr (*IsCompoundShape) ( AIArtHandle art, AIBoolean *isCompoundShape );
00389 
00395         AIAPI AIErr (*FlattenArt) ( AIArtHandle *inOutArt );
00396 
00397 } AIPathfinderSuite;
00398 
00399 
00400 #include "AIHeaderEnd.h"
00401 
00402 #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