optionally use guarded alloc for tiles compositor, also replace allocation functions...
[blender.git] / source / gameengine / Rasterizer / RAS_Deformer.h
index 4e8484ab88065157374a94b5bedba177786864e2..627db2b63fb45675b9cc25901b2856359ca487be 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -15,7 +13,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef RAS_DEFORMER
-#define RAS_DEFORMER
+/** \file RAS_Deformer.h
+ *  \ingroup bgerast
+ */
+
+#ifndef __RAS_DEFORMER_H__
+#define __RAS_DEFORMER_H__
 
-#ifdef WIN32
+#if defined(WIN32) && !defined(FREE_WINDOWS)
 #pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning
 #endif //WIN32
 
-#include "GEN_Map.h"
+#include <stdlib.h>
+#include "CTR_Map.h"
+
+#ifdef WITH_CXX_GUARDEDALLOC
+#include "MEM_guardedalloc.h"
+#endif
+
+struct DerivedMesh;
+class RAS_MeshObject;
 
 class RAS_Deformer
 {
 public:
-       RAS_Deformer(){};
+       RAS_Deformer() : m_pMesh(NULL), m_bDynamic(false) {};
        virtual ~RAS_Deformer(){};
-       virtual void Relink(GEN_Map<class GEN_HashedPtr, void*>*map)=0;
+       virtual void Relink(CTR_Map<class CTR_HashedPtr, void*>*map)=0;
        virtual bool Apply(class RAS_IPolyMaterial *polymat)=0;
        virtual bool Update(void)=0;
+       virtual bool UpdateBuckets(void)=0;
        virtual RAS_Deformer *GetReplica()=0;
+       virtual void ProcessReplica()=0;
+       virtual bool SkipVertexTransform()
+       {
+               return false;
+       }
+       virtual bool ShareVertexArray()
+       {
+               return true;
+       }
+       virtual bool UseVertexArray()
+       {
+               return true;
+       }
+       // true when deformer produces varying vertex (shape or armature)
+       bool IsDynamic()
+       {
+               return m_bDynamic;
+       }
+       virtual struct DerivedMesh* GetFinalMesh()
+       {
+               return NULL;
+       }
+       virtual struct DerivedMesh* GetPhysicsMesh()
+       {
+               return NULL;
+       }
+       virtual class RAS_MeshObject* GetRasMesh()
+       {
+               /* m_pMesh does not seem to be being used?? */
+               return NULL;
+       }
+       virtual float (* GetTransVerts(int *tot))[3]    {       *tot= 0; return NULL; }
+
 protected:
        class RAS_MeshObject    *m_pMesh;
+       bool  m_bDynamic;       
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+       MEM_CXX_CLASS_ALLOC_FUNCS("GE:RAS_Deformer")
+#endif
 };
 
 #endif