[Bf-blender-cvs] [3de0037ab12] soc-2020-soft-body: fixed err in debug mode
mattoverby
noreply at git.blender.org
Wed Aug 19 16:55:17 CEST 2020
Commit: 3de0037ab12f742493571bcfc1cf4a60644694ad
Author: mattoverby
Date: Wed Aug 19 09:55:06 2020 -0500
Branches: soc-2020-soft-body
https://developer.blender.org/rB3de0037ab12f742493571bcfc1cf4a60644694ad
fixed err in debug mode
===================================================================
M extern/softbody/src/admmpd_linsolve.cpp
M source/tools
===================================================================
diff --git a/extern/softbody/src/admmpd_linsolve.cpp b/extern/softbody/src/admmpd_linsolve.cpp
index bd06f5910a7..21cf5cdc02d 100644
--- a/extern/softbody/src/admmpd_linsolve.cpp
+++ b/extern/softbody/src/admmpd_linsolve.cpp
@@ -74,14 +74,17 @@ void LDLT::init_solve(
data->ls.Ptq = options->pk * P.transpose() * q;
}
- if (!data->ls.ldlt_A_PtP)
+ bool new_ptr = false;
+ if (!data->ls.ldlt_A_PtP) {
data->ls.ldlt_A_PtP = std::make_unique<Cholesky>();
+ new_ptr = true;
+ }
// Compute A + P'P and factorize:
// 1) A not computed
// 2) P has changed
// 3) factorization not set
- if ( data->ls.ldlt_A_PtP->info() != Eigen::Success ||
+ if ( new_ptr ||
data->ls.A_PtP.nonZeros()==0 ||
new_P)
{
@@ -105,7 +108,7 @@ void LDLT::solve(
if (nx==0)
throw_err("solve","no vertices");
- if (!data->ls.ldlt_A_PtP)
+ if (!data->ls.ldlt_A_PtP || !data->ls.ldlt_A_PtP->info()==Eigen::Success)
init_solve(mesh,options,collision,data);
// Linearize collision constraints
diff --git a/source/tools b/source/tools
index 44ae9d181c7..ea2a2fa54ec 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit 44ae9d181c734c14ae22feb0d33ad39a626f8ce7
+Subproject commit ea2a2fa54ecde677aaf4babf54ef4811adc82ccf
More information about the Bf-blender-cvs
mailing list