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_COPY_GEOMETRY_H 00021 #define GEE_COPY_GEOMETRY_H 00022 00023 #include <gee_operator.h> 00024 #include <gee_world.h> 00025 00026 #include <vee_matrix4.h> 00027 00040 class GEE_CopyGeometry : public GEE_Operator 00041 { 00042 public: 00043 GEE_CopyGeometry(GEE_id_t sourceId = -1, 00044 bool sourceIsGeometry = true); 00045 virtual ~GEE_CopyGeometry(); 00046 00047 virtual id_container * getExtraIds(); 00048 virtual bool remapIdMembers(id_remap &); 00049 00050 virtual bool act(GEE_World *, const GEE_TimeStamp &); 00051 00052 virtual bool read(GEE_Io *); 00053 virtual bool write(GEE_Io *); 00054 virtual const char * type(); 00055 00056 static GEE_Operator * create(); 00057 00058 void setTransformation(const VEE_Matrix4d &t) { m_transform = t; } 00059 00060 GEE_World & geometries() { return m_sourceModels; } 00061 00062 protected: 00063 00064 void updateIds(); 00065 00066 GEE_id_t m_sourceId; 00069 bool m_sourceIsGeometry; 00070 VEE_Matrix4d m_transform; 00071 00072 id_remap m_remap; 00073 id_container m_ids; 00074 00078 GEE_World m_sourceModels; 00079 }; 00080 00081 00082 #endif