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:
authorDaniel Genrich <daniel.genrich@gmx.net>2007-12-12 20:33:59 +0300
committerDaniel Genrich <daniel.genrich@gmx.net>2007-12-12 20:33:59 +0300
commit42637b725267192bfe22731bf975cfb1a50541ee (patch)
treeddc3e1f74ad0d0f029577907768b760bdb9c8b79 /source/blender/blenkernel/intern/cloth.c
parente9c9bf5bdb73a80d36d7250594a1e4d4b397b755 (diff)
Fixed preconditioned conjugate to some degree but some issues left for stiffness>1000 (disabled therefore). There's also some issue with the springs function (some springs seem to be missing/not created)
Diffstat (limited to 'source/blender/blenkernel/intern/cloth.c')
-rw-r--r--source/blender/blenkernel/intern/cloth.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 2dd4f1a0f0f..64166493caa 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -115,7 +115,6 @@ double tval()
static CM_SOLVER_DEF solvers [] =
{
{ "Implicit", CM_IMPLICIT, implicit_init, implicit_solver, implicit_free },
- // { "Verlet", CM_VERLET, verlet_init, verlet_solver, verlet_free },
};
/* ********** cloth engine ******* */
@@ -477,8 +476,9 @@ static int cloth_read_cache(Object *ob, ClothModifierData *clmd, float framenr)
fclose(fp);
}
- implicit_set_positions(clmd);
-
+ if(clmd->sim_parms->solver_type == 0)
+ implicit_set_positions(clmd);
+
return ret;
}
@@ -600,6 +600,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd,Object *ob, DerivedMesh *d
tstart();
/* Call the solver. */
+
if (solvers [clmd->sim_parms->solver_type].solver)
solvers [clmd->sim_parms->solver_type].solver (ob, framenr, clmd, effectors);
@@ -625,6 +626,10 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd,Object *ob, DerivedMesh *d
if(cloth_read_cache(ob, clmd, framenr))
cloth_to_object (ob, result, clmd);
}
+ else
+ {
+ cloth_clear_cache(ob, clmd, 0);
+ }
}
return result;