00001 #ifndef __AIPathConstruction__
00002 #define __AIPathConstruction__
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 __AIPath__
00035 #include "AIPath.h"
00036 #endif
00037
00038
00039 #include "AIHeaderBegin.h"
00040
00044
00045
00046
00047
00048
00049
00051 typedef struct {
00053 AIRealPoint point;
00057 AIBoolean corner;
00058 } AIPathConstructionPoint;
00059
00060
00066 typedef struct {
00071 void *(*allocate)( size_t size );
00076 void (*dispose)( void *pointer );
00077 } AIPathConstructionMemoryObject;
00078
00079
00080
00081
00082
00083
00084
00085
00086 #define kAIPathConstructionSuite "AI PathConstruction Suite"
00087 #define kAIPathConstructionSuiteVersion5 AIAPI_VERSION(5)
00088 #define kAIPathConstructionSuiteVersion kAIPathConstructionSuiteVersion5
00089 #define kAIPathConstructionVersion kAIPathConstructionSuiteVersion
00090
00091
00092
00093
00094
00095
00096
00103 typedef struct {
00104
00124 AIAPI AIErr (*CurvesToPoints) ( ai::int32 segmentCount, AIPathSegment *segments,
00125 ai::int32 *pointCount, AIPathConstructionPoint **points,
00126 AIReal maxPointDistance, AIReal flatness,
00127 AIPathConstructionMemoryObject *memory );
00128
00150 AIAPI AIErr (*CurveToPointsT) (AIPathSegment *startSegment, AIPathSegment *endSegment,
00151 ai::int32 *pointCount, AIPathConstructionPoint **points, AIReal **tArray,
00152 AIReal maxPointDistance, AIReal flatness,
00153 AIPathConstructionMemoryObject *memory );
00154
00184 AIAPI AIErr (*PointsToCurves) ( ai::int32 *pointCount, AIPathConstructionPoint *points,
00185 ai::int32 *segmentCount, AIPathSegment **segments,
00186 AIReal *tolerance,
00187 AIReal *threshold,
00188 ai::int16 *cornerRadius,
00189 AIReal *scale,
00190 AIPathConstructionMemoryObject *memory );
00191
00201 AIAPI AIErr (*ReducePathSegments) ( AIArtHandle path, AIReal flatness,
00202 AIPathConstructionMemoryObject *memory );
00203
00204 } AIPathConstructionSuite;
00205
00206
00207 #include "AIHeaderEnd.h"
00208
00209
00210 #endif