Adobe.com
Contents Suites Classes Class Index Member Index

AIPathInterpolate.h

Go to the documentation of this file.
00001 #ifndef __AIPathInterp__
00002 #define __AIPathInterp__
00003 
00004 /*
00005  *      Name:           AIPathInterpolate.h
00006  *              Purpose:        Adobe Illustrator Path Interpolation Suite.
00007  *
00008  * ADOBE SYSTEMS INCORPORATED
00009  * Copyright 1986-2007 Adobe Systems Incorporated.
00010  * All rights reserved.
00011  *
00012  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00013  * in accordance with the terms of the Adobe license agreement 
00014  * accompanying it. If you have received this file from a source other 
00015  * than Adobe, then your use, modification, or distribution of it 
00016  * requires the prior written permission of Adobe.
00017  *
00018  */
00019 
00020 
00021 /*******************************************************************************
00022  **
00023  **     Imports
00024  **
00025  **/
00026 
00027 #ifndef __AITypes__
00028 #include "AITypes.h"
00029 #endif
00030 
00031 #ifndef __AIArt__
00032 #include "AIArt.h"
00033 #endif
00034 
00035 #include "AIHeaderBegin.h"
00036 
00040 /*******************************************************************************
00041  **
00042  **     Constants
00043  **
00044  **/
00045 
00046 #define kAIPathInterpolateSuite                         "AI Path Interpolate Suite"
00047 #define kAIPathInterpolateSuiteVersion4         AIAPI_VERSION(4)
00048 #define kAIPathInterpolateSuiteVersion          kAIPathInterpolateSuiteVersion4
00049 #define kAIPathInterpolateVersion                       kAIPathInterpolateSuiteVersion
00050 
00051 
00052 
00053 /*******************************************************************************
00054  **
00055  **     Types
00056  **
00057  **/
00058 
00059 
00061 typedef struct {
00063         AIReal lengthFromLastKnot;
00066         AIReal fractionalLengthAlongPath;
00067 } AIKnot;
00068 
00069 
00071 typedef struct {
00073         AIReal          totalPathLength;
00075         ai::int16               ctKnots;
00077         AIKnot          knots[1];
00078 } AIFlattenedPath;
00079 
00080 
00096 typedef struct {
00105         AIReal segmentOffset;
00111         AIReal fractionalOffset;
00112 } AIAnchorIdentifier;
00113 
00114 
00127 typedef struct
00128 {
00130         AIArtHandle             parent;
00133         AIArtHandle             refChild;
00136         ai::int16                       paintOrder;
00144         AIBoolean               endOnBottom;
00146         void                    *clientData;
00147 } AIPathInstallData;
00148 
00159 typedef ASErr (*PostInstallCB)( AIArtHandle art, AIPathInstallData *installData );
00160 
00161 
00164 typedef struct _t_AIStyleInterpolator* AIStyleInterpolator;
00165 
00166 
00167 /*******************************************************************************
00168  **
00169  **     Suite
00170  **
00171  **/
00172 
00180 typedef struct {
00181 
00220         AIAPI AIErr (*SmoothColorBlendSteps) ( AIArtHandle startPath, AIArtHandle endPath,
00221                                                                                 AIReal densityLimit, ai::int16 *steps );
00222 
00227         AIAPI AIErr (*GetPathSelectedSegmentCount) ( AIArtHandle path, ai::int16 *count );
00228 
00245         AIAPI AIErr (*PathSelectionToAnchorIDs) ( AIArtHandle path, ai::int16 count, AIAnchorIdentifier *anchorIDs );
00246 
00262         AIAPI AIErr (*PathSelectionToSegNumbers) ( AIArtHandle path, ai::int16 count, ai::int16 *selectedPoints );
00263 
00270         AIAPI AIErr (*SelectAnchorPoints) ( AIArtHandle path, ai::int16 count, ai::int16 *selectPoints );
00271 
00304         AIAPI AIErr (*InsertInterpolants) ( AIArtHandle startPath,
00305                                                                                 AIArtHandle endPath,
00306                                                                                 AIRealPoint     *substituteCenter,
00307                                                                                 AIArtHandle useStyleFromPath,
00308                                                                                 ai::int16 steps,
00309                                                                                 ai::int16 numMatchPairs, ai::int16 *matches1, ai::int16 *matches2,
00310                                                                                 AIPathInstallData *installData,
00311                                                                                 PostInstallCB clientCallback);
00312 
00323         AIAPI AIErr (*MeasurePathSegments) ( AIArtHandle path,
00324                                                                                 ai::int16 ixStart, ai::int16 count,
00325                                                                                 AIReal *segLengths,
00326                                                                                 AIReal flatness );
00327 
00328         // New in AI 9:
00329 
00350         AIAPI AIErr (*NewStyleInterpolator) ( AIStyleInterpolator* interpolator, AIArtHandle styleSource0, AIArtHandle styleSource1 );
00351 
00355         AIAPI AIErr (*DisposeStyleInterpolator) ( AIStyleInterpolator interpolator );
00356 
00368         AIAPI AIErr (*ApplyInterpolatedStyle) ( AIStyleInterpolator interpolator, AIArtHandle targetArt, AIReal fraction );
00369 
00385         AIAPI AIErr (*NewArtStyleInterpolator) ( AIStyleInterpolator* interpolator, AIArtStyleHandle style0, AIArtStyleHandle style1 );
00386 
00396         AIAPI AIErr (*GetInterpolatedArtStyle) ( AIStyleInterpolator interpolator, AIReal fraction, AIArtStyleHandle* result );
00397 
00398         // New in AI 11:
00399 
00408         AIAPI AIBoolean (*AppropriateForSmoothColor) ( AIArtHandle art1, AIArtHandle art2 );
00409 
00457         AIAPI AIErr (*SmoothColorBlendStepsAlongPath) ( AIArtHandle startPath, AIArtHandle endPath,
00458                                                                                                         AIReal densityLimit, ai::int16 *steps, AIReal pathDistance );
00459 
00460 } AIPathInterpolateSuite;
00461 
00462 
00463 #include "AIHeaderEnd.h"
00464 
00465 
00466 #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