Blender  V2.59
KX_SCA_ReplaceMeshActuator.h
Go to the documentation of this file.
00001 // $Id: KX_SCA_ReplaceMeshActuator.h 35063 2011-02-22 10:33:14Z jesterking $
00002 //
00003 // ***** BEGIN GPL LICENSE BLOCK *****
00004 //
00005 // This program is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU General Public License
00007 // as published by the Free Software Foundation; either version 2
00008 // of the License, or (at your option) any later version.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with this program; if not, write to the Free Software Foundation,
00017 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018 //
00019 // The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
00020 // All rights reserved.
00021 //
00022 // The Original Code is: all of this file.
00023 //
00024 // Contributor(s): none yet.
00025 //
00026 // ***** END GPL LICENSE BLOCK *****
00027 //
00028 
00036 #ifndef __KX_SCA_REPLACEMESHACTUATOR
00037 #define __KX_SCA_REPLACEMESHACTUATOR
00038 
00039 #include "SCA_IActuator.h"
00040 #include "SCA_PropertyActuator.h"
00041 #include "SCA_LogicManager.h"
00042 #include "SCA_IScene.h"
00043 
00044 #include "RAS_MeshObject.h"
00045 
00046 class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
00047 {
00048         Py_Header;
00049 
00050         // mesh reference (mesh to replace)
00051         RAS_MeshObject* m_mesh;
00052         SCA_IScene*      m_scene;
00053         bool m_use_gfx; 
00054         bool m_use_phys;
00055 
00056  public:
00057         KX_SCA_ReplaceMeshActuator(
00058                 SCA_IObject* gameobj, 
00059                 RAS_MeshObject *mesh, 
00060                 SCA_IScene* scene,
00061                 bool use_gfx,
00062                 bool use_phys
00063         );
00064 
00065         ~KX_SCA_ReplaceMeshActuator(
00066         );
00067 
00068                 CValue* 
00069         GetReplica(
00070         );
00071 
00072         virtual bool 
00073         Update();
00074 
00075         void    InstantReplaceMesh();
00076 
00077 #ifdef WITH_PYTHON
00078 
00079         /* --------------------------------------------------------------------- */
00080         /* Python interface ---------------------------------------------------- */
00081         /* --------------------------------------------------------------------- */
00082 
00083         virtual void Replace_IScene(SCA_IScene *val)
00084         {
00085                 m_scene= val;
00086         };
00087 
00088         static PyObject* pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
00089         static int pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
00090 
00091         KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,instantReplaceMesh);
00092 
00093 #endif // WITH_PYTHON
00094 
00095 }; 
00096 
00097 #endif
00098