00001 #ifndef __AIEnvelope__
00002 #define __AIEnvelope__
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 __AIArt__
00031 #include "AIArt.h"
00032 #endif
00033
00034 #ifndef __AIDict__
00035 #include "AIDictionary.h"
00036 #endif
00037
00038 #include "AIHeaderBegin.h"
00039
00042
00043
00044
00045
00046
00047
00048 #define kAIEnvelopeSuite "AI Envelope Suite"
00049 #define kAIEnvelopeSuiteVersion4 AIAPI_VERSION(4)
00050 #define kAIEnvelopeSuiteVersion kAIEnvelopeSuiteVersion4
00051 #define kAIEnvelopeVersion kAIEnvelopeSuiteVersion
00052
00059 #define kDeformExpandAppearance (1 << 0)
00060
00062 #define kDeformExpandPatternFills (1 << 1)
00063
00065 #define kDeformExpandLinearGradients (1 << 2)
00066
00071 #define kDeformExpandText (1 << 3)
00072
00076 #define kDeformOpacityMasks (1 << 4)
00077
00080 #define kDeformExpandPluginGroups (1 << 5)
00081
00084 #define kDeformExpandSymbols (1 << 6)
00085
00087 #define kDeformAll (0x0000FFFF)
00088
00091 #define kDeformNonAARaster (1 << 16)
00092
00097 #define kDeformRasterMakeClip (1 << 17)
00098
00099
00103 #define kAIDeformMeshKey "DeformMesh"
00104
00109 #define kAIDeformFidelityKey "DeformFidelity" // ASInt32 [0..100]
00110
00113 #define kAIDeformOptionsKey "DeformOptions" // ASInt32
00114
00115
00116
00117
00118
00119
00120
00123 typedef struct
00124 {
00132 ai::int32 envOptions;
00136 ai::int32 fidelity;
00137
00138 } AIEnvelopeOptions;
00139
00144 typedef AIAPI AIBoolean (*AIDeformProgressProc)(ai::int32 current, ai::int32 total);
00145
00147 typedef enum
00148 {
00149 kWarpStyleArc = 1,
00150 kWarpStyleArcLower,
00151 kWarpStyleArcUpper,
00152 kWarpStyleArch,
00153 kWarpStyleBulge,
00154 kWarpStyleShellLower,
00155 kWarpStyleShellUpper,
00156 kWarpStyleFlag,
00157 kWarpStyleWave,
00158 kWarpStyleFish,
00159 kWarpStyleRise,
00160 kWarpStyleFisheye,
00161 kWarpStyleInflate,
00162 kWarpStyleSqueeze,
00163 kWarpStyleTwist
00164
00165 } AIWarpStyle;
00166
00168 typedef enum
00169 {
00170 kEnvelopeWarp = 1,
00171 kEnvelopeMesh,
00172 kEnvelopeObject
00173 } AIEnvelopeType;
00174
00175
00176
00177
00178
00179
00180
00181
00207 typedef struct {
00208
00227 AIAPI AIErr (*MakeEnvelope) ( AIArtHandle* art, ai::int32 numArt, AIArtHandle envelopeObject,
00228 AIEnvelopeOptions* options, AIArtHandle* envelope );
00229
00241 AIAPI AIErr (*WarpEnvelope) ( AIArtHandle envelope, AIWarpStyle warpStyle, AIReal bend,
00242 AIReal horizDistort, AIReal vertDistort, AIBoolean rotate90 );
00243
00252 AIAPI AIErr (*ReleaseEnvelope) ( AIArtHandle envelope );
00253
00259 AIAPI void (*GetEnvelopeOptions) ( AIArtHandle envelope, AIEnvelopeOptions* options );
00260
00265 AIAPI void (*SetEnvelopeOptions) ( AIArtHandle envelope, AIEnvelopeOptions* options );
00266
00270 AIAPI void (*GetCurrentEnvelopeOptions) ( AIEnvelopeOptions* options );
00271
00277 AIAPI AIBoolean (*IsEnvelope) ( AIArtHandle envelope );
00278
00285 AIAPI AIBoolean (*EditingMesh) ( AIArtHandle envelope );
00286
00293 AIAPI AIBoolean (*EditingContents) ( AIArtHandle envelope );
00294
00301 AIAPI AIErr (*ToggleEditability) ( AIArtHandle envelope );
00302
00308 AIAPI AIErr (*GetEnvelopeObject) ( AIArtHandle envelope, AIArtHandle* envelopeObject );
00309
00315 AIAPI AIErr (*SetEnvelopeObject) ( AIArtHandle envelope, AIArtHandle envelopeObject );
00316
00323 AIAPI AIErr (*GetObjectsInEnvelope) ( AIArtHandle envelope, AIArtHandle* objects );
00324
00343 AIAPI AIErr (*DeformArt) ( AIArtHandle artToDeform,
00344 AIDictionaryRef deformParams,
00345 AIRealRect* srcRect,
00346 AIArtHandle* deformedArt,
00347 AIDeformProgressProc progressProc );
00348
00350 AIAPI AIErr (*GenerateDeformMeshFromPath)( AIArtHandle pathArt,
00351 AIArtHandle *meshArt );
00352
00361 AIAPI AIErr (*GetEnvelopeType) ( AIArtHandle envelope, AIEnvelopeType* type );
00362
00370 AIAPI AIErr (*UnconstrainedReshapePath) ( const AIArtHandle inPath, const AIReal& param, const AIRealPoint& delta, bool shiftPressed );
00371
00378 AIAPI AIErr (*GetParamFromPathHitPoint) ( const AIArtHandle pathHandle, AIRealPoint pointOnCurve, int segmentIndex, AIReal ¶m );
00379
00380 } AIEnvelopeSuite;
00381
00382 #include "AIHeaderEnd.h"
00383
00384 #endif