00001 #ifndef __FTContour__ 00002 #define __FTContour__ 00003 00004 #include "FTPoint.h" 00005 #include "FTVector.h" 00006 #include "FTGL.h" 00007 00008 00018 class FTGL_EXPORT FTContour 00019 { 00020 public: 00028 FTContour( FT_Vector* contour, char* pointTags, unsigned int numberOfPoints); 00029 00033 ~FTContour() 00034 { 00035 pointList.clear(); 00036 } 00037 00044 const FTPoint& Point( unsigned int index) const { return pointList[index];} 00045 00051 size_t PointCount() const { return pointList.size();} 00052 00053 private: 00060 inline void AddPoint( FTPoint point); 00061 00062 inline void AddPoint( float x, float y); 00063 00068 inline void evaluateQuadraticCurve(); 00069 00074 inline void evaluateCubicCurve(); 00075 00079 typedef FTVector<FTPoint> PointVector; 00080 PointVector pointList; 00081 00085 float controlPoints[4][2]; 00086 }; 00087 00088 #endif // __FTContour__