/home/rixxx/src/glttf/src/vectorizer.h

00001 #ifndef _VECTORIZER_H_
00002 #define _VECTORIZER_H_
00003 
00004 #include <ft2build.h>
00005 #include FT_FREETYPE_H
00006 
00007 #include <utility>
00008 #include <list>
00009 
00010 namespace glttf {
00011 
00013 
00017 class Vectorizer
00018 {
00019 public:
00021     typedef std::pair<float, float> Vertex;
00023     typedef std::list<Vertex> Contour;
00025     typedef std::list<Contour> ContourList;
00026 
00028 
00039     Vectorizer(const FT_Outline &outline, int subdiv);
00040     
00042 
00045     const ContourList &getContours() const;
00046     
00048 
00051     int getNumVertices() const;
00052 private:
00053     ContourList contours;
00054     int numVertices;
00055     
00056     void addContour(const FT_Outline &outline, Contour &contour, int begin, int end, int subdiv);
00057     void quadratic(Contour &contour, float prevX, float prevY, float ctrlX, float ctrlY, float nextX, float nextY, int subdiv);
00058     void cubic(Contour &contour, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int subdiv);
00059 };
00060 
00061 }
00062 
00063 #endif

Generated on Mon Jan 8 12:08:37 2007 for GLttf by  doxygen 1.5.1