[Bf-blender-cvs] [299b590] hair_system: Disabled the bf_hair module, to be replaced by general physics module code.

Lukas Tönne noreply at git.blender.org
Sun Oct 5 14:56:31 CEST 2014


Commit: 299b59042b6d1b8616e84cfad87efad9639dd80f
Author: Lukas Tönne
Date:   Wed Sep 24 12:14:44 2014 +0200
Branches: hair_system
https://developer.blender.org/rB299b59042b6d1b8616e84cfad87efad9639dd80f

Disabled the bf_hair module, to be replaced by general physics module
code.

===================================================================

M	build_files/cmake/macros.cmake
M	source/blender/CMakeLists.txt
M	source/blender/SConscript
M	source/blender/blenkernel/BKE_hair.h
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/SConscript
M	source/blender/blenkernel/intern/hair.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/particle.c
M	source/blender/blenkernel/intern/particle_system.c
M	source/blender/blenkernel/intern/rigidbody_objects.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/editors/object/CMakeLists.txt
M	source/blender/editors/object/SConscript
M	source/blender/editors/object/object_modifier.c
M	source/blender/editors/physics/CMakeLists.txt
M	source/blender/editors/physics/SConscript
M	source/blender/editors/physics/hair_ops.c
M	source/blender/editors/space_view3d/CMakeLists.txt
M	source/blender/editors/space_view3d/SConscript
M	source/blender/editors/space_view3d/drawhair.c
M	source/blender/makesdna/DNA_hair_types.h
M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesdna/DNA_particle_types.h
M	source/blender/makesrna/SConscript
M	source/blender/makesrna/intern/CMakeLists.txt
M	source/blender/makesrna/intern/SConscript
M	source/blender/makesrna/intern/rna_particle.c
M	source/blender/modifiers/CMakeLists.txt
M	source/blender/modifiers/SConscript
M	source/blender/modifiers/intern/MOD_hair.c
M	source/blender/render/CMakeLists.txt
M	source/blender/render/intern/source/voxeldata.c

===================================================================

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index f6438c7..0ede486 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -496,7 +496,6 @@ macro(SETUP_BLENDER_SORTED_LIBS)
 		bf_freestyle
 		bf_ikplugin
 		bf_modifiers
-		bf_hair
 		bf_bmesh
 		bf_blenkernel
 		bf_physics
diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt
index eab2de7..31b9f45 100644
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@ -108,7 +108,6 @@ add_subdirectory(gpu)
 add_subdirectory(imbuf)
 add_subdirectory(nodes)
 add_subdirectory(modifiers)
-add_subdirectory(hair)
 add_subdirectory(makesdna)
 add_subdirectory(makesrna)
 
diff --git a/source/blender/SConscript b/source/blender/SConscript
index 16ca05a..64eca6a 100644
--- a/source/blender/SConscript
+++ b/source/blender/SConscript
@@ -43,8 +43,7 @@ SConscript(['avi/SConscript',
             'ikplugin/SConscript',
             'physics/SConscript',
             'windowmanager/SConscript',
-            'blenfont/SConscript',
-            'hair/SConscript'])
+            'blenfont/SConscript'])
 
 makesrna = SConscript('makesrna/SConscript')
 
diff --git a/source/blender/blenkernel/BKE_hair.h b/source/blender/blenkernel/BKE_hair.h
index 7037c13..38ee91f 100644
--- a/source/blender/blenkernel/BKE_hair.h
+++ b/source/blender/blenkernel/BKE_hair.h
@@ -34,9 +34,7 @@
 struct HairSystem;
 struct HairCurve;
 struct HairPoint;
-struct HairDebugData;
 struct HairParams;
-struct HAIR_SolverDebugElement;
 
 struct HairSystem *BKE_hairsys_new(void);
 void BKE_hairsys_free(struct HairSystem *hsys);
