Adobe.com
Contents Suites Classes Class Index Member Index

AIMaskFlattener.h

Go to the documentation of this file.
00001 #ifndef __AIMaskFlattener__
00002 #define __AIMaskFlattener__
00003 
00004 /*
00005  *        Name: AIMaskFlattener.h
00006  *   $Revision: 1 $
00007  *      Author:
00008  *        Date:
00009  *     Purpose: Adobe Illustrator Mask Flattener 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 __AIArtSet__
00039 #include "AIArtSet.h"
00040 #endif
00041 
00042 #ifndef __AIPathStyle__
00043 #include "AIPathStyle.h"
00044 #endif
00045 
00046 
00047 #include "AIHeaderBegin.h"
00048 
00051 /*******************************************************************************
00052  **
00053  **     Suite name and version
00054  **
00055  **/
00056 
00057 #define kAIMaskFlattenerSuite                                   "AI Mask Flattener Suite"
00058 #define kAIMaskFlattenerSuiteVersion5                   AIAPI_VERSION(5)
00059 #define kAIMaskFlattenerSuiteVersion                    kAIMaskFlattenerSuiteVersion5
00060 #define kAIMaskFlattenerVersion                                 kAIMaskFlattenerSuiteVersion
00061 
00062 /*******************************************************************************
00063  **
00064  **     Constants
00065  **
00066  **/
00067 
00069 #define kAIFlattenDefaultResolution (300.0f)
00070 
00071 #define kAIFlattenMinResolution (1.0f)
00072 
00073 #define kAIFlattenMaxResolution (9600.0f)
00074 
00075 #define kAIFlattenMinBalance 0
00076 
00077 #define kAIFlattenMaxBalance 100
00078 
00080 #define kAIFlattenMaxSpots                      27
00081 
00083 #define kAIFlattenHasLinkErr            'FLnk'
00084 
00086 #define kAIFlattenTooManySpotsErr       'FSpt'
00087 
00088 
00089 /*******************************************************************************
00090  **
00091  **     Types
00092  **
00093  **/
00094 
00096 typedef enum
00097 {
00098         kAIFlattenDefault                                               = 0,
00100         kAIFlattenOutlineText                                   = 1 << 1,
00102         kAIFlattenOutlineStrokes                                = 1 << 2,
00107         kAIFlattenClipComplexRegions                    = 1 << 3,
00109         kAIFlattenPreserveOverprints                    = 1 << 4,
00111         kAIFlattenShowProgress                                  = 1 << 7,
00113         kAIFlattenPreserveSimpleTransparency    = 1 << 9,
00115         kAIFlattenPlanarizeOpaqueRegions                = 1 << 10,
00118         kAIFlattenDontUndoChangesOnError                = 1 << 11,
00122         kAIFlattenFOConversionFull                              = 1 << 12,
00125         kAIFlattenFOConversionSimplifyPaths             = 1 << 13,
00127         kAIFlattenIntoKnockoutGroup                             = 1 << 14,
00129         kAIFlattenDisallowColorizedGray                 = 1 << 15,
00131         kAIFlattenDisallowNChannelIndexedImages = 1 << 16,
00133         kAIUsePathDPIToLimitPrecision                   = 1 << 17,
00135         kAIFlattenUseAntiAliasing                               = 1 << 18,
00136 } AIFlatteningFlags;
00137 
00138 
00141 typedef enum
00142 {
00143         kAIFlatteningQualityLevel0, // lower quality - more rasters
00144         kAIFlatteningQualityLevel1,
00145         kAIFlatteningQualityLevel2,
00146         kAIFlatteningQualityLevel3,
00147         kAIFlatteningQualityLevel4, // higher quality - more vectors
00148         kAIFlatteningQualityLevelCount
00149 
00150 } AIFlatteningQuality;
00151 
00152 
00155 typedef struct
00156 {
00158         ai::uint32 flags;
00162         ai::uint16 balance;
00165         AIReal rasterResolution;
00168         AIReal meshResolution;
00169 
00172         struct
00173         {
00175                 AIReal start;
00177                 AIReal end;
00178         } progress;
00179 
00180 } AIFlatteningOptions;
00181 
00182 
00190 typedef enum
00191 {
00193         kAIFlatteningInfoLinkedEPSObject,
00195         kAIFlatteningInfoPlacedArtObject
00196 } AIFlatteningInfoType;
00197 
00201 typedef struct
00202 {
00204         AIArtHandle object;
00208         AIBoolean interacts;
00212         AIBoolean parseOK;
00213 } AIFlatteningInfoLinkedEPSObject;
00214 
00218 typedef struct
00219 {
00221         AIArtHandle object;
00222 } AIFlatteningInfoPlacedArtObject;
00223 
00225 typedef struct
00226 {
00228         AIFlatteningInfoType what;
00231         union
00232         {
00235                 AIFlatteningInfoLinkedEPSObject linkedEPSObject;
00238                 AIFlatteningInfoPlacedArtObject placedArtObject;
00239         } x;
00240 } AIFlatteningInfoSnippet;
00241 
00248 typedef AIErr (*AIFlatteningInfoReceiver) (void* receiverdata, AIFlatteningInfoSnippet* snippet);
00249 
00250 
00251 /*******************************************************************************
00252  **
00253  **     Suite
00254  **
00255  **/
00256 
00264 typedef struct {
00273         AIAPI AIErr (*FlattenArt)(AIArtSet artSet, AIFlatteningOptions *options, ai::int16 paintOrder, AIArtHandle prep);
00274 
00280         AIAPI AIErr (*CreateTemporaryFlatteningLayer)(AILayerHandle *layer);
00281 
00289         AIAPI AIErr (*FlattenDocumentToLayer)(AILayerHandle layer);
00290 
00294         AIAPI AIErr (*RemoveTemporaryFlatteningLayer)();
00295 
00302         AIAPI AIErr (*IsTemporaryFlatteningLayer)(AILayerHandle layer, AIBoolean *flattening);
00303 
00309         AIAPI AIErr (*ReportError)(AIErr error);
00310 
00323         AIAPI AIErr (*CollectDocumentFlatteningInfo)(AIFlatteningInfoReceiver receiver, void* receiverdata);
00324 
00334         AIAPI AIErr (*FlattenAIDocumentToLayer)(AILayerHandle layer, ASBoolean isEPS);
00335 
00336 } AIMaskFlattenerSuite;
00337 
00338 
00339 #include "AIHeaderEnd.h"
00340 
00341 
00342 #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