BL_ShapeDeformer.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * ***** BEGIN GPL LICENSE BLOCK *****
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software Foundation,
  16. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  17. *
  18. * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  19. * All rights reserved.
  20. *
  21. * The Original Code is: all of this file.
  22. *
  23. * Contributor(s): none yet.
  24. *
  25. * ***** END GPL LICENSE BLOCK *****
  26. */
  27. /** \file BL_ShapeDeformer.h
  28. * \ingroup bgeconv
  29. */
  30. #ifndef __BL_SHAPEDEFORMER_H__
  31. #define __BL_SHAPEDEFORMER_H__
  32. #ifdef _MSC_VER
  33. # pragma warning (disable:4786) /* get rid of stupid stl-visual compiler debug warning */
  34. #endif
  35. #include "BL_SkinDeformer.h"
  36. #include "BL_DeformableGameObject.h"
  37. #include <vector>
  38. class BL_ShapeDeformer : public BL_SkinDeformer
  39. {
  40. public:
  41. BL_ShapeDeformer(BL_DeformableGameObject *gameobj,
  42. Object *bmeshobj,
  43. RAS_MeshObject *mesh);
  44. /* this second constructor is needed for making a mesh deformable on the fly. */
  45. BL_ShapeDeformer(BL_DeformableGameObject *gameobj,
  46. struct Object *bmeshobj_old,
  47. struct Object *bmeshobj_new,
  48. class RAS_MeshObject *mesh,
  49. bool release_object,
  50. bool recalc_normal,
  51. BL_ArmatureObject* arma = NULL);
  52. virtual RAS_Deformer *GetReplica();
  53. virtual void ProcessReplica();
  54. virtual ~BL_ShapeDeformer();
  55. bool Update (void);
  56. bool LoadShapeDrivers(KX_GameObject* parent);
  57. bool ExecuteShapeDrivers(void);
  58. struct Key *GetKey();
  59. void ForceUpdate()
  60. {
  61. m_lastShapeUpdate = -1.0;
  62. };
  63. protected:
  64. bool m_useShapeDrivers;
  65. double m_lastShapeUpdate;
  66. struct Key* m_key;
  67. #ifdef WITH_CXX_GUARDEDALLOC
  68. MEM_CXX_CLASS_ALLOC_FUNCS("GE:BL_ShapeDeformer")
  69. #endif
  70. };
  71. #endif