00001 /* -*- C++ -*- */ 00002 00003 /* COPYRIGHT 00004 * 00005 * This file is part of the Visual Effects Engine - VEE 00006 * 00007 * Read the "VEE-LICENSE" file for the license. 00008 * 00009 * Authors & Copyright: 00010 * 00011 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00012 * Janne Kontkanen 2001-2004 00013 * 00014 * Additional copyrights: Tekes 2003-2004 00015 * 00016 * firstname.lastname@hut.fi 00017 * 00018 */ 00019 00020 #ifndef GEE_PATH_TO_LINES_H 00021 #define GEE_PATH_TO_LINES_H 00022 00023 #include <gee_lines.h> 00024 #include <gee_param_writer.h> 00025 #include <gee_path_to_x.h> 00026 00027 class GEE_PathToLines : public GEE_PathToX 00028 { 00029 public: 00030 GEE_PathToLines(GEE_id_t pathId = -1, 00031 GEE_id_t lineId = -1); 00032 virtual ~GEE_PathToLines(); 00033 00034 virtual bool start(GEE_World *, const GEE_TimeStamp &); 00035 virtual bool stop(GEE_World *, const GEE_TimeStamp &); 00036 00037 virtual bool read(GEE_Io *); 00038 virtual bool write(GEE_Io *); 00039 virtual const char * type() { return "GEE_PathToLines"; } 00040 static GEE_Operator * create(); 00041 00042 GEE_Material & material() { return m_material; } 00043 void setMaterial(const GEE_Material &m) { m_material = m; } 00044 00045 void setWidth(float w) { m_lineWidth = w; } 00046 00047 void setUseNapra(bool use) { m_useNapra = use; } 00048 void setNapraRadius(float radius) { m_napraRadius = radius; } 00049 00050 protected: 00051 00052 virtual bool handleNewVertex(GEE_Path3D::iterator &); 00053 00054 GEE_ParamWriter m_writer; 00055 00056 GEE_id_t m_lineId; 00057 00058 GEE_Material m_material; 00059 float m_lineWidth; 00060 float m_napraRadius; 00061 00062 bool m_useNapra; 00063 00064 VEE_RefPtr<GEE_Geometry> m_lines; 00065 }; 00066 00067 #endif