[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34289] trunk/blender/source/blender/ editors/sculpt_paint/sculpt.c: Sculpt:
Nicholas Bishop
nicholasbishop at gmail.com
Thu Jan 13 02:02:56 CET 2011
Revision: 34289
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34289
Author: nicholasbishop
Date: 2011-01-13 01:02:55 +0000 (Thu, 13 Jan 2011)
Log Message:
-----------
Sculpt:
Small cleanup, de-duplicated the code for combining proxies
Modified Paths:
--------------
trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2011-01-12 20:17:32 UTC (rev 34288)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2011-01-13 01:02:55 UTC (rev 34289)
@@ -2343,87 +2343,45 @@
{
Brush *brush= paint_brush(&sd->paint);
PBVHNode** nodes;
- int totnode;
- int n;
+ int use_orco, totnode, n;
BLI_pbvh_gather_proxies(ss->pbvh, &nodes, &totnode);
- switch (brush->sculpt_tool) {
- case SCULPT_TOOL_GRAB:
- case SCULPT_TOOL_ROTATE:
- case SCULPT_TOOL_THUMB:
- #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
- for (n= 0; n < totnode; n++) {
- PBVHVertexIter vd;
- PBVHProxyNode* proxies;
- int proxy_count;
- float (*origco)[3];
+ if(!ELEM(brush->sculpt_tool, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_LAYER)) {
+ /* these brushes start from original coordinates */
+ use_orco = (ELEM3(brush->sculpt_tool, SCULPT_TOOL_GRAB,
+ SCULPT_TOOL_ROTATE, SCULPT_TOOL_THUMB));
- origco= sculpt_undo_push_node(ss, nodes[n])->co;
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n= 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ PBVHProxyNode* proxies;
+ int proxy_count;
+ float (*orco)[3];
- BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
+ if(use_orco)
+ orco= sculpt_undo_push_node(ss, nodes[n])->co;
- BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- float val[3];
- int p;
+ BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
- copy_v3_v3(val, origco[vd.i]);
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ float val[3];
+ int p;
- for (p= 0; p < proxy_count; p++)
- add_v3_v3(val, proxies[p].co[vd.i]);
-
- sculpt_clip(sd, ss, vd.co, val);
- }
- BLI_pbvh_vertex_iter_end;
-
- BLI_pbvh_node_free_proxies(nodes[n]);
- }
-
- break;
-
- case SCULPT_TOOL_DRAW:
- case SCULPT_TOOL_CLAY:
- case SCULPT_TOOL_CLAY_TUBES:
- case SCULPT_TOOL_CREASE:
- case SCULPT_TOOL_BLOB:
- case SCULPT_TOOL_FILL:
- case SCULPT_TOOL_FLATTEN:
- case SCULPT_TOOL_INFLATE:
- case SCULPT_TOOL_NUDGE:
- case SCULPT_TOOL_PINCH:
- case SCULPT_TOOL_SCRAPE:
- case SCULPT_TOOL_SNAKE_HOOK:
- #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
- for (n= 0; n < totnode; n++) {
- PBVHVertexIter vd;
- PBVHProxyNode* proxies;
- int proxy_count;
-
- BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
-
- BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- float val[3];
- int p;
-
+ if(use_orco)
+ copy_v3_v3(val, orco[vd.i]);
+ else
copy_v3_v3(val, vd.co);
- for (p= 0; p < proxy_count; p++)
- add_v3_v3(val, proxies[p].co[vd.i]);
+ for (p= 0; p < proxy_count; p++)
+ add_v3_v3(val, proxies[p].co[vd.i]);
- sculpt_clip(sd, ss, vd.co, val);
- }
- BLI_pbvh_vertex_iter_end;
-
- BLI_pbvh_node_free_proxies(nodes[n]);
-
+ sculpt_clip(sd, ss, vd.co, val);
}
+ BLI_pbvh_vertex_iter_end;
- break;
-
- case SCULPT_TOOL_SMOOTH:
- case SCULPT_TOOL_LAYER:
- default:
- break;
+ BLI_pbvh_node_free_proxies(nodes[n]);
+ }
}
if (nodes)
More information about the Bf-blender-cvs
mailing list