blob: f3131c728770cb3b86dda83afa51da601893e092 [file] [log] [blame]
<!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&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;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>&amp; 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&lt;FTPoint&gt;</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&lt;FTTesselation*&gt;</a> <a class="code" href="classFTVector.html">TesselationVector</a>;
00083 <span class="keyword">typedef</span> <a class="code" href="classFTList.html">FTList&lt;FTPoint&gt;</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>&amp; 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]-&gt;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>