Adobe.com
Contents Suites Classes Class Index Member Index

AIRealBezier.h

Go to the documentation of this file.
00001 #ifndef __AIRealBezier__
00002 #define __AIRealBezier__
00003 
00004 /*
00005  *        Name: AIRealBezier.h
00006  *     Purpose: Adobe Illustrator bezier 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 #include "AIHeaderBegin.h"
00032 
00036 /*******************************************************************************
00037  **
00038  **     Constants
00039  **
00040  **/
00041 
00042 #define kAIRealBezierSuite                              "AI Real Bezier Suite"
00043 #define kAIRealBezierSuiteVersion4              AIAPI_VERSION(4)
00044 #define kAIRealBezierSuiteVersion               kAIRealBezierSuiteVersion4
00045 #define kAIRealBezierVersion                    kAIRealBezierSuiteVersion
00046 
00048 enum AIAdjustThroughPointResult {
00050         kAIBezierAdjustReflectedp1              = 1,
00052         kAIBezierAdjustReflectedp2              = 2,
00054         kAIBezierAdjustRotatedp1                = 4,
00056         kAIBezierAdjustRotatedp2                = 8
00057 };
00058 
00059 /*******************************************************************************
00060  **
00061  **     Typedefs
00062  **
00063  **/
00064 
00066 typedef struct {
00067         AIRealPoint     p0;
00068         AIRealPoint     p1;
00069         AIRealPoint     p2;
00070         AIRealPoint     p3;
00071 } AIRealBezier, *AIRealBezierPtr;
00072 
00073 
00074 /*******************************************************************************
00075  **
00076  **     Suite
00077  **
00078  **/
00079 
00089 typedef struct {
00090 
00098         AIAPI void              (*Set)                  (AIRealBezier* b, AIRealPoint* p0, AIRealPoint* p1,
00099                                                                         AIRealPoint* p2, AIRealPoint* p3);
00105         AIAPI void              (*Offset)               (AIRealBezier* b, AIReal dh, AIReal dv);
00106 
00111         AIAPI void              (*Transform)    (AIRealBezier* b, AIRealMatrix* m);
00112 
00118         AIAPI void              (*Evaluate)             (AIRealBezier* b, AIReal t, AIRealPoint* p);
00119 
00125         AIAPI void              (*Tangent)              (AIRealBezier* b, AIReal t, AIRealPoint* v);
00126 
00132         AIAPI void              (*Normal)               (AIRealBezier* b, AIReal t, AIRealPoint* v);
00133 
00141         AIAPI void              (*Divide)               (AIRealBezier* b, AIReal t, AIRealBezier* b1,
00142                                                                         AIRealBezier* b2);
00143 
00154         AIAPI AIBoolean (*IntersectsRect)(AIRealBezier* b, AIRealRect* r, AIReal scale);
00155 
00156         // New for AI8.0.
00157 
00167         AIAPI AIReal    (*Length)                       (AIRealBezier* b, AIReal flatness);
00168 
00177         AIAPI void              (*PointAndTangent)      (AIRealBezier* b, AIReal t, AIRealPoint* p, AIRealPoint *v);
00178 
00187         AIAPI ai::uint16 (*AdjustThroughPoint) (AIRealBezier* b, AIRealPoint* p, AIReal t);
00188 
00189         // New for AI12
00190 
00201         AIAPI AIErr     (*TAtLength) ( AIRealBezier*            bez ,
00202                                                                    AIReal                               length ,
00203                                                                    AIReal                               total_length ,
00204                                                                    AIReal                               flatness,
00205                                                                    AIReal*                              t );
00206 
00207 } AIRealBezierSuite;
00208 
00209 
00210 #include "AIHeaderEnd.h"
00211 
00212 
00213 #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