Commit: e6b80eb1798428913965e8ec3796a95944af157b
Author: Lukas Tönne
Date:   Mon Jan 19 20:01:37 2015 +0100
Branches: master
https://developer.blender.org/rBe6b80eb1798428913965e8ec3796a95944af157b

Fix for merge errors and leftover unused code lines.

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

M       source/blender/physics/intern/BPH_mass_spring.cpp

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

diff --git a/source/blender/physics/intern/BPH_mass_spring.cpp 
b/source/blender/physics/intern/BPH_mass_spring.cpp
index d911a43..945cc0d 100644
--- a/source/blender/physics/intern/BPH_mass_spring.cpp
+++ b/source/blender/physics/intern/BPH_mass_spring.cpp
@@ -526,21 +526,15 @@ static void cloth_calc_force(ClothModifierData *clmd, 
float UNUSED(frame), ListB
        }
 }
 
-#if 0
-#endif
-/* returns active vertexes' motion state, or original location the vertex is 
disabled */
-BLI_INLINE bool cloth_get_grid_location(Implicit_Data *data, float cell_scale, 
const float cell_offset[3],
-                                        ClothVertex *vert, int index, float 
x[3], float v[3])
+/* returns vertexes' motion state */
+BLI_INLINE void cloth_get_grid_location(Implicit_Data *data, float cell_scale, 
const float cell_offset[3],
+                                        int index, float x[3], float v[3])
 {
-       bool is_motion_state;
        BPH_mass_spring_get_position(data, index, x);
        BPH_mass_spring_get_new_velocity(data, index, v);
-       is_motion_state = true;
        
        mul_v3_fl(x, cell_scale);
        add_v3_v3(x, cell_offset);
-       
-       return is_motion_state;
 }
 
 /* returns next spring forming a continous hair sequence */
@@ -583,9 +577,9 @@ static LinkNode *cloth_continuum_add_hair_segments(HairGrid 
*grid, const float c
        zero_v3(dir2);
        
        vert3 = &verts[spring3->kl];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert3, 
spring3->kl, x3, v3);
+       cloth_get_grid_location(data, cell_scale, cell_offset, spring3->kl, x3, 
v3);
        vert4 = &verts[spring3->ij];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert4, 
spring3->ij, x4, v4);
+       cloth_get_grid_location(data, cell_scale, cell_offset, spring3->ij, x4, 
v4);
        sub_v3_v3v3(dir3, x4, x3);
        normalize_v3(dir3);
        