@@ -59,11 +57,6 @@ void BKE_hair_point_remove_position(struct HairSystem *hsys, struct HairCurve *h
 
 void BKE_hair_calculate_rest(struct HairSystem *hsys);
 
-struct HairDebugData *BKE_hair_debug_data_new(void);
-void BKE_hair_debug_data_insert(struct HairDebugData *debug_data, struct HAIR_SolverDebugElement *elem);
-void BKE_hair_debug_data_clear(struct HairDebugData *debug_data);
-void BKE_hair_debug_data_free(struct HairDebugData *debug_data);
-
 /* cached per-hair data */
 typedef struct HairPointRenderCache {
 	float nor[3], tan[3], cotan[3];
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 1cd5c9a..c2b432d 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -36,7 +36,6 @@ set(INC
 	../bmesh
 	../modifiers
 	../nodes
-	../hair
 	../physics
 	../render/extern/include
 	../../../intern/guardedalloc
diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript
index d096d77..6406d13 100644
--- a/source/blender/blenkernel/SConscript
+++ b/source/blender/blenkernel/SConscript
@@ -57,7 +57,6 @@ incs = [
     '../blenloader',
     '../bmesh',
     '../gpu',
-    '../hair',
     '../ikplugin',
     '../imbuf',
     '../makesdna',
diff --git a/source/blender/blenkernel/intern/hair.c b/source/blender/blenkernel/intern/hair.c
index c0da7c8..1020e6a 100644
--- a/source/blender/blenkernel/intern/hair.c
+++ b/source/blender/blenkernel/intern/hair.c
@@ -43,9 +43,6 @@
 #include "BKE_hair.h"
 #include "BKE_mesh_sample.h"
 
-#include "HAIR_capi.h"
-#include "HAIR_debug_types.h"
-
 void BKE_hairparams_init(HairParams *params)
 {
 	params->substeps_forces = 30;
@@ -247,67 +244,6 @@ void BKE_hair_calculate_rest(HairSystem *hsys)
 }
 
 
-static unsigned int debug_element_hash(const void *key)
-{
-	const HAIR_SolverDebugElement *elem = key;
-	return elem->hash;
-}
-
-static int debug_element_compare(const void *a, const void *b)
-{
-	const HAIR_SolverDebugElement *elem1 = a;
-	const HAIR_SolverDebugElement *elem2 = b;
-
-	if (elem1->hash == elem2->hash) {
-		return 0;
-	}
-	return 1;
-}
-
-static void debug_element_free(void *val)
-{
-	HAIR_SolverDebugElement *elem = val;
-	MEM_freeN(elem);
-}
-
-HairDebugData *BKE_hair_debug_data_new(void)
-{
-	HairDebugData *debug_data = MEM_callocN(sizeof(HairDebugData), "hair debug data");
-	debug_data->gh = BLI_ghash_new(debug_element_hash, debug_element_compare, "hair debug element hash");
-	return debug_data;
-}
-
-void BKE_hair_debug_data_insert(HairDebugData *debug_data, HAIR_SolverDebugElement *elem)
-{
-	HAIR_SolverDebugElement *old_elem = BLI_ghash_lookup(debug_data->gh, elem);
-	if (old_elem) {
-		*old_elem = *elem;
-		MEM_freeN(elem);
-	}
-	else
-		BLI_ghash_insert(debug_data->gh, elem, elem);
-}
-
-void BKE_hair_debug_data_clear(HairDebugData *debug_data)
-{
-	if (!debug_data)
-		return;
-	
-	if (debug_data->gh)
-		BLI_ghash_clear(debug_data->gh, NULL, debug_element_free);
-}
-
-void BKE_hair_debug_data_free(HairDebugData *debug_data)
-{
-	if (!debug_data)
-		return;
-	
-	if (debug_data->gh)
-		BLI_ghash_free(debug_data->gh, NULL, debug_element_free);
-	MEM_freeN(debug_data);
-}
-
-
 /* ================ Render ================ */
 
 static int hair_maxpoints(HairSystem *hsys)
@@ -370,6 +306,7 @@ static void hair_precalc_cache(HairRenderIterator *iter)
 	if (!BKE_hair_render_iter_valid_hair(iter))
 		return;
 	
+#if 0 // TODO
 	frame_iter = HAIR_frame_iter_new();
 	get_hair_root_frame(iter->hair, initial_frame);
 	
@@ -398,6 +335,7 @@ static void hair_precalc_cache(HairRenderIterator *iter)
 		
 		++cache;
 	}
+#endif
 }
 
 void BKE_hair_render_iter_init(HairRenderIterator *iter, HairSystem *hsys)
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index e3b2282..b83141d 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -113,8 +113,6 @@
 #include "BKE_camera.h"
 #include "BKE_image.h"
 
-#include "HAIR_capi.h"
-
 #ifdef WITH_MOD_FLUID
 #include "LBM_fluidsim.h"
 #endif
@@ -1280,9 +1278,6 @@ static ParticleSystem *copy_particlesystem(ParticleSystem *psys)
 	}
 #endif
 
-	psysn->solver = NULL;
-	*psysn->params = *psys->params;
-	
 	BLI_duplicatelist(&psysn->targets, &psys->targets);
 
 	psysn->pathcache = NULL;
@@ -3184,48 +3179,21 @@ void BKE_object_sim_pre_step(Scene *scene, Object *ob, float ctime)
 			HairSystem *hsys = hmd->hairsys;
 			DerivedMesh *dm = ob->derivedFinal;
 			
-			if (!hmd->solver) {
-				hmd->solver = HAIR_solver_new();
+			if (!hmd->solver_data) {
+				hmd->solver_data = HAIR_solver_new();
 				hmd->flag &= ~MOD_HAIR_SOLVER_DATA_VALID;
 			}
 			
-			HAIR_solver_set_params(hmd->solver, &hsys->params);
+			HAIR_solver_set_params(hmd->solver_data, &hsys->params);
 			
 			if (!hmd->flag & MOD_HAIR_SOLVER_DATA_VALID) {
-				HAIR_solver_build_modifier_data(hmd->solver, scene, ob, dm, hsys, ctime);
+				HAIR_solver_build_modifier_data(hmd->solver_data, scene, ob, dm, hsys, ctime);
 				BKE_hair_debug_data_clear(hmd->debug_data);
 				hmd->flag |= MOD_HAIR_SOLVER_DATA_VALID;
 			}
 			
-			HAIR_solver_update_modifier_externals(hmd->solver, scene, ob, dm, hsys, ctime);
+			HAIR_solver_update_modifier_externals(hmd->solver_data, scene, ob, dm, hsys, ctime);
 		}
-		else if (md->type == eModifierType_ParticleSystem) {
-			ParticleSystem *psys = ((ParticleSystemModifierData *) md)->psys;
-			
-			if (psys && psys->part && psys->part->type == PART_HAIR && psys->flag & PSYS_HAIR_DYNAMICS && psys->particles) {
-				/* This, strictly speaking, is not so correct */
-				DerivedMesh *dm = ob->derivedFinal;
-				
-				if (!psys->solver) {
-					psys->solver = HAIR_solver_new();
-					
-					/* it should never happen actually */
-					if (!psys->params) {
-						psys->params = MEM_mallocN(sizeof(HairParams), "particle_system_hair_params");
-						BKE_hairparams_init(psys->params);
-					}
-					
-					HAIR_solver_set_params(psys->solver, psys->params);
-					
-					HAIR_solver_build_particle_data(psys->solver, scene, ob, dm, psys, ctime);
-				}
-				else {
-					HAIR_solver_set_params(psys->solver, psys->params);
-				}
-								
-				HAIR_solver_update_particle_externals(psys->solver, scene, ob, dm, psys, ctime);
-			}
-		}		
 	}
 }
 
