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;
00149         void Init()
00150         {
00151                 ipmPrecision = kDefaultPrecision;
00152                 removeRedundantPoints = kRemoveRedundantPointsDefault;
00153                 flags = 0;
00154         }
00155 } AIOptions;
00156 
00158 typedef struct {
00161         double                          softRate;
00164         ai::int32                               convertCustomColors;
00166         void Init()
00167         {
00168                 softRate = kSoftRateDefault;
00169                 convertCustomColors = kMixConvertCustomColorsDefault;
00170         }
00171 } AIMixParameters;
00172 
00177 typedef struct {
00180         double                          trapThickness;
00183         double                          heightWidthAspectRatio;
00186         double                          trapTint;
00189         double                          maximumTint;
00192         double                          tintTolerance;
00195         ai::int32                               reverseTrap;
00198         ai::int32                               convertCustomColors;
00200         void Init()
00201         {
00202                 trapThickness = kTrapThicknessDefault;
00203                 heightWidthAspectRatio = kHeightWidthAspectRatioDefault;
00204                 trapTint = kTrapTintDefault;
00205                 maximumTint = kMaximumTintDefault;
00206                 tintTolerance = kTintToleranceDefault;
00207                 reverseTrap = kReverseTrapDefault;
00208                 convertCustomColors = kTrapConvertCustomColorsDefault;
00209         }
00210 } AITrapParameters;
00211 
00213 typedef struct {
00215         AIMixParameters         mixParameters;
00217         AITrapParameters                trapParameters;
00219         void Init()
00220         {
00221                 mixParameters.Init();
00222                 trapParameters.Init();
00223         }
00224 } AIParameters;
00225 
00227 typedef struct {
00229         AIOptions                               options;
00231         AIParameters                    parameters;
00234         AIArtHandle                                     *fSelectedArt;
00236         ai::int32                                               fSelectedArtCount;
00238         ai::int32                                       fAlertInfoID;
00240         void Init()
00241         {
00242                 options.Init();
00243                 parameters.Init();
00244                 fSelectedArt = nullptr;
00245                 fSelectedArtCount = 0;
00246                 fAlertInfoID = 0;
00247         }
00248 } AIPathfinderData;
00249 
00250 
00252 typedef struct {
00254         SPMessageData                           d;
00256         AIPathfinderData                        pathfinderData;
00257 } AIPathfinderMessage;
00258 
00262 typedef enum AIShapeMode
00263 {
00265         kAIShapeModeAdd = 0,
00267         kAIShapeModeSubtract,
00269         kAIShapeModeIntersect,
00271         kAIShapeModeExclude
00272 } AIShapeMode;
00273 
00274 
00276 struct PathfinderLiveEffectParamsStruct
00277 {
00278         enum PathfinderEffectType
00279         {
00280                 kUniteEffectType,
00281                 kIntersectEffectType,
00282                 kExcludeEffectType,
00283                 kBackMinusFrontEffectType,
00284                 kFrontMinusBackEffectType,
00285                 kDivideEffectType,
00286                 kOutlineEffectType,
00287                 kTrimEffectType,
00288                 kMergeEffectType,
00289                 kCropEffectType,
00290                 kHardEffectType,
00291                 kSoftEffectType,
00292                 kTrapEffectType,
00293         } fEffectType;
00294         AIOptions fOptions;
00295         AIParameters fParameters;
00297         void Init()
00298         {
00299                 fEffectType = kUniteEffectType;
00300                 fOptions.Init();
00301                 fParameters.Init();
00302         }
00303 };
00304 
00305 /*******************************************************************************
00306  **
00307  **     Suite
00308  **
00309  **/
00310 
00325 typedef struct {
00326 
00331         AIAPI AIErr (*DoUniteEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00332 
00337         AIAPI AIErr (*DoIntersectEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00338 
00343         AIAPI AIErr (*DoExcludeEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00344 
00349         AIAPI AIErr (*DoBackMinusFrontEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00350 
00355         AIAPI AIErr (*DoFrontMinusBackEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00356 
00361         AIAPI AIErr (*DoDivideEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00362 
00367         AIAPI AIErr (*DoOutlineEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00368 
00373         AIAPI AIErr (*DoTrimEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00374 
00379         AIAPI AIErr (*DoMergeEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00380 
00385         AIAPI AIErr (*DoCropEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00386 
00391         AIAPI AIErr (*DoHardEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00392 
00397         AIAPI AIErr (*DoSoftEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00398 
00403         AIAPI AIErr (*DoTrapEffect) ( AIPathfinderData *data, AIFilterMessage *message );
00404 
00409         AIAPI AIErr (*GetHardEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00410 
00415         AIAPI AIErr (*GetSoftEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00416 
00421         AIAPI AIErr (*GetTrapEffectParameters) ( AIPathfinderData *data, AIFilterMessage *message );
00422 
00427         AIAPI AIErr (*GetGlobalOptions) ( AIPathfinderData *data, AIFilterMessage *message );
00428 
00429         // New in AI 10.0: Compound Shapes
00435         AIAPI AIShapeMode (*GetShapeMode) ( AIArtHandle art );
00436 
00442         AIAPI AIErr (*SetShapeMode) ( AIArtHandle art, AIShapeMode mode );
00443 
00451         AIAPI AIErr (*NewCompoundShape) ( ai::int16 paintOrder, AIArtHandle prep, AIArtHandle *newArt );
00452 
00457         AIAPI AIErr (*IsCompoundShape) ( AIArtHandle art, AIBoolean *isCompoundShape );
00458 
00464         AIAPI AIErr (*FlattenArt) ( AIArtHandle *inOutArt );
00465 
00466 } AIPathfinderSuite;
00467 
00468 
00469 #include "AIHeaderEnd.h"
00470 
00471 #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