00001 #ifndef __AIPathfinder__
00002 #define __AIPathfinder__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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
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
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
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
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
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