Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Ole Wund <bjornmose@gmx.net>2010-06-15 13:47:37 +0400
committerJens Ole Wund <bjornmose@gmx.net>2010-06-15 13:47:37 +0400
commit7b0bda22e119d1cd568ed5e7f9644b2517430bfe (patch)
treee73a76baeabc3ebe3a176ea2f0d982fb9f4ea6bc /source/blender/blenkernel
parent8d3a5a8b0aebb8b897e4e01d517720196e0b075b (diff)
soft body
disable edge collision for bezier handles because of massive pointlessness
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/softbody.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c
index bbf51717e92..b44fe1ad1d0 100644
--- a/source/blender/blenkernel/intern/softbody.c
+++ b/source/blender/blenkernel/intern/softbody.c
@@ -83,7 +83,7 @@ static int (*SB_localInterruptCallBack)(void) = NULL;
/* ********** soft body engine ******* */
-typedef enum {SB_EDGE=1,SB_BEND=2,SB_STIFFQUAD=3} type_spring;
+typedef enum {SB_EDGE=1,SB_BEND=2,SB_STIFFQUAD=3,SB_HANDLE=4} type_spring;
typedef struct BodySpring {
int v1, v2;
@@ -2129,6 +2129,7 @@ static void sb_spring_force(Object *ob,int bpi,BodySpring *bs,float iks,float fo
kw = kw * kw;
switch (bs->springtype){
case SB_EDGE:
+ case SB_HANDLE:
forcefactor *= kw;
break;
case SB_BEND:
@@ -3607,21 +3608,21 @@ static void curve_surf_to_softbody(Scene *scene, Object *ob)
if(totspring) {
if(a>0) {
- bs->v1= curindex-1;
+ bs->v1= curindex-3;
bs->v2= curindex;
- bs->springtype=SB_EDGE;
- bs->len= globallen( (bezt-1)->vec[2], bezt->vec[0], ob );
+ bs->springtype=SB_HANDLE;
+ bs->len= globallen( (bezt-1)->vec[0], bezt->vec[0], ob );
bs++;
}
bs->v1= curindex;
bs->v2= curindex+1;
- bs->springtype=SB_EDGE;
+ bs->springtype=SB_HANDLE;
bs->len= globallen( bezt->vec[0], bezt->vec[1], ob );
bs++;
bs->v1= curindex+1;
bs->v2= curindex+2;
- bs->springtype=SB_EDGE;
+ bs->springtype=SB_HANDLE;
bs->len= globallen( bezt->vec[1], bezt->vec[2], ob );
bs++;
}