Commit: 26a806e430bb319ce150b7bc80436070d7b07ff1
Author: decoda
Date:   Sat Jun 10 02:08:43 2017 +0530
Branches: soc-2017-sculpting_brush
https://developer.blender.org/rB26a806e430bb319ce150b7bc80436070d7b07ff1

Added details in brush and few modification in files

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

M       source/blender/blenloader/intern/versioning_270.c
M       source/blender/bmesh/operators/bmo_triangulate.c
M       source/blender/bmesh/tools/bmesh_triangulate.c
M       source/blender/editors/sculpt_paint/sculpt.c

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

diff --git a/source/blender/blenloader/intern/versioning_270.c 
b/source/blender/blenloader/intern/versioning_270.c
index 259826a6a2b..d2f43a2d79e 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -1525,7 +1525,7 @@ void blo_do_versions_270(FileData *fd, Library 
*UNUSED(lib), Main *main)
                                ParticleEditSettings *pset = &ts->particle;
                                for (int a = 0; a < PE_TOT_BRUSH; a++) {
                                        if (pset->brush[a].count == 0) {
-                                               pset->brush[a].count = 11;
+                                               pset->brush[a].count = 10;
                                        }
                                }
                        }
diff --git a/source/blender/bmesh/operators/bmo_triangulate.c 
b/source/blender/bmesh/operators/bmo_triangulate.c
index 4e8bace59e0..19986d6132d 100644
--- a/source/blender/bmesh/operators/bmo_triangulate.c
+++ b/source/blender/bmesh/operators/bmo_triangulate.c
@@ -270,4 +270,4 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op)
        }
 
        BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom.out", 
BM_EDGE | BM_FACE, ELE_NEW);
-}
+}
\ No newline at end of file
diff --git a/source/blender/bmesh/tools/bmesh_triangulate.c 
b/source/blender/bmesh/tools/bmesh_triangulate.c
index ce1bc46d5e8..9b5f587064b 100644
--- a/source/blender/bmesh/tools/bmesh_triangulate.c
+++ b/source/blender/bmesh/tools/bmesh_triangulate.c
@@ -159,3 +159,11 @@ void BM_mesh_triangulate(
                BLI_edgehash_free(pf_ehash, NULL);
        }
 }
+
+void BM_mesh_clip_project(
+       BMesh *bm, const int quad_method, const int ngon_method, const bool 
tag_only,
+       BMOperator *op, BMOpSlot *slot_facemap_out, BMOpSlot 
*slot_facemap_double_out)
+{
+       BMIter iter;
+       BMFace *face;
+}
\ No newline at end of file
diff --git a/source/blender/editors/sculpt_paint/sculpt.c 
b/source/blender/editors/sculpt_paint/sculpt.c
index bcbb92e4468..b08e50ad509 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -658,6 +658,9 @@ typedef struct SculptBrushTest {
 
        /* View3d clipping - only set rv3d for clipping */
        RegionView3D *clip_rv3d;
+
+
+
 } SculptBrushTest;
 
 static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test)
@@ -3052,10 +3055,65 @@ static void do_clay_strips_brush(Sculpt *sd, Object 
*ob, PBVHNode **nodes, int t
                    ((sd->flags & SCULPT_USE_OPENMP) && totnode > 
SCULPT_THREADED_LIMIT), false);
 }
 
+static void do_clip_brush_task_cb_ex(
+       void *userdata, void *UNUSED(userdata_chunk), const int n, const int 
thread_id)
+{
+       SculptThreadedTaskData *data = userdata;
+       SculptSession *ss = data->ob->sculpt;
+       Brush *brush = data->brush;
+
+       PBVHVertexIter vd;
+       SculptBrushTest test;
+
+
+       SculptOrigVertData orig_data;
+       float(*proxy)[3];
+       const float bstrength = ss->cache->bstrength;
+
+       sculpt_orig_vert_data_init(&orig_data, data->ob, data->nodes[n]);
+
+       proxy = BKE_pbvh_node_add_proxy(ss->pbvh, data->nodes[n])->co;
+
+       sculpt_brush_test_init(ss, &test);
+
+       BKE_pbvh_vertex_iter_begin(ss->pbvh, data->nodes[n], vd, 
PBVH_ITER_UNIQUE)
+       {
+               sculpt_orig_vert_data_update(&orig_data, &vd);
+
+               if (sculpt_brush_test(&test, vd.co)) { /*initially vd = 
orig_data*/
+                       float vec[3] = { 0 };
+                       const float fade = bstrength * tex_strength(
+                               ss, brush, vd.co, test.dist, vd.no, NULL, 
vd.mask ? *vd.mask : 0.0f,
+                               thread_id);
+                       /*
+                       sub_v3_v3v3(vec, orig_data.co, ss->cache->location);
+                       axis_angle_normalized_to_mat3(rot, 
ss->cache->sculpt_normal_symm, angle * fade);
+                       mul_v3_m3v3(proxy[vd.i], rot, vec);
+                       add_v3_v3(proxy[vd.i], ss->cache->location); */
+                       mul_v3_v3fl(proxy[vd.i], vd.co, 1.5); /*just testing 
the working*/
+                       BM_vert_kill(ss->bm, vd.bm_vert);
+                       if (vd.mvert)
+                               vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+               }
+       }
+       BKE_pbvh_vertex_iter_end;
+}
+
 static void do_clip_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int 
totnode)  /*clipping*/
 {
-       // some functions in future
+       SculptSession *ss = ob->sculpt;
+       Brush *brush = BKE_paint_brush(&sd->paint);
 
+       /*static const int flip[8] = { 1, -1, -1, 1, -1, 1, 1, -1 };
+       const float angle = ss->cache->vertex_rotation * 
flip[ss->cache->mirror_symmetry_pass];*/
+
+       SculptThreadedTaskData data = {
+               .sd = sd, .ob = ob, .brush = brush, .nodes = nodes,
+       };
+
+       BLI_task_parallel_range_ex(
+               0, totnode, &data, NULL, 0, do_clip_brush_task_cb_ex,
+               ((sd->flags & SCULPT_USE_OPENMP) && totnode > 
SCULPT_THREADED_LIMIT), false);
 }
 
 static void do_fill_brush_task_cb_ex(
@@ -4042,7 +4100,7 @@ static void sculpt_update_cache_invariants(
                copy_v2_v2(cache->initial_mouse, mouse);
        else
                zero_v2(cache->initial_mouse);
-
+       
        mode = RNA_enum_get(op->ptr, "mode");
        cache->invert = mode == BRUSH_STROKE_INVERT;
        cache->alt_smooth = mode == BRUSH_STROKE_SMOOTH;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to