@@ -3243,7 +3211,7 @@ void BKE_object_sim_tick(Scene *UNUSED(scene), Object *ob, float ctime, float ti
 					hmd->debug_data = NULL;
 				}
 				
-				HAIR_solver_step(hmd->solver, ctime, timestep);
+				HAIR_solver_step(hmd->solver_data, ctime, timestep);
 			}
 			else {
 				float imat[4][4];
@@ -3252,14 +3220,7 @@ void BKE_object_sim_tick(Scene *UNUSED(scene), Object *ob, float ctime, float ti
 				if (!hmd->debug_data)
 					hmd->debug_data = BKE_hair_debug_data_new();
 				
-				HAIR_solver_step_debug(hmd->solver, ctime, timestep, imat, hmd->debug_data);
-			}
-		}
-		else if (md->type == eModifierType_ParticleSystem) {
-			ParticleSystem *psys = ((ParticleSystemModifierData *) md)->psys;
-			
-			if (psys->solver) {
-				HAIR_solver_step(psys->solver, ctime, timestep);
+				HAIR_solver_step_debug(hmd->solver_data, ctime, timestep, imat, hmd->debug_data);
 			}
 		}
 	}
@@ -3272,7 +3233,7 @@ void BKE_object_sim_post_step(Scene *scene, Object *ob, float UNUSED(ctime))
 	for (md = ob->modifiers.first; md; md = md->next) {
 		if (md->type == eModifierType_Hair) {
 			HairModifierData *hmd = (HairModifierData*) md;
-			HAIR_solver_apply(hmd->solver, scene, ob, hmd->hairsys);
+			HAIR_solver_apply(hmd->solver_data, scene, ob, hmd->hairsys);
 		}
 	}
 }
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index c41e6aa..bde91f9 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -82,8 +82,6 @@
 #include "BKE_scene.h"
 #include "BKE_deform.h"
 
-#include "HAIR_capi.h"
-
 #include "RE_render_ext.h"
 
 unsigned int PSYS_FRAND_SEED_OFFSET[PSYS_FRAND_COUNT];
@@ -422,16 +420,6 @@ void free_hair(Object *UNUSED(ob), ParticleSystem *psys, int UNUSED(dynamics))
 		}
 	}
 #endif
-	if (psys->solver) {
-		HAIR_solver_free(psys->solver);
-		psys->solver = NULL;
-	}
-	
-	if (psys->params) {
-		MEM_freeN(psys->params);
-		psys->params = NULL;
-	}
-	
 	if (psys->hair_in_dm)
 		psys->hair_in_dm->release(psys->hair_in_dm);
 	psys->hair_in_dm = NULL;
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 2210fd0..d6c1734 100644
--- a/source/blender/blenkernel/intern/particle_system

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list