dd0b945e4d3773695e48ed7958255abc94a20930
[blender.git] / source / blender / freestyle / intern / stroke / TextStrokeRenderer.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * ***** END GPL LICENSE BLOCK *****
19  */
20
21 /** \file blender/freestyle/intern/stroke/TextStrokeRenderer.h
22  *  \ingroup freestyle
23  */
24
25 //
26 //  Filename         : TextStrokeRenderer.h
27 //  Author(s)        : Stephane Grabli
28 //  Purpose          : Class to define the text rendering of a stroke
29 //                     Format:
30 //                     x y width height // bbox
31 //                     //list of vertices :
32 //                     t x y z t1 t2 r g b alpha ...
33 //                      ...
34 //  Date of creation : 01/14/2005
35 //
36 ///////////////////////////////////////////////////////////////////////////////
37
38 #ifndef TEXTSTROKERENDERER_H
39 #define TEXTSTROKERENDERER_H
40
41 # include "StrokeRenderer.h"
42 # include "../system/FreestyleConfig.h"
43 # include <fstream>
44
45 namespace Freestyle {
46
47 /**********************************/
48 /*                                */
49 /*                                */
50 /*         TextStrokeRenderer     */
51 /*                                */
52 /*                                */
53 /**********************************/
54
55 class TextStrokeRenderer : public StrokeRenderer
56 {
57 public:
58         TextStrokeRenderer(const char *iFileName = NULL);
59         virtual ~TextStrokeRenderer();
60
61         /*! Renders a stroke rep */
62         virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const;
63         virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const;
64
65         /*! Closes the output file */
66         void Close();
67
68 protected:
69         mutable ofstream _ofstream;
70 };
71
72 } /* namespace Freestyle */
73
74 #endif // TEXTSTROKERENDERER_H