00001 /* -*- C++ -*- */ 00002 00003 /* COPYRIGHT 00004 * 00005 * This file is part of the Simple Object Loader and Renderer - SOLAR 00006 * 00007 * Read the file "SOLAR-LICENSE" for the license. 00008 * 00009 * Authors & Copyright: 00010 * 00011 * Tommi Ilmonen, 2001-2003, except LWO-code by RJ, 2001-2003 00012 * 00013 * Tommi's email: firstname.lastname@hut.fi 00014 * 00015 */ 00016 00017 #ifndef SOLAR_ASCII_RENDERER_HPP 00018 #define SOLAR_ASCII_RENDERER_HPP 00019 00020 #include <Solar/Renderer.hpp> 00021 00022 #include <iosfwd> 00023 00024 namespace Solar { 00025 00026 class GlMaterialBank; 00027 class Graphic; 00028 class GraphicTriangles; 00029 class Model; 00030 00043 class AsciiRenderer : public Renderer 00044 { 00045 public: 00046 00047 AsciiRenderer(); 00048 AsciiRenderer(std::ostream *); 00049 00050 ~AsciiRenderer() {} 00051 virtual void prepareToRender(); 00052 00053 virtual void begin(Model *); 00054 virtual void end(); 00055 00056 virtual void renderTriangles(GraphicTriangles *); 00057 virtual void renderTriangleMesh(GraphicTriangleMesh *); 00058 virtual void renderTriangleStrips(GraphicTriangleStrips *); 00059 00060 virtual void pushTransform(const Fluid::Matrix3 &, 00061 const Fluid::Vector3 &, 00062 float scale = 1.0); 00063 virtual void popTransform(); 00064 00065 void setStream(std::ostream *s) { m_stream = s; } 00066 00067 protected: 00068 00069 virtual void preRender(Graphic *); 00070 00071 std::ostream *m_stream; 00072 }; 00073 00074 } // namespace Solar 00075 00076 #endif