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:
authorSergej Reich <sergej.reich@googlemail.com>2013-10-25 07:43:20 +0400
committerSergej Reich <sergej.reich@googlemail.com>2013-10-25 07:43:20 +0400
commit472a021aca3c0a6278151f7abee4e0970b026e3f (patch)
tree3456ce084e33450cc21c68beca1bd407801bf256 /extern/bullet2/src/BulletSoftBody/btSparseSDF.h
parent4514eeaa8e335a86de0bda68aa4814c0bafad7eb (diff)
bullet: Update to version 2.82 (bullet revision 2705)
Remove patch that has been applied upstream. Fixes several bugs.
Diffstat (limited to 'extern/bullet2/src/BulletSoftBody/btSparseSDF.h')
-rw-r--r--extern/bullet2/src/BulletSoftBody/btSparseSDF.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/extern/bullet2/src/BulletSoftBody/btSparseSDF.h b/extern/bullet2/src/BulletSoftBody/btSparseSDF.h
index 180e3c218cc..bcf0c798253 100644
--- a/extern/bullet2/src/BulletSoftBody/btSparseSDF.h
+++ b/extern/bullet2/src/BulletSoftBody/btSparseSDF.h
@@ -69,6 +69,7 @@ struct btSparseSdf
btScalar voxelsz;
int puid;
int ncells;
+ int m_clampCells;
int nprobes;
int nqueries;
@@ -77,10 +78,13 @@ struct btSparseSdf
//
//
- void Initialize(int hashsize=2383)
+ void Initialize(int hashsize=2383, int clampCells = 256*1024)
{
+ //avoid a crash due to running out of memory, so clamp the maximum number of cells allocated
+ //if this limit is reached, the SDF is reset (at the cost of some performance during the reset)
+ m_clampCells = clampCells;
cells.resize(hashsize,0);
- Reset();
+ Reset();
}
//
void Reset()
@@ -181,6 +185,15 @@ struct btSparseSdf
{
++nprobes;
++ncells;
+ int sz = sizeof(Cell);
+ if (ncells>m_clampCells)
+ {
+ static int numResets=0;
+ numResets++;
+// printf("numResets=%d\n",numResets);
+ Reset();
+ }
+
c=new Cell();
c->next=root;root=c;
c->pclient=shape;