Commit: e3dcbc36796fcf8b9c86a3d964a65966a4ad399e
Author: Lukas Tönne
Date:   Thu Nov 6 12:32:35 2014 +0100
Branches: master
https://developer.blender.org/rBe3dcbc36796fcf8b9c86a3d964a65966a4ad399e

Renamed HairVertexGrid to HairGrid, since it's not actually storing
hair vertex data.

Conflicts:
        source/blender/physics/intern/BPH_mass_spring.cpp

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

M       source/blender/physics/intern/BPH_mass_spring.cpp
M       source/blender/physics/intern/hair_volume.c
M       source/blender/physics/intern/implicit.h

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

diff --git a/source/blender/physics/intern/BPH_mass_spring.cpp 
b/source/blender/physics/intern/BPH_mass_spring.cpp
index 16828d8..6704201 100644
--- a/source/blender/physics/intern/BPH_mass_spring.cpp
+++ b/source/blender/physics/intern/BPH_mass_spring.cpp
@@ -590,19 +590,12 @@ static void cloth_calc_volume_force(ClothModifierData 
*clmd)
 
 /* returns active vertexes' motion state, or original location the vertex is 
disabled */
 BLI_INLINE bool cloth_get_grid_location(Implicit_Data *data, const float 
cell_scale[3], const float cell_offset[3],
-                                        ClothVertex *vert, float x[3], float 
v[3])
+                                        ClothVertex *vert, int index, 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;
-       }
+       BPH_mass_spring_get_position(data, index, x);
+       BPH_mass_spring_get_new_velocity(data, index, v);
+       is_motion_state = true;
        
        mul_v3_v3(x, cell_scale);
        add_v3_v3(x, cell_offset);
