[Bf-blender-cvs] [c365e0c6b6a] sculpt-dev: Merge branch 'master' into sculpt-dev

Pablo Dobarro noreply at git.blender.org
Wed Feb 10 21:33:16 CET 2021


Commit: c365e0c6b6a9a11a3f252093d5fc48be92712ce4
Author: Pablo Dobarro
Date:   Wed Feb 10 21:08:52 2021 +0100
Branches: sculpt-dev
https://developer.blender.org/rBc365e0c6b6a9a11a3f252093d5fc48be92712ce4

Merge branch 'master' into sculpt-dev

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



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

diff --cc source/blender/editors/sculpt_paint/sculpt.c
index 160001227bf,d1028e5f542..0bf7e210839
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@@ -6412,211 -5987,199 +6484,210 @@@ static void do_brush_action(Sculpt *sd
    }
  
    /* Only act if some verts are inside the brush area. */
-   if (totnode) {
-     float location[3];
+   if (totnode == 0) {
+     return;
+   }
+   float location[3];
  
-     SculptThreadedTaskData task_data = {
-         .sd = sd,
-         .ob = ob,
-         .brush = brush,
-         .nodes = nodes,
-     };
+   SculptThreadedTaskData task_data = {
+       .sd = sd,
+       .ob = ob,
+       .brush = brush,
+       .nodes = nodes,
+   };
  
-     TaskParallelSettings settings;
-     BKE_pbvh_parallel_range_settings(&settings, true, totnode);
-     BLI_task_parallel_range(0, totnode, &task_data, do_brush_action_task_cb, &settings);
+   TaskParallelSettings settings;
+   BKE_pbvh_parallel_range_settings(&settings, true, totnode);
+   BLI_task_parallel_range(0, totnode, &task_data, do_brush_action_task_cb, &settings);
  
-     if (sculpt_brush_needs_normal(ss, brush)) {
-       update_sculpt_normal(sd, ob, nodes, totnode);
-     }
+   if (sculpt_brush_needs_normal(ss, brush)) {
+     update_sculpt_normal(sd, ob, nodes, totnode);
+   }
  
-     if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_AREA) {
-       update_brush_local_mat(sd, ob);
-     }
+   if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_AREA) {
+     update_brush_local_mat(sd, ob);
+   }
  
-     if (brush->sculpt_tool == SCULPT_TOOL_POSE && SCULPT_stroke_is_first_brush_step(ss->cache)) {
-       SCULPT_pose_brush_init(sd, ob, ss, brush);
-     }
+   if (brush->sculpt_tool == SCULPT_TOOL_POSE && SCULPT_stroke_is_first_brush_step(ss->cache)) {
+     SCULPT_pose_brush_init(sd, ob, ss, brush);
+   }
  
 -  if (brush->deform_target == BRUSH_DEFORM_TARGET_CLOTH_SIM) {
 -    if (!ss->cache->cloth_sim) {
 -      ss->cache->cloth_sim = SCULPT_cloth_brush_simulation_create(
 -          ss, 1.0f, 0.0f, 0.0f, false, true);
 -      SCULPT_cloth_brush_simulation_init(ss, ss->cache->cloth_sim);
 -    }
 -    SCULPT_cloth_brush_store_simulation_state(ss, ss->cache->cloth_sim);
 -    SCULPT_cloth_brush_ensure_nodes_constraints(
 -        sd, ob, nodes, totnode, ss->cache->cloth_sim, ss->cache->location, FLT_MAX);
 +    if (brush->deform_target == BRUSH_DEFORM_TARGET_CLOTH_SIM) {
 +      if (!ss->cache->cloth_sim) {
 +        ss->cache->cloth_sim = SCULPT_cloth_brush_simulation_create(
 +            ss, 1.0f, 1.0f, 0.0f, false, true);
 +        SCULPT_cloth_brush_simulation_init(ss, ss->cache->cloth_sim);
 +      }
 +      SCULPT_cloth_brush_store_simulation_state(ss, ss->cache->cloth_sim);
 +      SCULPT_cloth_brush_ensure_nodes_constraints(
 +          sd, ob, nodes, totnode, ss->cache->cloth_sim, ss->cache->location, FLT_MAX);
-     }
+   }
+ 
 -  bool invert = ss->cache->pen_flip || ss->cache->invert || brush->flag & BRUSH_DIR_IN;
  
 -  /* Apply one type of brush action. */
 -  switch (brush->sculpt_tool) {
 -    case SCULPT_TOOL_DRAW:
 -      do_draw_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_SMOOTH:
 -      if (brush->smooth_deform_type == BRUSH_SMOOTH_DEFORM_LAPLACIAN) {
 -        SCULPT_do_smooth_brush(sd, ob, nodes, totnode);
 -      }
 -      else if (brush->smooth_deform_type == BRUSH_SMOOTH_DEFORM_SURFACE) {
 -        SCULPT_do_surface_smooth_brush(sd, ob, nodes, totnode);
 -      }
 -      break;
 -    case SCULPT_TOOL_CREASE:
 -      do_crease_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_BLOB:
 -      do_crease_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_PINCH:
 -      do_pinch_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_INFLATE:
 -      do_inflate_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_GRAB:
 -      do_grab_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_ROTATE:
 -      do_rotate_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_SNAKE_HOOK:
 -      do_snake_hook_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_NUDGE:
 -      do_nudge_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_THUMB:
 -      do_thumb_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_LAYER:
 -      do_layer_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_FLATTEN:
 -      do_flatten_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_CLAY:
 -      do_clay_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_CLAY_STRIPS:
 -      do_clay_strips_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_MULTIPLANE_SCRAPE:
 -      SCULPT_do_multiplane_scrape_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_CLAY_THUMB:
 -      do_clay_thumb_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_FILL:
 -      if (invert && brush->flag & BRUSH_INVERT_TO_SCRAPE_FILL) {
 -        do_scrape_brush(sd, ob, nodes, totnode);
 -      }
 -      else {
 -        do_fill_brush(sd, ob, nodes, totnode);
 -      }
 -      break;
 -    case SCULPT_TOOL_SCRAPE:
 -      if (invert && brush->flag & BRUSH_INVERT_TO_SCRAPE_FILL) {
 -        do_fill_brush(sd, ob, nodes, totnode);
 -      }
 -      else {
 -        do_scrape_brush(sd, ob, nodes, totnode);
 -      }
 -      break;
 -    case SCULPT_TOOL_MASK:
 -      do_mask_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_POSE:
 -      SCULPT_do_pose_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_DRAW_SHARP:
 -      do_draw_sharp_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_ELASTIC_DEFORM:
 -      do_elastic_deform_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_SLIDE_RELAX:
 -      do_slide_relax_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_BOUNDARY:
 -      SCULPT_do_boundary_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_CLOTH:
 -      SCULPT_do_cloth_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_DRAW_FACE_SETS:
 -      SCULPT_do_draw_face_sets_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_DISPLACEMENT_ERASER:
 -      do_displacement_eraser_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_DISPLACEMENT_SMEAR:
 -      do_displacement_smear_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_PAINT:
 -      SCULPT_do_paint_brush(sd, ob, nodes, totnode);
 -      break;
 -    case SCULPT_TOOL_SMEAR:
 -      SCULPT_do_smear_brush(sd, ob, nodes, totnode);
 -      break;
 -  }
 +    bool invert = ss->cache->pen_flip || ss->cache->invert || brush->flag & BRUSH_DIR_IN;
 +
