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_TRANSFORMATION_H 00021 #define GEE_TRANSFORMATION_H 00022 00023 #include <gee_geometry.h> 00024 00025 #include <vee_clonable_pointer.h> 00026 #include <vee_matrix4.h> 00027 00034 class GEE_Transformation : public GEE_Geometry 00035 { 00036 public: 00037 GEE_Transformation(); 00038 virtual ~GEE_Transformation(); 00039 00040 virtual GEE_Geometry * clone() const; 00041 virtual GEE_Geometry * removeData(const VEE_Vector3 &loc, float radius); 00042 virtual void render(GEE_Renderer *); 00043 virtual bool getBoundingBox(VEE_BoundingBox *); 00044 virtual bool move(const VEE_Vector3 & offset); 00045 00046 void setTransformation(const VEE_Matrix4 &t) { m_transformation = t; } 00047 00048 VEE_Matrix4 & transformation() { return m_transformation; } 00049 const VEE_Matrix4 & transformation() const { return m_transformation; } 00050 00051 void setChild(GEE_Geometry *data) { m_child = data; } 00052 00053 protected: 00054 00055 VEE_Matrix4 m_transformation; 00056 00057 VEE_ClonablePointer<GEE_Geometry> m_child; 00058 }; 00059 00060 #endif