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>2008-03-14 01:45:36 +0300
committerDaniel Genrich <daniel.genrich@gmx.net>2008-03-14 01:45:36 +0300
commitdf27557b81d8463c4274d11f4131be619da255f1 (patch)
treeb769bf0edca3b5ee8dd40863fbe13440f787a28b /source/blender
parent2c78254f9635c20decdbdfec1266dc548916ff7e (diff)
Cloth header cleanup, bugfix (again) in wind calculation, bugfix for not working fields mindist GUI option
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_cloth.h10
-rw-r--r--source/blender/blenkernel/intern/cloth.c125
-rw-r--r--source/blender/blenkernel/intern/collision.c27
-rw-r--r--source/blender/blenkernel/intern/effect.c2
-rw-r--r--source/blender/blenkernel/intern/implicit.c36
-rw-r--r--source/blender/blenkernel/intern/kdop.c37
6 files changed, 30 insertions, 207 deletions
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h
index 181264137b3..418102aa973 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -35,19 +35,23 @@
#define BKE_CLOTH_H
#include "float.h"
-#include "BLI_editVert.h"
-#include "BLI_linklist.h"
-#include "BKE_collision.h"
+#include "BLI_linklist.h"
#include "BKE_customdata.h"
#include "BKE_DerivedMesh.h"
+#include "BLI_blenlib.h"
+#include "BLI_arithb.h"
+#include "BLI_edgehash.h"
+
#include "DNA_cloth_types.h"
#include "DNA_customdata_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
+#include "BKE_collision.h"
+
struct Object;
struct Cloth;
struct MFace;
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 3d5de19c1fc..d2834571316 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -28,52 +28,22 @@
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
-
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
#include "MEM_guardedalloc.h"
-/* types */
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
+#include "BKE_cloth.h"
+
#include "DNA_cloth_types.h"
-#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_lattice_types.h"
#include "DNA_scene_types.h"
-#include "DNA_modifier_types.h"
-#include "BLI_blenlib.h"
-#include "BLI_arithb.h"
-#include "BLI_editVert.h"
-#include "BLI_edgehash.h"
-#include "BLI_linklist.h"
-
-#include "BKE_curve.h"
#include "BKE_deform.h"
#include "BKE_DerivedMesh.h"
#include "BKE_cdderivedmesh.h"
-#include "BKE_displist.h"
#include "BKE_effect.h"
#include "BKE_global.h"
-#include "BKE_key.h"
-#include "BKE_mesh.h"
#include "BKE_object.h"
-#include "BKE_cloth.h"
#include "BKE_modifier.h"
#include "BKE_utildefines.h"
-#include "BKE_DerivedMesh.h"
-#include "BIF_editdeform.h"
-#include "BIF_editkey.h"
-#include "DNA_screen_types.h"
-#include "BSE_headerbuttons.h"
-#include "BIF_screen.h"
-#include "BIF_space.h"
-#include "mydevice.h"
#include "BKE_pointcache.h"
@@ -287,97 +257,6 @@ void bvh_update_from_cloth(ClothModifierData *clmd, int moving)
bvh_update(bvh, moving);
}
-DerivedMesh *CDDM_create_tearing ( ClothModifierData *clmd, DerivedMesh *dm )
-{
- DerivedMesh *result = NULL;
- unsigned int i = 0, a = 0, j=0;
- int numverts = dm->getNumVerts ( dm );
- int numfaces = dm->getNumFaces ( dm );
-
- MVert *mvert = CDDM_get_verts ( dm );
- MFace *mface = CDDM_get_faces ( dm );
-
- MVert *mvert2;
- MFace *mface2;
- EdgeHash *edgehash = NULL;
- Cloth *cloth = clmd->clothObject;
- ClothSpring *springs = (ClothSpring *)cloth->springs;
- unsigned int numsprings = cloth->numsprings;
-
- // create spring tearing hash
- edgehash = BLI_edgehash_new();
-
- for ( i = 0; i < numsprings; i++ )
- {
- if ( ( springs[i].flags & CLOTH_SPRING_FLAG_DEACTIVATE )
- && ( !BLI_edgehash_haskey ( edgehash, springs[i].ij, springs[i].kl ) ) )
- {
- BLI_edgehash_insert ( edgehash, springs[i].ij, springs[i].kl, NULL );
- BLI_edgehash_insert ( edgehash, springs[i].kl, springs[i].ij, NULL );
- j++;
- }
- }
-
- // printf("found %d tears\n", j);
-
- result = CDDM_from_template ( dm, numverts, 0, numfaces );
-
- if ( !result )
- return NULL;
-
- // do verts
- mvert2 = CDDM_get_verts ( result );
- for ( a=0; a<numverts; a++ )
- {
- MVert *inMV;
- MVert *mv = &mvert2[a];
-
- inMV = &mvert[a];
-
- DM_copy_vert_data ( dm, result, a, a, 1 );
- *mv = *inMV;
- }
-
-
- // do faces
- mface2 = CDDM_get_faces ( result );
- for ( a=0, i=0; a<numfaces; a++ )
- {
- MFace *mf = &mface2[i];
- MFace *inMF;
- inMF = &mface[a];
-
- /*
- DM_copy_face_data(dm, result, a, i, 1);
-
- *mf = *inMF;
- */
-
- if ( ( !BLI_edgehash_haskey ( edgehash, mface[a].v1, mface[a].v2 ) )
- && ( !BLI_edgehash_haskey ( edgehash, mface[a].v2, mface[a].v3 ) )
- && ( !BLI_edgehash_haskey ( edgehash, mface[a].v3, mface[a].v4 ) )
- && ( !BLI_edgehash_haskey ( edgehash, mface[a].v4, mface[a].v1 ) ) )
- {
- mf->v1 = mface[a].v1;
- mf->v2 = mface[a].v2;
- mf->v3 = mface[a].v3;
- mf->v4 = mface[a].v4;
-
- test_index_face ( mf, NULL, 0, 4 );
-
- i++;
- }
- }
-
- CDDM_lower_num_faces ( result, i );
- CDDM_calc_edges ( result );
- CDDM_calc_normals ( result );
-
- BLI_edgehash_free ( edgehash, NULL );
-
- return result;
-}
-
int modifiers_indexInObject(Object *ob, ModifierData *md_seek);
int cloth_read_cache(Object *ob, ClothModifierData *clmd, float framenr)
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index f9391a0adb8..a1c49ac4655 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -30,32 +30,17 @@
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
#include "MEM_guardedalloc.h"
-/* types */
-#include "DNA_curve_types.h"
+
+#include "BKE_cloth.h"
+
#include "DNA_group_types.h"
#include "DNA_object_types.h"
-#include "DNA_object_force.h"
#include "DNA_cloth_types.h"
-#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_lattice_types.h"
#include "DNA_scene_types.h"
-#include "DNA_modifier_types.h"
-#include "BLI_blenlib.h"
-#include "BLI_arithb.h"
-#include "BLI_edgehash.h"
-#include "BLI_linklist.h"
-#include "BKE_curve.h"
-#include "BKE_deform.h"
+
#include "BKE_DerivedMesh.h"
-#include "BKE_cdderivedmesh.h"
-#include "BKE_displist.h"
-#include "BKE_effect.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
@@ -63,10 +48,6 @@
#include "BKE_modifier.h"
#include "BKE_utildefines.h"
#include "BKE_DerivedMesh.h"
-#include "DNA_screen_types.h"
-#include "BSE_headerbuttons.h"
-#include "BIF_screen.h"
-#include "BIF_space.h"
#include "mydevice.h"
#include "Bullet-C-Api.h"
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index 6e33805fbeb..bb228a67381 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -522,6 +522,8 @@ void pdDoEffectors(ListBase *lb, float *opco, float *force, float *speed, float
if((pd->flag & PFIELD_USEMAX) && distance>pd->maxdist && pd->forcefield != PFIELD_GUIDE)
; /* don't do anything */
+ else if((pd->flag & PFIELD_USEMIN) && distance<pd->mindist && pd->forcefield != PFIELD_GUIDE)
+ ; /* don't do anything */
else if(pd->forcefield == PFIELD_WIND) {
VECCOPY(force_vec, ob->obmat[2]);
diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c
index 2b01f256c56..21e58f88aad 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -29,38 +29,19 @@
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
-#include "math.h"
-#include "float.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
+
#include "MEM_guardedalloc.h"
-/* types */
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
+
+#include "BKE_cloth.h"
+
#include "DNA_cloth_types.h"
-#include "DNA_key_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_lattice_types.h"
#include "DNA_scene_types.h"
-#include "DNA_modifier_types.h"
-#include "BLI_blenlib.h"
-#include "BLI_arithb.h"
-#include "BLI_threads.h"
-#include "BKE_curve.h"
-#include "BKE_displist.h"
+
+
#include "BKE_effect.h"
#include "BKE_global.h"
-#include "BKE_key.h"
-#include "BKE_object.h"
#include "BKE_cloth.h"
-#include "BKE_modifier.h"
#include "BKE_utildefines.h"
-#include "BKE_global.h"
-#include "BIF_editdeform.h"
#ifdef _WIN32
@@ -1446,6 +1427,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], wind_normalized, 1.0 / 3.0);
}
+ speed[0] = speed[1] = speed[2] = 0.0;
pdDoEffectors(effectors, lX[mfaces[i].v2], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
@@ -1458,7 +1440,8 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
{
VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 1.0 / 3.0);
}
-
+
+ speed[0] = speed[1] = speed[2] = 0.0;
pdDoEffectors(effectors, lX[mfaces[i].v3], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
@@ -1472,6 +1455,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 1.0 / 3.0);
}
+ speed[0] = speed[1] = speed[2] = 0.0;
if(mfaces[i].v4)
{
pdDoEffectors(effectors, lX[i], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
diff --git a/source/blender/blenkernel/intern/kdop.c b/source/blender/blenkernel/intern/kdop.c
index 06525449bf4..79a9559250f 100644
--- a/source/blender/blenkernel/intern/kdop.c
+++ b/source/blender/blenkernel/intern/kdop.c
@@ -30,49 +30,22 @@
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
#include "MEM_guardedalloc.h"
-/* types */
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_cloth_types.h"
-#include "DNA_key_types.h"
+
+#include "BKE_cloth.h"
+
+#include "DNA_cloth_types.h"
#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_lattice_types.h"
#include "DNA_scene_types.h"
-#include "DNA_modifier_types.h"
-#include "BLI_blenlib.h"
-#include "BLI_arithb.h"
-#include "BLI_edgehash.h"
-#include "BLI_linklist.h"
-#include "BKE_curve.h"
+
#include "BKE_deform.h"
#include "BKE_DerivedMesh.h"
#include "BKE_cdderivedmesh.h"
-#include "BKE_displist.h"
#include "BKE_effect.h"
#include "BKE_global.h"
-#include "BKE_key.h"
-#include "BKE_mesh.h"
#include "BKE_object.h"
-#include "BKE_cloth.h"
#include "BKE_modifier.h"
#include "BKE_utildefines.h"
-#include "BKE_DerivedMesh.h"
-#include "BIF_editdeform.h"
-#include "BIF_editkey.h"
-#include "DNA_screen_types.h"
-#include "BSE_headerbuttons.h"
-#include "BIF_screen.h"
-#include "BIF_space.h"
-#include "mydevice.h"
-
-#include "BKE_utildefines.h"
-
#ifdef _OPENMP
#include <omp.h>