@@ -630,7 +623,7 @@ BLI_INLINE LinkNode *hair_spring_next(LinkNode *spring_link)
  *   (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(HairVertexGrid *grid, const 
float cell_scale[3], const float cell_offset[3], Cloth *cloth, LinkNode 
*spring_link)
+static LinkNode *cloth_continuum_add_hair_segments(HairGrid *grid, const float 
cell_scale[3], const float cell_offset[3], Cloth *cloth, LinkNode *spring_link)
 {
        Implicit_Data *data = cloth->implicit;
        LinkNode *next_spring_link = NULL; /* return value */
@@ -650,9 +643,9 @@ static LinkNode 
*cloth_continuum_add_hair_segments(HairVertexGrid *grid, const f
        zero_v3(dir2);
        
        vert3 = &verts[spring3->kl];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert3, x3, v3);
+       cloth_get_grid_location(data, cell_scale, cell_offset, vert3, 
spring3->kl, x3, v3);
        vert4 = &verts[spring3->ij];
-       cloth_get_grid_location(data, cell_scale, cell_offset, vert4, x4, v4);
+       cloth_get_grid_location(data, cell_scale, cell_offset, vert4, 
spring3->ij, x4, v4);
        sub_v3_v3v3(dir3, x4, x3);
        normalize_v3(dir3);
        
@@ -677,7 +670,7 @@ static LinkNode 
*cloth_continuum_add_hair_segments(HairVertexGrid *grid, const f
                if (spring_link) {
                        spring3 = (ClothSpring *)spring_link->link;
                        vert4 = &verts[spring3->ij];
-                       cloth_get_grid_location(data, cell_scale, cell_offset, 
vert4, x4, v4);
+                       cloth_get_grid_location(data, cell_scale, cell_offset, 
vert4, spring3->ij, x4, v4);
                        sub_v3_v3v3(dir3, x4, x3);
                        normalize_v3(dir3);
                }
@@ -719,7 +712,7 @@ static LinkNode 
*cloth_continuum_add_hair_segments(HairVertexGrid *grid, const f
        return next_spring_link;
 }
 
-static void cloth_continuum_fill_grid(HairVertexGrid *grid, Cloth *cloth)
+static void cloth_continuum_fill_grid(HairGrid *grid, Cloth *cloth)
 {
 #if 0
        Implicit_Data *data = cloth->implicit;
@@ -784,12 +777,12 @@ static void cloth_continuum_step(ClothModifierData *clmd)
        
        /* gather velocities & density */
        if (smoothfac > 0.0f || pressfac > 0.0f) {
-               HairVertexGrid *vertex_grid = 
BPH_hair_volume_create_vertex_grid(clmd->sim_parms->voxel_res, gmin, gmax);
-               BPH_hair_volume_set_debug_data(vertex_grid, clmd->debug_data);
+               HairGrid *grid = 
BPH_hair_volume_create_vertex_grid(clmd->sim_parms->voxel_res, gmin, gmax);
+               BPH_hair_volume_set_debug_data(grid, clmd->debug_data);
                
-               BPH_hair_volume_grid_geometry(vertex_grid, cellsize, NULL, 
NULL, NULL);
+               BPH_hair_volume_grid_geometry(grid, cellsize, NULL, NULL, NULL);
                
-               cloth_continuum_fill_grid(vertex_grid, cloth);
+               cloth_continuum_fill_grid(grid, cloth);
                
 #if 0
                /* apply velocity filter */
@@ -803,7 +796,7 @@ static void cloth_continuum_step(ClothModifierData *clmd)
                        BPH_mass_spring_get_position(data, i, x);
                        BPH_mass_spring_get_new_velocity(data, i, v);
                        
-                       BPH_hair_volume_grid_velocity(vertex_grid, x, v, 
fluid_factor, nv);
+                       BPH_hair_volume_grid_velocity(grid, x, v, fluid_factor, 
nv);
                        
                        interp_v3_v3v3(nv, v, nv, smoothfac);
                        
@@ -812,7 +805,7 @@ static void cloth_continuum_step(ClothModifierData *clmd)
                }
                
                /* store basic grid info in the modifier data */
-               BPH_hair_volume_grid_geometry(vertex_grid, NULL, 
clmd->hair_grid_res, clmd->hair_grid_min, clmd->hair_grid_max);
+               BPH_hair_volume_grid_geometry(grid, NULL, clmd->hair_grid_res, 
clmd->hair_grid_min, clmd->hair_grid_max);
                
 #if 0 /* DEBUG hair velocity vector field */
                {
@@ -849,7 +842,7 @@ static void cloth_continuum_step(ClothModifierData *clmd)
                }
 #endif
                
-               BPH_hair_volume_free_vertex_grid(vertex_grid);
+               BPH_hair_volume_free_vertex_grid(grid);
        }
 }
 
@@ -1019,7 +1012,7 @@ int BPH_cloth_solve(Object *ob, float frame, 
ClothModifierData *clmd, ListBase *
 bool BPH_cloth_solver_get_texture_data(Object *UNUSED(ob), ClothModifierData 
*clmd, VoxelData *vd)
 {
        Cloth *cloth = clmd->clothObject;
-       HairVertexGrid *grid;
+       HairGrid *grid;
        float gmin[3], gmax[3];
        
        if (!clmd->clothObject || !clmd->clothObject->implicit)
diff --git a/source/blender/physics/intern/hair_volume.c 
b/source/blender/physics/intern/hair_volume.c
index a1c6cb6..77c3af3 100644
--- a/source/blender/physics/intern/hair_volume.c
+++ b/source/blender/physics/intern/hair_volume.c
@@ -84,14 +84,14 @@ typedef struct HairGridVert {
        float velocity_smooth[3];
 } HairGridVert;
 
-typedef struct HairVertexGrid {
+typedef struct HairGrid {
        HairGridVert *verts;
        int res;
        float gmin[3], gmax[3];
        float scale[3];
        
        struct SimDebugData *debug_data;
-} HairVertexGrid;
+} HairGrid;
 
 #define HAIR_GRID_INDEX_AXIS(vec, res, gmin, scale, axis) ( min_ii( max_ii( 
(int)((vec[axis] - gmin[axis]) / scale[axis]), 0), res-2 ) )
 
@@ -204,7 +204,7 @@ static void hair_velocity_collision(const HairGridVert 
*collgrid, const float gm
 }
 #endif
 
-void BPH_hair_volume_vertex_grid_forces(HairVertexGrid *grid, const float 
x[3], const float v[3],
+void BPH_hair_volume_vertex_grid_forces(HairGrid *grid, const float x[3], 
const float v[3],
                                         float smoothfac, float pressurefac, 
float minpressure,
                                         float f[3], float dfdx[3][3], float 
dfdv[3][3])
 {
@@ -228,13 +228,13 @@ void BPH_hair_volume_vertex_grid_forces(HairVertexGrid 
*grid, const float x[3],
        mul_m3_fl(dfdv, smoothfac);
 }
 
-void BPH_hair_volume_grid_interpolate(HairVertexGrid *grid, const float x[3],
+void BPH_hair_volume_grid_interpolate(HairGrid *grid, const float x[3],
                                       float *density, float velocity[3], float 
density_gradient[3], float velocity_gradient[3][3])
 {
        hair_grid_interpolate(grid->verts, grid->res, grid->gmin, grid->scale, 
x, density, velocity, density_gradient, velocity_gradient);
 }
 
-void BPH_hair_volume_grid_velocity(HairVertexGrid *grid, const float x[3], 
const float v[3],
+void BPH_hair_volume_grid_velocity(HairGrid *grid, const float x[3], const 
float v[3],
                                    float fluid_factor,
                                    float r_v[3])
 {
@@ -296,7 +296,7 @@ static int hair_grid_weights(int res, const float gmin[3], 
const float scale[3],
        return offset;
 }
 
-void BPH_hair_volume_add_vertex(HairVertexGrid *grid, const float x[3], const 
float v[3])
+void BPH_hair_volume_add_vertex(HairGrid *grid, const float x[3], const float 
v[3])
 {
        int res = grid->res;
        float weights[8];
@@ -345,7 +345,7 @@ BLI_INLINE int major_axis_v3(const float v[3])
        return v[0] > v[1] ? (v[0] > v[2] ? 0 : 2) : (v[1] > v[2] ? 1 : 2);
 }
 
-BLI_INLINE void grid_to_world(HairVertexGrid *grid, float vecw[3], const float 
vec[3])
+BLI_INLINE void grid_to_world(HairGrid *grid, float vecw[3], const float 
vec[3])
 {
        copy_v3_v3(vecw, vec);
        mul_v3_v3(vecw, grid->scale);
@@ -359,7 +359,7 @@ BLI_INLINE void grid_to_world(HairVertexGrid *grid, float 
vecw[3], const float v
  * 
  * 
  */
-void BPH_hair_volume_add_segment(HairVertexGrid *grid,
+void BPH_hair_volume_add_segment(HairGrid *grid,
                                  const float UNUSED(x1[3]), const float 
UNUSED(v1[3]), const float x2[3], const float v2[3],
                                  const float x3[3], const float v3[3], const 
float UNUSED(x4[3]), const float UNUSED(v4[3]),
                                  const float UNUSED(dir1[3]), const float 
dir2[3], const float UNUSED(dir3[3]))
@@ -483,7 +483,7 @@ void BPH_hair_volume_add_segment(HairVertexGrid *grid,
        }
 }
 
-void BPH_hair_volume_normalize_vertex_grid(HairVertexGrid *grid)
+void BPH_hair_volume_normalize_vertex_grid(HairGrid *grid)
 {
        int i, size = hair_grid_size(grid->res);
        /* divide velocity with density */
@@ -565,11 +565,11 @@ void 
BPH_hair_volume_vertex_grid_filter_box(HairVertexGrid *grid, int kernel_siz
 }
 #endif
 
-HairVertexGrid *BPH_hair_volume_create_vertex_grid(int res, const float 
gmin[3], const float gmax[3])
+HairGrid *BPH_hair_volume_create_vertex_grid(int res, const float gmin[3], 
const float gmax[3])
 {
        float cellsize[3], gmin_margin[3], gmax_margin[3];
        int size;
-       HairVertexGrid *grid;
+       HairGrid *grid;
        int i;
        
        /* original cell size, before adding margin */
@@ -581,7 +581,7 @@ HairVertexGrid *BPH_hair_volume_create_vertex_grid(int res, 
const float gmin[3],
        sub_v3_v3v3(gmin_margin, gmin, cellsize);
        add_v3_v3v3(gmax_margin, gmax, cellsize);
        
-       grid = MEM_callocN(sizeof(HairVertexGrid), "hair vertex grid");
+       grid = MEM_callocN(sizeof(HairGrid), "hair grid");
        grid->res = res;
        copy_v3_v3(grid->gmin, gmin_margin);
        copy_v3_v3(grid->gmax, gmax_margin);
@@ -597,7 +597,7 @@ HairVertexGrid *BPH_hair_volume_create_vertex_grid(int res, 
const float gmin[3],
        return grid;
 }
 
-void BPH_hair_volume_free_vertex_grid(HairVertexGrid *grid)
+void BPH_hair_volume_free_vertex_grid(HairGrid *grid)
 {
        if (grid) {
                if (grid->verts)
@@ -606,12 +606,12 @@ void BPH_hair_volume_free_vertex_grid(HairVertexGrid 
*grid)
        }
 }
 
-void BPH_hair_volume_set_debug_data(HairVertexGrid *grid, Sim

@@ 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