[Bf-blender-cvs] [4efbfb0] hair_system: Basic implementation of the hair solver API functions.

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


Commit: 4efbfb04fbc703789535ebe9be115759ef31be46
Author: Lukas Tönne
Date:   Thu Sep 25 10:07:33 2014 +0200
Branches: hair_system
https://developer.blender.org/rB4efbfb04fbc703789535ebe9be115759ef31be46

Basic implementation of the hair solver API functions.

With a couple of stubs to be implemented later.

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

M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/physics/intern/BPH_mass_spring.cpp

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

diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 2290820..dbb3e51 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -7633,8 +7633,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 		HairModifierData *hmd = (HairModifierData *)modifiers_findByType(ob, eModifierType_Hair);
 		if (hmd) {
 			draw_hair_system(scene, v3d, ar, base, hmd->hairsys);
-			if (hmd->debug_flag & MOD_HAIR_DEBUG_SHOW)
-				draw_hair_debug_info(scene, v3d, ar, base, hmd);
 		}
 	}
 
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 0005472..4006780 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -135,7 +135,6 @@ void draw_motion_paths_cleanup(View3D *v3d);
 
 /* drawhair.c */
 bool draw_hair_system(Scene *scene, View3D *v3d, ARegion *ar, Base *base, struct HairSystem *hsys);
-void draw_hair_debug_info(Scene *scene, View3D *v3d, ARegion *ar, Base *base, struct HairModifierData *hmd);
 
 /* drawobject.c */
 void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, const short dflag);
diff --git a/source/blender/physics/intern/BPH_mass_spring.cpp b/source/blender/physics/intern/BPH_mass_spring.cpp
index 56923b6..61a3140 100644
--- a/source/blender/physics/intern/BPH_mass_spring.cpp
+++ b/source/blender/physics/intern/BPH_mass_spring.cpp
@@ -51,6 +51,8 @@ extern "C" {
 #include "BPH_mass_spring.h"
 #include "implicit.h"
 
+/* ======== Cloth Solver ======== */
+
 /* Number of off-diagonal non-zero matrix blocks.
  * Basically there is one of these for each vertex-vertex interaction.
  */
@@ -716,3 +718,49 @@ int BPH_cloth_solve(Object *ob, float frame, ClothModifierData *clmd, ListBase *
 	
 	return 1;
 }
+
+/* ======== Cloth Solver ======== */
+
+struct HairSolverData {
+	Implicit_Data *id;
+	ListBase *effectors;
+};
+
+HairSolverData *BPH_hair_solver_create(void)
+{
+	HairSolverData *data = (HairSolverData *)MEM_callocN(sizeof(HairSolverData), "hair solver data");
+	
+	return data;
+}
+
+void BPH_hair_solver_free(HairSolverData *data)
+{
+	if (data) {
+		MEM_freeN(data);
+	}
+}
+
+void BPH_hair_solver_set_externals(HairSolverData *data, Scene *scene, Object *ob, DerivedMesh *dm, EffectorWeights *effector_weights)
+{
+	data->effectors = pdInitEffectors(scene, ob, NULL, effector_weights, true);
+}
+
+void BPH_hair_solver_free_effectors(HairSolverData *data)
+{
+	pdEndEffectors(&data->effectors);
+}
+
+void BPH_hair_solver_set_positions(HairSolverData *data, Scene *scene, Object *ob, HairSystem *hsys)
+{
+	// XXX TODO
+}
+
+void BPH_hair_solve(struct HairSolverData *data, HairParams *params, float time, float timestep, SimDebugData *debug_data)
+{
+	// XXX TODO
+}
+
+void BPH_hair_solver_apply_positions(HairSolverData *data, Scene *scene, Object *ob, HairSystem *hsys)
+{
+	// XXX TODO
+}




More information about the Bf-blender-cvs mailing list