| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> |
| <title>FTGL: FTVectoriser.h Source File</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| <!-- Generated by Doxygen 1.3.6 --> |
| <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a></div> |
| <h1>FTVectoriser.h</h1><a href="FTVectoriser_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#ifndef __FTVectoriser__</span> |
| 00002 <span class="preprocessor"></span><span class="preprocessor">#define __FTVectoriser__</span> |
| 00003 <span class="preprocessor"></span> |
| 00004 |
| 00005 <span class="preprocessor">#include "<a class="code" href="FTContour_8h.html">FTContour.h</a>"</span> |
| 00006 <span class="preprocessor">#include "<a class="code" href="FTList_8h.html">FTList.h</a>"</span> |
| 00007 <span class="preprocessor">#include "<a class="code" href="FTPoint_8h.html">FTPoint.h</a>"</span> |
| 00008 <span class="preprocessor">#include "<a class="code" href="FTVector_8h.html">FTVector.h</a>"</span> |
| 00009 <span class="preprocessor">#include "<a class="code" href="FTGL_8h.html">FTGL.h</a>"</span> |
| 00010 |
| 00011 |
| 00012 <span class="preprocessor">#ifndef CALLBACK</span> |
| 00013 <span class="preprocessor"></span><span class="preprocessor">#define CALLBACK</span> |
| 00014 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00015 <span class="preprocessor"></span> |
| 00016 |
| <a name="l00020"></a><a class="code" href="classFTTesselation.html">00020</a> <span class="keyword">class </span><a class="code" href="FTGL_8h.html#a3">FTGL_EXPORT</a> FTTesselation |
| 00021 { |
| 00022 <span class="keyword">public</span>: |
| <a name="l00026"></a><a class="code" href="classFTTesselation.html#a0">00026</a> FTTesselation( GLenum m) |
| 00027 : meshType(m) |
| 00028 { |
| 00029 pointList.reserve( 128); |
| 00030 } |
| 00031 |
| <a name="l00035"></a><a class="code" href="classFTTesselation.html#a1">00035</a> ~FTTesselation() |
| 00036 { |
| 00037 pointList.clear(); |
| 00038 } |
| 00039 |
| <a name="l00043"></a><a class="code" href="classFTTesselation.html#a2">00043</a> <span class="keywordtype">void</span> AddPoint( <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> x, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> y, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> z) |
| 00044 { |
| 00045 pointList.push_back( <a class="code" href="classFTPoint.html">FTPoint</a>( x, y, z)); |
| 00046 } |
| 00047 |
| <a name="l00051"></a><a class="code" href="classFTTesselation.html#a3">00051</a> size_t PointCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pointList.size();} |
| 00052 |
| <a name="l00056"></a><a class="code" href="classFTTesselation.html#a4">00056</a> <span class="keyword">const</span> <a class="code" href="classFTPoint.html">FTPoint</a>& Point( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pointList[index];} |
| 00057 |
| <a name="l00061"></a><a class="code" href="classFTTesselation.html#a5">00061</a> GLenum PolygonType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> meshType;} |
| 00062 |
| 00063 <span class="keyword">private</span>: |
| 00067 <span class="keyword">typedef</span> <a class="code" href="classFTVector.html">FTVector<FTPoint></a> PointVector; |
| 00068 PointVector pointList; |
| 00069 |
| 00073 GLenum meshType; |
| 00074 }; |
| 00075 |
| 00076 |
| <a name="l00080"></a><a class="code" href="classFTMesh.html">00080</a> <span class="keyword">class </span><a class="code" href="classFTGL__EXPORT.html">FTGL_EXPORT</a> FTMesh |
| 00081 { |
| 00082 <span class="keyword">typedef</span> <a class="code" href="classFTVector.html">FTVector<FTTesselation*></a> <a class="code" href="classFTVector.html">TesselationVector</a>; |
| 00083 <span class="keyword">typedef</span> <a class="code" href="classFTList.html">FTList<FTPoint></a> <a class="code" href="classFTList.html">PointList</a>; |
| 00084 |
| 00085 <span class="keyword">public</span>: |
| 00089 FTMesh(); |
| 00090 |
| 00094 ~FTMesh(); |
| 00095 |
| 00099 <span class="keywordtype">void</span> AddPoint( <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> x, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> y, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> z); |
| 00100 |
| 00104 <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a>* Combine( <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> x, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> y, <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> z); |
| 00105 |
| 00109 <span class="keywordtype">void</span> Begin( GLenum meshType); |
| 00110 |
| 00114 <span class="keywordtype">void</span> End(); |
| 00115 |
| <a name="l00119"></a><a class="code" href="classFTMesh.html#a6">00119</a> <span class="keywordtype">void</span> Error( GLenum e) { err = e;} |
| 00120 |
| <a name="l00124"></a><a class="code" href="classFTMesh.html#a7">00124</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> TesselationCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tesselationList.size();} |
| 00125 |
| 00129 <span class="keyword">const</span> FTTesselation* <span class="keyword">const</span> Tesselation( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) <span class="keyword">const</span>; |
| 00130 |
| <a name="l00134"></a><a class="code" href="classFTMesh.html#a9">00134</a> <span class="keyword">const</span> <a class="code" href="classFTList.html">PointList</a>& TempPointList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tempPointList;} |
| 00135 |
| <a name="l00139"></a><a class="code" href="classFTMesh.html#a10">00139</a> GLenum Error()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> err;} |
| 00140 |
| 00141 <span class="keyword">private</span>: |
| 00145 FTTesselation* currentTesselation; |
| 00146 |
| 00150 TesselationVector tesselationList; |
| 00151 |
| 00155 PointList tempPointList; |
| 00156 |
| 00160 GLenum err; |
| 00161 |
| 00162 }; |
| 00163 |
| <a name="l00164"></a><a class="code" href="FTVectoriser_8h.html#a0">00164</a> <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> <a class="code" href="FTVectoriser_8h.html#a0">FTGL_FRONT_FACING</a> = 1.0; |
| <a name="l00165"></a><a class="code" href="FTVectoriser_8h.html#a1">00165</a> <span class="keyword">const</span> <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> <a class="code" href="FTVectoriser_8h.html#a1">FTGL_BACK_FACING</a> = -1.0; |
| 00166 |
| <a name="l00178"></a><a class="code" href="classFTVectoriser.html">00178</a> <span class="keyword">class </span><a class="code" href="classFTGL__EXPORT.html">FTGL_EXPORT</a> FTVectoriser |
| 00179 { |
| 00180 <span class="keyword">public</span>: |
| 00186 FTVectoriser( <span class="keyword">const</span> FT_GlyphSlot glyph); |
| 00187 |
| 00191 <span class="keyword">virtual</span> ~FTVectoriser(); |
| 00192 |
| 00199 <span class="keywordtype">void</span> MakeMesh( <a class="code" href="FTGL_8h.html#a4">FTGL_DOUBLE</a> zNormal = <a class="code" href="FTVectoriser_8h.html#a0">FTGL_FRONT_FACING</a>); |
| 00200 |
| <a name="l00204"></a><a class="code" href="classFTVectoriser.html#a3">00204</a> <span class="keyword">const</span> FTMesh* <span class="keyword">const</span> GetMesh()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mesh;} |
| 00205 |
| 00211 size_t PointCount(); |
| 00212 |
| <a name="l00218"></a><a class="code" href="classFTVectoriser.html#a5">00218</a> size_t ContourCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ftContourCount;} |
| 00219 |
| 00225 <span class="keyword">const</span> <a class="code" href="classFTContour.html">FTContour</a>* <span class="keyword">const</span> Contour( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) <span class="keyword">const</span>; |
| 00226 |
| <a name="l00233"></a><a class="code" href="classFTVectoriser.html#a7">00233</a> size_t ContourSize( <span class="keywordtype">int</span> c)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> contourList[c]->PointCount();} |
| 00234 |
| <a name="l00240"></a><a class="code" href="classFTVectoriser.html#a8">00240</a> <span class="keywordtype">int</span> ContourFlag()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> contourFlag;} |
| 00241 |
| 00242 <span class="keyword">private</span>: |
| 00246 <span class="keywordtype">void</span> ProcessContours(); |
| 00247 |
| 00251 <a class="code" href="classFTContour.html">FTContour</a>** contourList; |
| 00252 |
| 00256 FTMesh* mesh; |
| 00257 |
| 00261 <span class="keywordtype">short</span> ftContourCount; |
| 00262 |
| 00266 <span class="keywordtype">int</span> contourFlag; |
| 00267 |
| 00271 FT_Outline outline; |
| 00272 }; |
| 00273 |
| 00274 |
| 00275 <span class="preprocessor">#endif // __FTVectoriser__</span> |
| </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Dec 5 22:24:06 2004 for FTGL by |
| <a href="http://www.doxygen.org/index.html"> |
| <img src="doxygen.png" alt="doxygen" align="middle" border=0 > |
| </a>1.3.6 </small></address> |
| </body> |
| </html> |