++
 +    /* Apply one type of brush action. */
 +    switch (brush->sculpt_tool) {
 +      case SCULPT_TOOL_DRAW:
 +        do_draw_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_SMOOTH:
 +        if (brush->smooth_deform_type == BRUSH_SMOOTH_DEFORM_LAPLACIAN) {
 +          SCULPT_do_smooth_brush(sd, ob, nodes, totnode);
 +        }
 +        else if (brush->smooth_deform_type == BRUSH_SMOOTH_DEFORM_SURFACE) {
 +          SCULPT_do_surface_smooth_brush(sd, ob, nodes, totnode);
 +        }
 +        else if (brush->smooth_deform_type == BRUSH_SMOOTH_DEFORM_DIRECTIONAL) {
 +          SCULPT_do_directional_smooth_brush(sd, ob, nodes, totnode);
 +        }
 +        break;
 +      case SCULPT_TOOL_CREASE:
 +        do_crease_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_BLOB:
 +        do_crease_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_PINCH:
 +        do_pinch_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_INFLATE:
 +        do_inflate_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_GRAB:
 +        do_grab_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_ROTATE:
 +        do_rotate_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_SNAKE_HOOK:
 +        do_snake_hook_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_NUDGE:
 +        do_nudge_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_THUMB:
 +        do_thumb_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_LAYER:
 +        do_layer_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_FLATTEN:
 +        do_flatten_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_CLAY:
 +        do_clay_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_CLAY_STRIPS:
 +        do_clay_strips_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_MULTIPLANE_SCRAPE:
 +        SCULPT_do_multiplane_scrape_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_CLAY_THUMB:
 +        do_clay_thumb_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_FILL:
 +        if (invert && brush->flag & BRUSH_INVERT_TO_SCRAPE_FILL) {
 +          do_scrape_brush(sd, ob, nodes, totnode);
 +        }
 +        else {
 +          do_fill_brush(sd, ob, nodes, totnode);
 +        }
 +        break;
 +      case SCULPT_TOOL_SCRAPE:
 +        if (invert && brush->flag & BRUSH_INVERT_TO_SCRAPE_FILL) {
 +          do_fill_brush(sd, ob, nodes, totnode);
 +        }
 +        else {
 +          do_scrape_brush(sd, ob, nodes, totnode);
 +        }
 +        break;
 +      case SCULPT_TOOL_MASK:
 +        do_mask_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_POSE:
 +        SCULPT_do_pose_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_DRAW_SHARP:
 +        do_draw_sharp_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_ELASTIC_DEFORM:
 +        do_elastic_deform_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_SLIDE_RELAX:
 +        do_slide_relax_brush(sd, ob, nodes, totnode);
 +        break;
 +      case SCULPT_TOOL_BOUNDARY:
 +        SCULPT_do

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list