[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27126] trunk/blender/source/blender/ blenkernel/intern: hair was running collision functions (copy to/ from collision arrays), even when collision could not be done.
Campbell Barton
ideasman42 at gmail.com
Wed Feb 24 19:06:51 CET 2010
Revision: 27126
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27126
Author: campbellbarton
Date: 2010-02-24 19:06:51 +0100 (Wed, 24 Feb 2010)
Log Message:
-----------
hair was running collision functions (copy to/from collision arrays), even when collision could not be done.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/collision.c
trunk/blender/source/blender/blenkernel/intern/implicit.c
Modified: trunk/blender/source/blender/blenkernel/intern/collision.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/collision.c 2010-02-24 17:27:29 UTC (rev 27125)
+++ trunk/blender/source/blender/blenkernel/intern/collision.c 2010-02-24 18:06:51 UTC (rev 27126)
@@ -1550,8 +1550,8 @@
// cloth - object collisions
int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, float dt )
{
- Cloth *cloth=NULL;
- BVHTree *cloth_bvh=NULL;
+ Cloth *cloth= clmd->clothObject;
+ BVHTree *cloth_bvh= cloth->bvhtree;
int i=0, numfaces = 0, numverts = 0, k, l, j;
int rounds = 0; // result counts applied collisions; ic is for debug output;
ClothVertex *verts = NULL;
@@ -1559,16 +1559,12 @@
Object **collobjs = NULL;
int numcollobj = 0;
- if ( ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_COLLOBJ ) || ! ( ( ( Cloth * ) clmd->clothObject )->bvhtree ) )
- {
+ if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_COLLOBJ) || cloth_bvh==NULL)
return 0;
- }
- cloth = clmd->clothObject;
verts = cloth->verts;
- cloth_bvh = ( BVHTree * ) cloth->bvhtree;
- numfaces = clmd->clothObject->numfaces;
- numverts = clmd->clothObject->numverts;
+ numfaces = cloth->numfaces;
+ numverts = cloth->numverts;
////////////////////////////////////////////////////////////
// static collisions
@@ -1672,8 +1668,8 @@
// collisions = 1;
verts = cloth->verts; // needed for openMP
- numfaces = clmd->clothObject->numfaces;
- numverts = clmd->clothObject->numverts;
+ numfaces = cloth->numfaces;
+ numverts = cloth->numverts;
verts = cloth->verts;
Modified: trunk/blender/source/blender/blenkernel/intern/implicit.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/implicit.c 2010-02-24 17:27:29 UTC (rev 27125)
+++ trunk/blender/source/blender/blenkernel/intern/implicit.c 2010-02-24 18:06:51 UTC (rev 27126)
@@ -1689,8 +1689,8 @@
VECCOPY(verts[i].txold, id->X[i]);
}
-
- if(clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_ENABLED)
+
+ if(clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_ENABLED && clmd->clothObject->bvhtree)
{
float temp = clmd->sim_parms->stepsPerFrame;
/* not too nice hack, but collisions need this correction -jahka */
More information about the Bf-blender-cvs
mailing list