Blender V2.61 - r43446

KX_SCA_ReplaceMeshActuator.h

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