@@ -610,7 +604,7 @@ static LinkNode *cloth_continuum_add_hair_segments(HairGrid 
*grid, const float c
                if (spring_link) {
                        spring3 = (ClothSpring *)spring_link->link;
                        vert4 = &verts[spring3->ij];
-                       cloth_get_grid_location(data, cell_scale, cell_offset, 
vert4, spring3->ij, x4, v4);
+                       cloth_get_grid_location(data, cell_scale, cell_offset, 
spring3->ij, x4, v4);
                        sub_v3_v3v3(dir3, x4, x3);
                        normalize_v3(dir3);
                }
@@ -700,8 +694,8 @@ static void cloth_continuum_step(ClothModifierData *clmd, 
float dt)
        
        const float fluid_factor = 0.95f; /* blend between PIC and FLIP methods 
*/
        float smoothfac = parms->velocity_smooth;
-       float pressfac = parms->pressure;
-       float minpress = parms->pressure_threshold;
+       float density_target = parms->density_target;
+       float density_strength = parms->density_strength;
        float gmin[3], gmax[3];
        int i;
        
@@ -713,14 +707,14 @@ static void cloth_continuum_step(ClothModifierData *clmd, 
float dt)
        hair_get_boundbox(clmd, gmin, gmax);
        
        /* gather velocities & density */
-       if (smoothfac > 0.0f || pressfac > 0.0f) {
+       if (smoothfac > 0.0f || density_strength > 0.0f) {
                HairGrid *grid = 
BPH_hair_volume_create_vertex_grid(clmd->sim_parms->voxel_cell_size, gmin, 
gmax);
                BPH_hair_volume_set_debug_data(grid, clmd->debug_data);
                
                cloth_continuum_fill_grid(grid, cloth);
                
                /* main hair continuum solver */
-               BPH_hair_volume_solve_divergence(grid, dt);
+               BPH_hair_volume_solve_divergence(grid, dt, density_target, 
density_strength);
                
                for (i = 0, vert = cloth->verts; i < numverts; i++, vert++) {
                        float x[3], v[3], nv[3];
@@ -838,270 +832,6 @@ static void cloth_calc_volume_force(ClothModifierData 
*clmd)
 }
 #endif
 
-/* returns active vertexes' motion state, or original location the vertex is 
disabled */
-BLI_INLINE bool cloth_get_grid_location(Implicit_Data *data, float cell_scale, 
const float cell_offset[3],
-                                        ClothVertex *vert, float x[3], float 
v[3])
-{
-       bool is_motion_state;
-       if (vert->solver_index < 0) {
-               copy_v3_v3(x, vert->x);
-               copy_v3_v3(v, vert->v);
-               is_motion_state = false;
-       }
-       else {
-               BPH_mass_spring_get_position(data, vert->solver_index, x);
-               BPH_mass_spring_get_new_velocity(data, vert->solver_index, v);
-               is_motion_state = true;
-       }
-       
-       mul_v3_fl(x, cell_scale);
-       add_v3_v3(x, cell_offset);
-       
-       return is_motion_state;
-}
-
-/* returns next spring forming a continous hair sequence */
-BLI_INLINE LinkNode *hair_spring_next(LinkNode *spring_link)
-{
-       ClothSpring *spring = (ClothSpring *)spring_link->link;
-       LinkNode *next = spring_link->next;
-       if (next) {
-               ClothSpring *next_spring = (ClothSpring *)next->link;
-               if (next_spring->type == CLOTH_SPRING_TYPE_STRUCTURAL && 
next_spring->kl == spring->ij)
-                       return next;
-       }
-       return NULL;
-}
-
-/* XXX this is nasty: cloth meshes do not explicitly store
- * the order of hair segments!
- * We have to rely on the spring build function for now,
- * which adds structural springs in reverse order:
- *   (3,4), (2,3), (1,2)
- * This is currently the only way to figure out hair geometry inside this code 
...
- */
-static LinkNode *cloth_continuum_add_hair_segments(HairGrid *grid, const float 
cell_scale, const float cell_offset[3], Cloth *cloth, LinkNode *spring_link)
-{
-       Implicit_Data *data = cloth->implicit;
-       LinkNode *next_spring_link = NULL; /* return value */
-       ClothSpring *spring1, *spring2, *spring3;
-       ClothVertex *verts = cloth->verts;
-       ClothVertex *vert3, *vert4;
-       float x1[3], v1[3], x2[3], v2[3], x3[3], v3[3], x4[3], v4[3];
-       float dir1[3], dir2[3], dir3[3];
-       
-       spring1 = NULL;
-       spring2 = NULL;
-       spring3 = (ClothSpring *)spring_link->link;
-       
-       zero_v3(x1); zero_v3(v1);
-       zero_v3(dir1);
-       zero_v3(x2); zero_v3(v2);
-       zero_v3(dir2);
-       
-       vert3 = &verts[spring3->kl];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert3, x3, v3);
-       vert4 = &verts[spring3->ij];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert4, x4, v4);
-       sub_v3_v3v3(dir3, x4, x3);
-       normalize_v3(dir3);
-       
-       while (spring_link) {
-               /* move on */
-               spring1 = spring2;
-               spring2 = spring3;
-               
-               vert3 = vert4;
-               
-               copy_v3_v3(x1, x2); copy_v3_v3(v1, v2);
-               copy_v3_v3(x2, x3); copy_v3_v3(v2, v3);
-               copy_v3_v3(x3, x4); copy_v3_v3(v3, v4);
-               
-               copy_v3_v3(dir1, dir2);
-               copy_v3_v3(dir2, dir3);
-               
-               /* read next segment */
-               next_spring_link = spring_link->next;
-               spring_link = hair_spring_next(spring_link);
-               
-               if (spring_link) {
-                       spring3 = (ClothSpring *)spring_link->link;
-                       vert4 = &verts[spring3->ij];
-                       cloth_get_grid_location(data, cell_scale, cell_offset, 
vert4, x4, v4);
-                       sub_v3_v3v3(dir3, x4, x3);
-                       normalize_v3(dir3);
-               }
-               else {
-                       spring3 = NULL;
-                       vert4 = NULL;
-                       zero_v3(x4); zero_v3(v4);
-                       zero_v3(dir3);
-               }
-               
-               BPH_hair_volume_add_segment(grid, x1, v1, x2, v2, x3, v3, x4, 
v4,
-                                           spring1 ? dir1 : NULL,
-                                           dir2,
-                                           spring3 ? dir3 : NULL);
-       }
-       
-       /* last segment */
-       spring1 = spring2;
-       spring2 = spring3;
-       spring3 = NULL;
-       
-       vert3 = vert4;
-       vert4 = NULL;
-       
-       copy_v3_v3(x1, x2); copy_v3_v3(v1, v2);
-       copy_v3_v3(x2, x3); copy_v3_v3(v2, v3);
-       copy_v3_v3(x3, x4); copy_v3_v3(v3, v4);
-       zero_v3(x4);        zero_v3(v4);
-       
-       copy_v3_v3(dir1, dir2);
-       copy_v3_v3(dir2, dir3);
-       zero_v3(dir3);
-       
-       BPH_hair_volume_add_segment(grid, x1, v1, x2, v2, x3, v3, x4, v4,
-                                   spring1 ? dir1 : NULL,
-                                   dir2,
-                                   NULL);
-       
-       return next_spring_link;
-}
-
-static void cloth_continuum_fill_grid(HairGrid *grid, Cloth *cloth)
-{
-#if 0
-       Implicit_Data *data = cloth->implicit;
-       int numverts = cloth->numverts;
-       ClothVertex *vert;
-       int i;
-       
-       for (i = 0, vert = cloth->verts; i < numverts; i++, vert++) {
-               float x[3], v[3];
-               
-               cloth_get_vertex_motion_state(data, vert, x, v);
-               BPH_hair_volume_add_vertex(grid, x, v);
-       }
-#else
-       LinkNode *link;
-       float cellsize, gmin[3], cell_scale, cell_offset[3];
-       
-       /* scale and offset for transforming vertex locations into grid space
-        * (cell size is 0..1, gmin becomes origin)
-        */
-       BPH_hair_volume_grid_geometry(grid, &cellsize, NULL, gmin, NULL);
-       cell_scale = cellsize > 0.0f ? 1.0f / cellsize : 0.0f;
-       mul_v3_v3fl(cell_offset, gmin, cell_scale);
-       negate_v3(cell_offset);
-       
-       link = cloth->springs;
-       while (link) {
-               ClothSpring *spring = (ClothSpring *)link->link;
-               if (spring->type == CLOTH_SPRING_TYPE_STRUCTURAL)
-                       link = cloth_continuum_add_hair_segments(grid, 
cell_scale, cell_offset, cloth, link);
-               else
-                       link = link->next;
-       }
-#endif
-       BPH_hair_volume_normalize_vertex_grid(grid);
-}
-
-static void cloth_continuum_step(ClothModifierData *clmd, float dt)
-{
-       ClothSimSettings *parms = clmd->sim_parms;
-       Cloth *cloth = clmd->clothObject;
-       Implicit_Data *data = cloth->implicit;
-       int numverts = cloth->numverts;
-       ClothVertex *vert;
-       
-       const float fluid_factor = 0.95f; /* blend between PIC and FLIP methods 
*/
-       float smoothfac = parms->velocity_smooth;
-       float denstarget = parms->density_target;
-       float densfac = parms->density_strength;
-       float gmin[3], gmax[3];
-       int i;
-       
-       /* clear grid info */
-       zero_v3_int(clmd->hair_grid_res);
-       zero_v3(clmd->hair_grid_min);
-       zero_v3(clmd->hair_grid_max);
-       
-       hair_get_boundbox(clmd, gmin, gmax);
-       
-       /* gather velocities & density */
-       if (smoothfac > 0.0f || densfac > 0.0f) {
-               HairGrid *grid = 
BPH_hair_volume_create_vertex_grid(clmd->sim_parms->voxel_cell_size, gmin, 
gmax);
-               BPH_hair_volume_set_debug_data(grid, clmd->debug_data);
-               
-//             BPH_hair_volume_set_debug_value(grid, (int)(spring2->ij == 
clmd->sim_parms->density_target));
-               cloth_continuum_fill_grid(grid, cloth);
-               
-               /* main hair continuum solver */
-               BPH_hair_volume_solve_divergence(grid, dt, denstarget, densfac);
-               
-               for (i = 0, vert = cloth->verts; i < numverts; i++, vert++) {
-                       float x[3], v[3], nv[3];
-                       
-                       if (vert->solver_index < 0)
-                               continue;
-                       
-                       /* calculate volumetric velocity influence */
-                       BPH_mass_spring_get_position(data, vert->solver_index, 
x);
-                       BPH_mass_spring_get_new_velocity(data, 
vert->solver_index, v);
-                       
-                       BPH_hair_volume_grid_velocity(grid, x, v, fluid_factor, 
nv);
-                       
-                       interp_v3_v3v3(nv, v, nv, smoothfac);
-                       
-                       /* apply on hair data */
-                       BPH_mass_spring_set_new_velocity(data, 
vert->solver_index, nv);
-               }
-               
-               /* store 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to