00001 #ifndef __AIPathInterp__
00002 #define __AIPathInterp__
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 #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
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
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
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
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
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