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_ERASE_AROUND_PATH_H 00021 #define GEE_ERASE_AROUND_PATH_H 00022 00023 #include <gee_path_to_x.h> 00024 #include <gee_sphere_group.h> 00025 00026 00027 class GEE_EraseAroundPath : public GEE_PathToX, public GEE_SphereGroup 00028 { 00029 public: 00030 GEE_EraseAroundPath(GEE_id_t pathId = -1, 00031 bool deleteParts = true, 00032 float radiusNorm = 1.0f, 00033 float exaggerateRadius = 0.0f, 00034 bool useNapra = false); 00035 virtual ~GEE_EraseAroundPath(); 00036 00037 virtual void contained(GEE_Geometry *); 00038 00039 virtual bool act(GEE_World *, const GEE_TimeStamp &); 00040 00041 virtual bool read(GEE_Io *); 00042 virtual bool write(GEE_Io *); 00043 virtual const char * type(); 00044 static GEE_Operator * create(); 00045 00046 protected: 00047 virtual bool handleNewVertex(GEE_Path3D::iterator &); 00048 00049 virtual void doWork(GEE_World *); 00050 00051 GEE_id_t m_pathId; 00052 00053 bool m_firstUsed; 00055 bool m_deleteParts; 00056 00057 float m_exaggerateRadius; 00058 float m_radiusNorm; 00059 00060 bool m_useNapra; 00061 }; 00062 00063 00064 #endif