merge trunk 16118 -> 116886
[blender.git] / source / blender / blenkernel / BKE_softbody.h
index 0f58b93730a564900ed43108e3cfa42f86640e71..1756734813bc75a52f54a71c9496d00a3df0a150 100644 (file)
@@ -3,15 +3,12 @@
  *     
  * $Id: BKE_softbody.h 
  *
  *     
  * $Id: BKE_softbody.h 
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
  *
  * Contributor(s): none yet.
  *
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef BKE_SOFTBODY_H
 #define BKE_SOFTBODY_H
  */
 #ifndef BKE_SOFTBODY_H
 #define BKE_SOFTBODY_H
@@ -41,8 +38,9 @@ typedef struct BodyPoint {
        float origS[3], origE[3], origT[3], pos[3], vec[3], force[3];
        float goal;
        float prevpos[3], prevvec[3], prevdx[3], prevdv[3]; /* used for Heun integration */
        float origS[3], origE[3], origT[3], pos[3], vec[3], force[3];
        float goal;
        float prevpos[3], prevvec[3], prevdx[3], prevdv[3]; /* used for Heun integration */
+    float impdv[3],impdx[3];
     int nofsprings; int *springs;
     int nofsprings; int *springs;
-       float choke;
+       float choke,choke2,frozen;
        float colball;
        short flag;
        char octantflag;
        float colball;
        short flag;
        char octantflag;
@@ -54,7 +52,8 @@ extern struct SoftBody        *sbNew(void);
 /* frees internal data and softbody itself */
 extern void                            sbFree(struct SoftBody *sb);
 
 /* frees internal data and softbody itself */
 extern void                            sbFree(struct SoftBody *sb);
 
-extern void                            softbody_clear_cache(struct Object *ob, float framenr);
+/* frees simulation data to reset simulation */
+extern void                            sbFreeSimulation(struct SoftBody *sb);
 
 /* do one simul step, reading and writing vertex locs from given array */
 extern void                            sbObjectStep(struct Object *ob, float framnr, float (*vertexCos)[3], int numVerts);
 
 /* do one simul step, reading and writing vertex locs from given array */
 extern void                            sbObjectStep(struct Object *ob, float framnr, float (*vertexCos)[3], int numVerts);
@@ -66,6 +65,8 @@ extern void                           sbObjectToSoftbody(struct Object *ob);
 /* pass NULL to unlink again */
 extern void             sbSetInterruptCallBack(int (*f)(void));
 
 /* pass NULL to unlink again */
 extern void             sbSetInterruptCallBack(int (*f)(void));
 
+/* writing to cache for bake editing */
+extern void                    sbWriteCache(struct Object *ob, int framenr);
 
 #endif
 
 
 #endif